From 25bde88a8e587386d5ad64f36fb131cfb3d1a976 Mon Sep 17 00:00:00 2001 From: Cees-Jan Kiewiet Date: Sat, 26 Dec 2020 21:14:38 +0100 Subject: [PATCH] Finish migrating to nodejs --- main.js | 58 +- node_modules/.bin/wait-on | 1 + node_modules/@hapi/address/.travis.yml | 17 + node_modules/@hapi/address/API.md | 49 + node_modules/@hapi/address/CHANGELOG.md | 3 + node_modules/@hapi/address/LICENSE.md | 9 + node_modules/@hapi/address/README.md | 16 + node_modules/@hapi/address/bench/test.js | 238 + node_modules/@hapi/address/lib/domain.js | 103 + node_modules/@hapi/address/lib/email.js | 169 + node_modules/@hapi/address/lib/index.js | 84 + node_modules/@hapi/address/lib/tlds.js | 1542 ++ node_modules/@hapi/address/package.json | 56 + node_modules/@hapi/address/test/index.js | 451 + node_modules/@hapi/bourne/.npmignore | 3 + node_modules/@hapi/bourne/LICENSE.md | 9 + node_modules/@hapi/bourne/README.md | 54 + node_modules/@hapi/bourne/lib/index.js | 97 + node_modules/@hapi/bourne/package.json | 57 + node_modules/@hapi/hoek/LICENSE.md | 12 + node_modules/@hapi/hoek/README.md | 19 + .../@hapi/hoek/lib/applyToDefaults.js | 95 + node_modules/@hapi/hoek/lib/assert.js | 21 + node_modules/@hapi/hoek/lib/bench.js | 29 + node_modules/@hapi/hoek/lib/block.js | 12 + node_modules/@hapi/hoek/lib/clone.js | 176 + node_modules/@hapi/hoek/lib/contain.js | 307 + node_modules/@hapi/hoek/lib/deepEqual.js | 317 + node_modules/@hapi/hoek/lib/error.js | 26 + .../@hapi/hoek/lib/escapeHeaderAttribute.js | 16 + node_modules/@hapi/hoek/lib/escapeHtml.js | 87 + node_modules/@hapi/hoek/lib/escapeJson.js | 41 + node_modules/@hapi/hoek/lib/escapeRegex.js | 11 + node_modules/@hapi/hoek/lib/flatten.js | 20 + node_modules/@hapi/hoek/lib/ignore.js | 6 + node_modules/@hapi/hoek/lib/index.d.ts | 471 + node_modules/@hapi/hoek/lib/index.js | 29 + node_modules/@hapi/hoek/lib/intersect.js | 41 + node_modules/@hapi/hoek/lib/isPromise.js | 9 + node_modules/@hapi/hoek/lib/merge.js | 78 + node_modules/@hapi/hoek/lib/once.js | 23 + node_modules/@hapi/hoek/lib/reach.js | 76 + node_modules/@hapi/hoek/lib/reachTemplate.js | 16 + node_modules/@hapi/hoek/lib/stringify.js | 14 + node_modules/@hapi/hoek/lib/types.js | 55 + node_modules/@hapi/hoek/lib/utils.js | 9 + node_modules/@hapi/hoek/lib/wait.js | 13 + node_modules/@hapi/hoek/package.json | 59 + node_modules/@hapi/joi/CHANGELOG.md | 3 + node_modules/@hapi/joi/LICENSE.md | 10 + node_modules/@hapi/joi/README.md | 125 + node_modules/@hapi/joi/lib/cast.js | 59 + node_modules/@hapi/joi/lib/errors.js | 372 + node_modules/@hapi/joi/lib/index.js | 478 + node_modules/@hapi/joi/lib/language.js | 161 + node_modules/@hapi/joi/lib/ref.js | 49 + node_modules/@hapi/joi/lib/schemas.js | 20 + node_modules/@hapi/joi/lib/set.js | 191 + .../@hapi/joi/lib/types/alternatives/index.js | 215 + node_modules/@hapi/joi/lib/types/any/index.js | 984 + .../@hapi/joi/lib/types/any/settings.js | 32 + .../@hapi/joi/lib/types/array/index.js | 699 + .../@hapi/joi/lib/types/binary/index.js | 96 + .../@hapi/joi/lib/types/boolean/index.js | 97 + .../@hapi/joi/lib/types/date/index.js | 179 + .../@hapi/joi/lib/types/func/index.js | 87 + .../@hapi/joi/lib/types/lazy/index.js | 79 + .../@hapi/joi/lib/types/number/index.js | 245 + .../@hapi/joi/lib/types/object/index.js | 952 + node_modules/@hapi/joi/lib/types/state.js | 14 + .../@hapi/joi/lib/types/string/index.js | 724 + node_modules/@hapi/joi/lib/types/string/ip.js | 50 + .../@hapi/joi/lib/types/string/rfc3986.js | 214 + .../@hapi/joi/lib/types/string/uri.js | 41 + .../@hapi/joi/lib/types/symbol/index.js | 90 + node_modules/@hapi/joi/lib/types/symbols.js | 8 + .../joi/node_modules/@hapi/hoek/CHANGELOG.md | 3 + .../joi/node_modules/@hapi/hoek/LICENSE.md | 12 + .../joi/node_modules/@hapi/hoek/README.md | 18 + .../@hapi/hoek/lib/applyToDefaults.js | 55 + .../joi/node_modules/@hapi/hoek/lib/assert.js | 21 + .../joi/node_modules/@hapi/hoek/lib/bench.js | 29 + .../joi/node_modules/@hapi/hoek/lib/block.js | 12 + .../joi/node_modules/@hapi/hoek/lib/clone.js | 161 + .../node_modules/@hapi/hoek/lib/contain.js | 305 + .../node_modules/@hapi/hoek/lib/deepEqual.js | 317 + .../joi/node_modules/@hapi/hoek/lib/error.js | 26 + .../@hapi/hoek/lib/escapeHeaderAttribute.js | 16 + .../node_modules/@hapi/hoek/lib/escapeHtml.js | 87 + .../node_modules/@hapi/hoek/lib/escapeJson.js | 41 + .../@hapi/hoek/lib/escapeRegex.js | 11 + .../node_modules/@hapi/hoek/lib/flatten.js | 20 + .../joi/node_modules/@hapi/hoek/lib/ignore.js | 6 + .../node_modules/@hapi/hoek/lib/index.d.ts | 470 + .../joi/node_modules/@hapi/hoek/lib/index.js | 29 + .../node_modules/@hapi/hoek/lib/intersect.js | 41 + .../node_modules/@hapi/hoek/lib/isPromise.js | 9 + .../joi/node_modules/@hapi/hoek/lib/merge.js | 74 + .../joi/node_modules/@hapi/hoek/lib/once.js | 23 + .../joi/node_modules/@hapi/hoek/lib/reach.js | 76 + .../@hapi/hoek/lib/reachTemplate.js | 16 + .../node_modules/@hapi/hoek/lib/stringify.js | 14 + .../joi/node_modules/@hapi/hoek/lib/types.js | 55 + .../joi/node_modules/@hapi/hoek/lib/utils.js | 54 + .../joi/node_modules/@hapi/hoek/lib/wait.js | 9 + .../joi/node_modules/@hapi/hoek/package.json | 58 + .../joi/node_modules/@hapi/topo/CHANGELOG.md | 3 + .../joi/node_modules/@hapi/topo/LICENSE.md | 10 + .../joi/node_modules/@hapi/topo/README.md | 29 + .../joi/node_modules/@hapi/topo/lib/index.js | 215 + .../joi/node_modules/@hapi/topo/package.json | 61 + node_modules/@hapi/joi/package.json | 59 + node_modules/@hapi/topo/LICENSE.md | 10 + node_modules/@hapi/topo/README.md | 17 + node_modules/@hapi/topo/lib/index.d.ts | 50 + node_modules/@hapi/topo/lib/index.js | 215 + node_modules/@hapi/topo/package.json | 62 + node_modules/@sideway/address/LICENSE.md | 9 + node_modules/@sideway/address/README.md | 14 + node_modules/@sideway/address/lib/decode.js | 120 + node_modules/@sideway/address/lib/domain.js | 113 + node_modules/@sideway/address/lib/email.js | 170 + node_modules/@sideway/address/lib/errors.js | 29 + node_modules/@sideway/address/lib/index.d.ts | 255 + node_modules/@sideway/address/lib/index.js | 97 + node_modules/@sideway/address/lib/ip.js | 63 + node_modules/@sideway/address/lib/tlds.js | 1542 ++ node_modules/@sideway/address/lib/uri.js | 207 + node_modules/@sideway/address/package.json | 63 + node_modules/@sideway/formula/LICENSE.md | 9 + node_modules/@sideway/formula/README.md | 18 + node_modules/@sideway/formula/lib/index.d.ts | 52 + node_modules/@sideway/formula/lib/index.js | 456 + node_modules/@sideway/formula/package.json | 61 + node_modules/@sideway/pinpoint/LICENSE.md | 10 + node_modules/@sideway/pinpoint/README.md | 14 + node_modules/@sideway/pinpoint/lib/index.d.ts | 24 + node_modules/@sideway/pinpoint/lib/index.js | 21 + node_modules/@sideway/pinpoint/package.json | 58 + node_modules/axios/CHANGELOG.md | 413 + node_modules/axios/LICENSE | 19 + node_modules/axios/README.md | 709 + node_modules/axios/UPGRADE_GUIDE.md | 162 + node_modules/axios/dist/axios.js | 1715 ++ node_modules/axios/dist/axios.map | 1 + node_modules/axios/dist/axios.min.js | 3 + node_modules/axios/dist/axios.min.map | 1 + node_modules/axios/index.d.ts | 157 + node_modules/axios/index.js | 1 + node_modules/axios/lib/adapters/README.md | 37 + node_modules/axios/lib/adapters/http.js | 279 + node_modules/axios/lib/adapters/xhr.js | 180 + node_modules/axios/lib/axios.js | 53 + node_modules/axios/lib/cancel/Cancel.js | 19 + node_modules/axios/lib/cancel/CancelToken.js | 57 + node_modules/axios/lib/cancel/isCancel.js | 5 + node_modules/axios/lib/core/Axios.js | 94 + .../axios/lib/core/InterceptorManager.js | 52 + node_modules/axios/lib/core/README.md | 7 + node_modules/axios/lib/core/buildFullPath.js | 20 + node_modules/axios/lib/core/createError.js | 18 + .../axios/lib/core/dispatchRequest.js | 79 + node_modules/axios/lib/core/enhanceError.js | 42 + node_modules/axios/lib/core/mergeConfig.js | 73 + node_modules/axios/lib/core/settle.js | 25 + node_modules/axios/lib/core/transformData.js | 20 + node_modules/axios/lib/defaults.js | 97 + node_modules/axios/lib/helpers/README.md | 7 + node_modules/axios/lib/helpers/bind.js | 11 + node_modules/axios/lib/helpers/buildURL.js | 71 + node_modules/axios/lib/helpers/combineURLs.js | 14 + node_modules/axios/lib/helpers/cookies.js | 53 + .../axios/lib/helpers/deprecatedMethod.js | 24 + .../axios/lib/helpers/isAbsoluteURL.js | 14 + .../axios/lib/helpers/isURLSameOrigin.js | 68 + .../axios/lib/helpers/normalizeHeaderName.js | 12 + .../axios/lib/helpers/parseHeaders.js | 53 + node_modules/axios/lib/helpers/spread.js | 27 + node_modules/axios/lib/utils.js | 344 + node_modules/axios/package.json | 111 + node_modules/debug/.coveralls.yml | 1 + node_modules/debug/.eslintrc | 14 + node_modules/debug/.npmignore | 9 + node_modules/debug/.travis.yml | 20 + node_modules/debug/CHANGELOG.md | 395 + node_modules/debug/LICENSE | 19 + node_modules/debug/Makefile | 58 + node_modules/debug/README.md | 368 + node_modules/debug/karma.conf.js | 70 + node_modules/debug/node.js | 1 + node_modules/debug/package.json | 82 + node_modules/debug/src/browser.js | 195 + node_modules/debug/src/debug.js | 225 + node_modules/debug/src/index.js | 10 + node_modules/debug/src/node.js | 186 + node_modules/follow-redirects/LICENSE | 18 + node_modules/follow-redirects/README.md | 155 + node_modules/follow-redirects/http.js | 1 + node_modules/follow-redirects/https.js | 1 + node_modules/follow-redirects/index.js | 322 + node_modules/follow-redirects/package.json | 96 + node_modules/fs-extra/CHANGELOG.md | 864 + node_modules/fs-extra/LICENSE | 15 + node_modules/fs-extra/README.md | 261 + .../fs-extra/lib/copy-sync/copy-sync.js | 164 + node_modules/fs-extra/lib/copy-sync/index.js | 5 + node_modules/fs-extra/lib/copy/copy.js | 212 + node_modules/fs-extra/lib/copy/index.js | 6 + node_modules/fs-extra/lib/empty/index.js | 48 + node_modules/fs-extra/lib/ensure/file.js | 49 + node_modules/fs-extra/lib/ensure/index.js | 23 + node_modules/fs-extra/lib/ensure/link.js | 61 + .../fs-extra/lib/ensure/symlink-paths.js | 99 + .../fs-extra/lib/ensure/symlink-type.js | 31 + node_modules/fs-extra/lib/ensure/symlink.js | 63 + node_modules/fs-extra/lib/fs/index.js | 109 + node_modules/fs-extra/lib/index.js | 28 + node_modules/fs-extra/lib/json/index.js | 16 + node_modules/fs-extra/lib/json/jsonfile.js | 12 + .../fs-extra/lib/json/output-json-sync.js | 18 + node_modules/fs-extra/lib/json/output-json.js | 27 + node_modules/fs-extra/lib/mkdirs/index.js | 14 + .../fs-extra/lib/mkdirs/mkdirs-sync.js | 54 + node_modules/fs-extra/lib/mkdirs/mkdirs.js | 63 + node_modules/fs-extra/lib/mkdirs/win32.js | 25 + node_modules/fs-extra/lib/move-sync/index.js | 5 + .../fs-extra/lib/move-sync/move-sync.js | 47 + node_modules/fs-extra/lib/move/index.js | 6 + node_modules/fs-extra/lib/move/move.js | 65 + node_modules/fs-extra/lib/output/index.js | 40 + .../fs-extra/lib/path-exists/index.js | 12 + node_modules/fs-extra/lib/remove/index.js | 9 + node_modules/fs-extra/lib/remove/rimraf.js | 314 + node_modules/fs-extra/lib/util/buffer.js | 12 + node_modules/fs-extra/lib/util/stat.js | 172 + node_modules/fs-extra/lib/util/utimes.js | 79 + node_modules/fs-extra/package.json | 100 + 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 | 80 + node_modules/graceful-fs/polyfills.js | 342 + node_modules/joi/LICENSE.md | 10 + node_modules/joi/README.md | 15 + node_modules/joi/dist/joi-browser.min.js | 1 + node_modules/joi/lib/annotate.js | 175 + node_modules/joi/lib/base.js | 1068 + node_modules/joi/lib/cache.js | 143 + node_modules/joi/lib/common.js | 216 + node_modules/joi/lib/compile.js | 283 + node_modules/joi/lib/errors.js | 262 + node_modules/joi/lib/extend.js | 312 + node_modules/joi/lib/index.d.ts | 2206 ++ node_modules/joi/lib/index.js | 283 + node_modules/joi/lib/manifest.js | 476 + node_modules/joi/lib/messages.js | 178 + node_modules/joi/lib/modify.js | 267 + node_modules/joi/lib/ref.js | 414 + node_modules/joi/lib/schemas.js | 301 + node_modules/joi/lib/state.js | 152 + node_modules/joi/lib/template.js | 427 + node_modules/joi/lib/trace.js | 346 + node_modules/joi/lib/types/alternatives.js | 329 + node_modules/joi/lib/types/any.js | 174 + node_modules/joi/lib/types/array.js | 775 + node_modules/joi/lib/types/binary.js | 98 + node_modules/joi/lib/types/boolean.js | 150 + node_modules/joi/lib/types/date.js | 233 + node_modules/joi/lib/types/function.js | 93 + node_modules/joi/lib/types/keys.js | 1043 + node_modules/joi/lib/types/link.js | 168 + node_modules/joi/lib/types/number.js | 335 + node_modules/joi/lib/types/object.js | 22 + node_modules/joi/lib/types/string.js | 820 + node_modules/joi/lib/types/symbol.js | 102 + node_modules/joi/lib/validator.js | 650 + node_modules/joi/lib/values.js | 263 + node_modules/joi/package.json | 69 + node_modules/jsonfile/CHANGELOG.md | 145 + node_modules/jsonfile/LICENSE | 15 + node_modules/jsonfile/README.md | 168 + node_modules/jsonfile/index.js | 134 + node_modules/jsonfile/package.json | 71 + 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/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/ms/index.js | 152 + node_modules/ms/license.md | 21 + node_modules/ms/package.json | 69 + node_modules/ms/readme.md | 51 + node_modules/rx/.coveralls.yml | 2 + node_modules/rx/.editorconfig | 7 + node_modules/rx/.jamignore | 14 + node_modules/rx/.jscsrc | 54 + node_modules/rx/.jscsrc.todo | 19 + node_modules/rx/authors.txt | 3 + node_modules/rx/bower.json | 23 + node_modules/rx/code-of-conduct.md | 12 + node_modules/rx/component.json | 62 + node_modules/rx/contributing.md | 169 + node_modules/rx/dist/rx.aggregates.js | 1365 ++ node_modules/rx/dist/rx.aggregates.map | 1 + node_modules/rx/dist/rx.aggregates.min.js | 3 + node_modules/rx/dist/rx.all.compat.js | 12650 ++++++++++++ node_modules/rx/dist/rx.all.compat.map | 1 + node_modules/rx/dist/rx.all.compat.min.js | 7 + node_modules/rx/dist/rx.all.js | 12388 +++++++++++ node_modules/rx/dist/rx.all.map | 1 + node_modules/rx/dist/rx.all.min.js | 7 + node_modules/rx/dist/rx.async.compat.js | 532 + node_modules/rx/dist/rx.async.compat.map | 1 + node_modules/rx/dist/rx.async.compat.min.js | 3 + node_modules/rx/dist/rx.async.js | 532 + node_modules/rx/dist/rx.async.map | 1 + node_modules/rx/dist/rx.async.min.js | 3 + node_modules/rx/dist/rx.backpressure.js | 616 + node_modules/rx/dist/rx.backpressure.map | 1 + node_modules/rx/dist/rx.backpressure.min.js | 3 + node_modules/rx/dist/rx.binding.js | 561 + node_modules/rx/dist/rx.binding.map | 1 + node_modules/rx/dist/rx.binding.min.js | 3 + node_modules/rx/dist/rx.coincidence.js | 623 + node_modules/rx/dist/rx.coincidence.map | 1 + node_modules/rx/dist/rx.coincidence.min.js | 3 + node_modules/rx/dist/rx.compat.js | 6534 ++++++ node_modules/rx/dist/rx.compat.map | 1 + node_modules/rx/dist/rx.compat.min.js | 5 + node_modules/rx/dist/rx.core.binding.js | 863 + node_modules/rx/dist/rx.core.binding.map | 1 + node_modules/rx/dist/rx.core.binding.min.js | 3 + node_modules/rx/dist/rx.core.js | 1346 ++ node_modules/rx/dist/rx.core.map | 1 + node_modules/rx/dist/rx.core.min.js | 3 + node_modules/rx/dist/rx.core.testing.js | 1187 ++ node_modules/rx/dist/rx.core.testing.map | 1 + node_modules/rx/dist/rx.core.testing.min.js | 3 + node_modules/rx/dist/rx.experimental.js | 590 + node_modules/rx/dist/rx.experimental.map | 1 + node_modules/rx/dist/rx.experimental.min.js | 3 + node_modules/rx/dist/rx.joinpatterns.js | 343 + node_modules/rx/dist/rx.joinpatterns.map | 1 + node_modules/rx/dist/rx.joinpatterns.min.js | 3 + node_modules/rx/dist/rx.js | 6183 ++++++ node_modules/rx/dist/rx.lite.compat.js | 7431 +++++++ node_modules/rx/dist/rx.lite.compat.map | 1 + node_modules/rx/dist/rx.lite.compat.min.js | 5 + node_modules/rx/dist/rx.lite.extras.compat.js | 806 + .../rx/dist/rx.lite.extras.compat.map | 1 + .../rx/dist/rx.lite.extras.compat.min.js | 3 + node_modules/rx/dist/rx.lite.extras.js | 806 + node_modules/rx/dist/rx.lite.extras.map | 1 + node_modules/rx/dist/rx.lite.extras.min.js | 3 + node_modules/rx/dist/rx.lite.js | 7082 +++++++ node_modules/rx/dist/rx.lite.map | 1 + node_modules/rx/dist/rx.lite.min.js | 5 + node_modules/rx/dist/rx.map | 1 + node_modules/rx/dist/rx.min.js | 5 + node_modules/rx/dist/rx.sorting.js | 71 + node_modules/rx/dist/rx.sorting.map | 1 + node_modules/rx/dist/rx.sorting.min.js | 3 + node_modules/rx/dist/rx.testing.js | 509 + node_modules/rx/dist/rx.testing.map | 1 + node_modules/rx/dist/rx.testing.min.js | 3 + node_modules/rx/dist/rx.time.js | 1472 ++ node_modules/rx/dist/rx.time.map | 1 + node_modules/rx/dist/rx.time.min.js | 3 + node_modules/rx/dist/rx.virtualtime.js | 284 + node_modules/rx/dist/rx.virtualtime.map | 1 + node_modules/rx/dist/rx.virtualtime.min.js | 3 + node_modules/rx/index.js | 14 + node_modules/rx/license.txt | 15 + node_modules/rx/package.json | 78 + node_modules/rx/readme.md | 383 + node_modules/rx/ts/core/abstractobserver.ts | 53 + .../rx/ts/core/anonymousobservable.ts | 11 + node_modules/rx/ts/core/anonymousobserver.ts | 42 + .../rx/ts/core/backpressure/controlled.ts | 29 + .../rx/ts/core/backpressure/pausable.ts | 29 + .../ts/core/backpressure/pausablebuffered.ts | 22 + .../rx/ts/core/backpressure/pauser.ts | 23 + .../rx/ts/core/backpressure/stopandwait.ts | 16 + .../rx/ts/core/backpressure/windowed.ts | 17 + node_modules/rx/ts/core/checkedobserver.ts | 15 + .../concurrency/currentthreadscheduler.ts | 17 + .../ts/core/concurrency/defaultscheduler.ts | 13 + .../core/concurrency/historicalscheduler.ts | 19 + .../ts/core/concurrency/immediatescheduler.ts | 11 + .../rx/ts/core/concurrency/scheduleditem.ts | 42 + .../concurrency/scheduleperiodicrecursive.ts | 20 + .../ts/core/concurrency/scheduler.periodic.ts | 19 + .../core/concurrency/scheduler.recursive.ts | 28 + .../rx/ts/core/concurrency/scheduler.ts | 51 + .../ts/core/concurrency/scheduler.wrappers.ts | 15 + .../core/concurrency/virtualtimescheduler.ts | 82 + .../ts/core/disposables/booleandisposable.ts | 52 + .../core/disposables/compositedisposable.ts | 48 + .../rx/ts/core/disposables/disposable.ts | 57 + .../ts/core/disposables/refcountdisposable.ts | 39 + node_modules/rx/ts/core/es5.ts | 32 + node_modules/rx/ts/core/es6-iterable.d.ts | 197 + node_modules/rx/ts/core/es6-promise.d.ts | 97 + node_modules/rx/ts/core/es6.ts | 31 + .../rx/ts/core/internal/bindcallback.ts | 9 + node_modules/rx/ts/core/internal/errors.ts | 23 + node_modules/rx/ts/core/internal/isequal.ts | 9 + .../rx/ts/core/internal/priorityqueue.ts | 40 + node_modules/rx/ts/core/internal/util.ts | 15 + node_modules/rx/ts/core/joins/pattern.ts | 110 + node_modules/rx/ts/core/joins/plan.ts | 3 + .../rx/ts/core/linq/connectableobservable.ts | 14 + .../rx/ts/core/linq/groupedobservable.ts | 14 + .../rx/ts/core/linq/observable/amb.ts | 26 + .../rx/ts/core/linq/observable/ambproto.ts | 22 + .../rx/ts/core/linq/observable/and.ts | 31 + .../ts/core/linq/observable/asobservable.ts | 16 + .../rx/ts/core/linq/observable/average.ts | 21 + .../rx/ts/core/linq/observable/buffer.ts | 35 + .../core/linq/observable/bufferwithcount.ts | 19 + .../ts/core/linq/observable/bufferwithtime.ts | 31 + .../linq/observable/bufferwithtimeorcount.ts | 20 + .../rx/ts/core/linq/observable/case.ts | 51 + .../rx/ts/core/linq/observable/catch.ts | 28 + .../rx/ts/core/linq/observable/catchproto.ts | 32 + .../ts/core/linq/observable/combinelatest.ts | 97 + .../linq/observable/combinelatestproto.ts | 106 + .../rx/ts/core/linq/observable/concat.ts | 28 + .../rx/ts/core/linq/observable/concatall.ts | 16 + .../rx/ts/core/linq/observable/concatmap.ts | 199 + .../core/linq/observable/concatmapobserver.ts | 35 + .../rx/ts/core/linq/observable/concatproto.ts | 19 + .../rx/ts/core/linq/observable/count.ts | 25 + .../rx/ts/core/linq/observable/create.ts | 23 + .../rx/ts/core/linq/observable/debounce.ts | 27 + .../ts/core/linq/observable/defaultifempty.ts | 23 + .../rx/ts/core/linq/observable/defer.ts | 20 + .../rx/ts/core/linq/observable/delay.ts | 74 + .../core/linq/observable/delaysubscription.ts | 24 + .../ts/core/linq/observable/dematerialize.ts | 15 + .../rx/ts/core/linq/observable/distinct.ts | 25 + .../linq/observable/distinctuntilchanged.ts | 24 + .../rx/ts/core/linq/observable/dowhile.ts | 18 + .../rx/ts/core/linq/observable/elementat.ts | 17 + .../rx/ts/core/linq/observable/empty.ts | 22 + .../rx/ts/core/linq/observable/every.ts | 20 + .../rx/ts/core/linq/observable/expand.ts | 20 + .../rx/ts/core/linq/observable/filter.ts | 36 + .../rx/ts/core/linq/observable/finally.ts | 24 + .../rx/ts/core/linq/observable/find.ts | 18 + .../rx/ts/core/linq/observable/findindex.ts | 19 + .../rx/ts/core/linq/observable/first.ts | 16 + .../rx/ts/core/linq/observable/flatmap.ts | 196 + .../ts/core/linq/observable/flatmapfirst.ts | 109 + .../ts/core/linq/observable/flatmaplatest.ts | 108 + .../observable/flatmapwithmaxconcurrent.ts | 205 + .../rx/ts/core/linq/observable/for.ts | 27 + .../rx/ts/core/linq/observable/forkjoin.ts | 31 + .../ts/core/linq/observable/forkjoinproto.ts | 20 + .../rx/ts/core/linq/observable/from.ts | 31 + .../rx/ts/core/linq/observable/fromarray.ts | 18 + .../ts/core/linq/observable/fromcallback.ts | 96 + .../rx/ts/core/linq/observable/fromevent.ts | 22 + .../core/linq/observable/fromeventpattern.ts | 13 + .../core/linq/observable/fromnodecallback.ts | 85 + .../rx/ts/core/linq/observable/frompromise.ts | 16 + .../rx/ts/core/linq/observable/generate.ts | 20 + .../observable/generatewithabsolutetime.ts | 32 + .../observable/generatewithrelativetime.ts | 32 + .../rx/ts/core/linq/observable/groupby.ts | 29 + .../ts/core/linq/observable/groupbyuntil.ts | 41 + .../rx/ts/core/linq/observable/groupjoin.ts | 19 + node_modules/rx/ts/core/linq/observable/if.ts | 27 + .../ts/core/linq/observable/ignoreelements.ts | 15 + .../rx/ts/core/linq/observable/includes.ts | 17 + .../rx/ts/core/linq/observable/indexof.ts | 18 + .../rx/ts/core/linq/observable/interval.ts | 23 + .../rx/ts/core/linq/observable/isempty.ts | 15 + .../rx/ts/core/linq/observable/join.ts | 19 + .../rx/ts/core/linq/observable/jortsort.ts | 16 + .../ts/core/linq/observable/jortsortuntil.ts | 16 + .../rx/ts/core/linq/observable/just.ts | 31 + .../rx/ts/core/linq/observable/last.ts | 16 + .../rx/ts/core/linq/observable/let.ts | 19 + .../rx/ts/core/linq/observable/manyselect.ts | 27 + .../rx/ts/core/linq/observable/map.ts | 27 + .../rx/ts/core/linq/observable/materialize.ts | 15 + .../rx/ts/core/linq/observable/max.ts | 21 + .../rx/ts/core/linq/observable/maxby.ts | 32 + .../rx/ts/core/linq/observable/merge.ts | 40 + .../rx/ts/core/linq/observable/mergeall.ts | 17 + .../rx/ts/core/linq/observable/mergeconcat.ts | 37 + .../core/linq/observable/mergedelayerror.ts | 37 + .../rx/ts/core/linq/observable/min.ts | 21 + .../rx/ts/core/linq/observable/minby.ts | 32 + .../rx/ts/core/linq/observable/multicast.ts | 58 + .../rx/ts/core/linq/observable/never.ts | 16 + .../rx/ts/core/linq/observable/observeon.ts | 21 + node_modules/rx/ts/core/linq/observable/of.ts | 24 + .../ts/core/linq/observable/ofarraychanges.ts | 26 + .../core/linq/observable/ofobjectchanges.ts | 23 + .../core/linq/observable/onerrorresumenext.ts | 30 + .../linq/observable/onerrorresumenextproto.ts | 18 + .../rx/ts/core/linq/observable/pairs.ts | 30 + .../rx/ts/core/linq/observable/pairwise.ts | 20 + .../rx/ts/core/linq/observable/partition.ts | 26 + .../rx/ts/core/linq/observable/pipe.ts | 12 + .../rx/ts/core/linq/observable/pluck.ts | 19 + .../rx/ts/core/linq/observable/publish.ts | 40 + .../rx/ts/core/linq/observable/publishlast.ts | 41 + .../ts/core/linq/observable/publishvalue.ts | 42 + .../rx/ts/core/linq/observable/range.ts | 23 + .../rx/ts/core/linq/observable/reduce.ts | 28 + .../rx/ts/core/linq/observable/repeat.ts | 27 + .../rx/ts/core/linq/observable/repeatproto.ts | 18 + .../rx/ts/core/linq/observable/replay.ts | 50 + .../rx/ts/core/linq/observable/retry.ts | 22 + .../rx/ts/core/linq/observable/retrywhen.ts | 22 + .../rx/ts/core/linq/observable/sample.ts | 72 + .../rx/ts/core/linq/observable/scan.ts | 35 + .../linq/observable/selectmanyobserver.ts | 35 + .../ts/core/linq/observable/sequenceequal.ts | 38 + .../rx/ts/core/linq/observable/share.ts | 21 + .../rx/ts/core/linq/observable/sharereplay.ts | 34 + .../rx/ts/core/linq/observable/sharevalue.ts | 23 + .../rx/ts/core/linq/observable/single.ts | 24 + .../ts/core/linq/observable/singleinstance.ts | 22 + .../rx/ts/core/linq/observable/skip.ts | 16 + .../rx/ts/core/linq/observable/skiplast.ts | 20 + .../core/linq/observable/skiplastwithtime.ts | 28 + .../rx/ts/core/linq/observable/skipuntil.ts | 18 + .../core/linq/observable/skipuntilwithtime.ts | 41 + .../rx/ts/core/linq/observable/skipwhile.ts | 16 + .../ts/core/linq/observable/skipwithtime.ts | 29 + .../rx/ts/core/linq/observable/some.ts | 21 + .../rx/ts/core/linq/observable/spawn.ts | 7 + .../rx/ts/core/linq/observable/start.ts | 30 + .../rx/ts/core/linq/observable/startasync.ts | 16 + .../rx/ts/core/linq/observable/startwith.ts | 30 + .../rx/ts/core/linq/observable/subscribeon.ts | 24 + .../rx/ts/core/linq/observable/sum.ts | 22 + .../rx/ts/core/linq/observable/switch.ts | 22 + .../rx/ts/core/linq/observable/switchfirst.ts | 18 + .../rx/ts/core/linq/observable/take.ts | 22 + .../rx/ts/core/linq/observable/takelast.ts | 21 + .../ts/core/linq/observable/takelastbuffer.ts | 22 + .../linq/observable/takelastbufferwithtime.ts | 25 + .../core/linq/observable/takelastwithtime.ts | 24 + .../rx/ts/core/linq/observable/takeuntil.ts | 19 + .../core/linq/observable/takeuntilwithtime.ts | 31 + .../rx/ts/core/linq/observable/takewhile.ts | 13 + .../ts/core/linq/observable/takewithtime.ts | 27 + .../rx/ts/core/linq/observable/tap.ts | 118 + .../rx/ts/core/linq/observable/thendo.ts | 13 + .../rx/ts/core/linq/observable/throttle.ts | 20 + .../rx/ts/core/linq/observable/throw.ts | 28 + .../ts/core/linq/observable/timeinterval.ts | 29 + .../rx/ts/core/linq/observable/timeout.ts | 80 + .../rx/ts/core/linq/observable/timer.ts | 30 + .../rx/ts/core/linq/observable/timestamp.ts | 28 + .../rx/ts/core/linq/observable/toarray.ts | 16 + .../rx/ts/core/linq/observable/toasync.ts | 59 + .../rx/ts/core/linq/observable/tomap.ts | 19 + .../rx/ts/core/linq/observable/topromise.ts | 35 + .../rx/ts/core/linq/observable/toset.ts | 10 + .../rx/ts/core/linq/observable/transduce.ts | 12 + .../rx/ts/core/linq/observable/using.ts | 18 + .../rx/ts/core/linq/observable/when.ts | 13 + .../rx/ts/core/linq/observable/while.ts | 29 + .../rx/ts/core/linq/observable/window.ts | 38 + .../core/linq/observable/windowwithcount.ts | 22 + .../ts/core/linq/observable/windowwithtime.ts | 31 + .../linq/observable/windowwithtimeorcount.ts | 20 + .../ts/core/linq/observable/withlatestfrom.ts | 61 + .../rx/ts/core/linq/observable/zip.ts | 126 + .../rx/ts/core/linq/observable/zipiterable.ts | 17 + node_modules/rx/ts/core/notification.ts | 86 + node_modules/rx/ts/core/observable.ts | 149 + node_modules/rx/ts/core/observer-extras.ts | 73 + node_modules/rx/ts/core/observer-lite.ts | 74 + node_modules/rx/ts/core/observer.ts | 11 + node_modules/rx/ts/core/scheduledobserver.ts | 13 + .../rx/ts/core/subjects/anonymoussubject.ts | 22 + .../rx/ts/core/subjects/asyncsubject.ts | 23 + .../rx/ts/core/subjects/behaviorsubject.ts | 33 + .../rx/ts/core/subjects/replaysubject.ts | 28 + node_modules/rx/ts/core/subjects/subject.ts | 59 + .../rx/ts/core/testing/mockdisposable.ts | 9 + .../rx/ts/core/testing/mockobserver.ts | 21 + .../rx/ts/core/testing/reactivetest.ts | 89 + node_modules/rx/ts/core/testing/recorded.ts | 43 + .../rx/ts/core/testing/subscription.ts | 36 + .../rx/ts/core/testing/testscheduler.ts | 87 + node_modules/rx/ts/es6-promise.es6.d.ts | 97 + node_modules/rx/ts/iterable.es6.d.ts | 197 + node_modules/rx/ts/rx.aggregates.d.ts | 259 + node_modules/rx/ts/rx.aggregates.es6.d.ts | 284 + node_modules/rx/ts/rx.all.d.ts | 4975 +++++ node_modules/rx/ts/rx.all.es6.d.ts | 4997 +++++ node_modules/rx/ts/rx.async.d.ts | 288 + node_modules/rx/ts/rx.async.es6.d.ts | 288 + node_modules/rx/ts/rx.backpressure.d.ts | 93 + node_modules/rx/ts/rx.backpressure.es6.d.ts | 93 + node_modules/rx/ts/rx.binding.d.ts | 258 + node_modules/rx/ts/rx.binding.es6.d.ts | 258 + node_modules/rx/ts/rx.coincidence.d.ts | 186 + node_modules/rx/ts/rx.coincidence.es6.d.ts | 186 + node_modules/rx/ts/rx.core.binding.d.ts | 249 + node_modules/rx/ts/rx.core.binding.es6.d.ts | 249 + node_modules/rx/ts/rx.core.d.ts | 564 + node_modules/rx/ts/rx.core.es6.d.ts | 561 + node_modules/rx/ts/rx.core.testing.d.ts | 270 + node_modules/rx/ts/rx.core.testing.es6.d.ts | 270 + node_modules/rx/ts/rx.d.ts | 2507 +++ node_modules/rx/ts/rx.es6.d.ts | 2504 +++ node_modules/rx/ts/rx.experimental.d.ts | 423 + node_modules/rx/ts/rx.experimental.es6.d.ts | 423 + node_modules/rx/ts/rx.joinpatterns.d.ts | 143 + node_modules/rx/ts/rx.joinpatterns.es6.d.ts | 143 + node_modules/rx/ts/rx.lite.d.ts | 3061 +++ node_modules/rx/ts/rx.lite.es6.d.ts | 3058 +++ node_modules/rx/ts/rx.lite.extras.d.ts | 225 + node_modules/rx/ts/rx.lite.extras.es6.d.ts | 225 + node_modules/rx/ts/rx.sorting.d.ts | 22 + node_modules/rx/ts/rx.sorting.es6.d.ts | 22 + node_modules/rx/ts/rx.testing.d.ts | 210 + node_modules/rx/ts/rx.testing.es6.d.ts | 210 + node_modules/rx/ts/rx.time.d.ts | 536 + node_modules/rx/ts/rx.time.es6.d.ts | 536 + node_modules/rx/ts/rx.virtualtime.d.ts | 77 + node_modules/rx/ts/rx.virtualtime.es6.d.ts | 77 + node_modules/rx/ts/tsconfig.json | 241 + 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/tslib/CopyrightNotice.txt | 15 + node_modules/tslib/LICENSE.txt | 12 + node_modules/tslib/README.md | 142 + node_modules/tslib/modules/index.js | 51 + node_modules/tslib/modules/package.json | 3 + node_modules/tslib/package.json | 64 + .../index.js | 23 + .../package.json | 6 + 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/universalify/LICENSE | 20 + node_modules/universalify/README.md | 76 + node_modules/universalify/index.js | 25 + node_modules/universalify/package.json | 64 + node_modules/wait-file/LICENSE.md | 21 + node_modules/wait-file/README.md | 59 + node_modules/wait-file/dist/index.d.ts | 11 + node_modules/wait-file/dist/index.js | 8 + .../dist/wait-file.cjs.development.js | 180 + .../dist/wait-file.cjs.development.js.map | 1 + .../dist/wait-file.cjs.production.min.js | 2 + .../dist/wait-file.cjs.production.min.js.map | 1 + node_modules/wait-file/dist/wait-file.esm.js | 176 + .../wait-file/dist/wait-file.esm.js.map | 1 + node_modules/wait-file/package.json | 87 + node_modules/wait-on/.editorconfig | 9 + node_modules/wait-on/.eslintrc.js | 19 + node_modules/wait-on/.travis.yml | 8 + node_modules/wait-on/LICENSE | 9 + node_modules/wait-on/README.md | 295 + node_modules/wait-on/bin/usage.txt | 90 + node_modules/wait-on/bin/wait-on | 83 + node_modules/wait-on/exampleConfig.js | 23 + node_modules/wait-on/lib/wait-on.js | 397 + node_modules/wait-on/package.json | 97 + package-lock.json | 186 + package.json | 4 +- 5355 files changed, 270614 insertions(+), 17 deletions(-) create mode 120000 node_modules/.bin/wait-on create mode 100644 node_modules/@hapi/address/.travis.yml create mode 100755 node_modules/@hapi/address/API.md create mode 100644 node_modules/@hapi/address/CHANGELOG.md create mode 100644 node_modules/@hapi/address/LICENSE.md create mode 100755 node_modules/@hapi/address/README.md create mode 100755 node_modules/@hapi/address/bench/test.js create mode 100755 node_modules/@hapi/address/lib/domain.js create mode 100755 node_modules/@hapi/address/lib/email.js create mode 100755 node_modules/@hapi/address/lib/index.js create mode 100755 node_modules/@hapi/address/lib/tlds.js create mode 100644 node_modules/@hapi/address/package.json create mode 100755 node_modules/@hapi/address/test/index.js create mode 100644 node_modules/@hapi/bourne/.npmignore create mode 100755 node_modules/@hapi/bourne/LICENSE.md create mode 100755 node_modules/@hapi/bourne/README.md create mode 100755 node_modules/@hapi/bourne/lib/index.js create mode 100644 node_modules/@hapi/bourne/package.json create mode 100755 node_modules/@hapi/hoek/LICENSE.md create mode 100755 node_modules/@hapi/hoek/README.md create mode 100755 node_modules/@hapi/hoek/lib/applyToDefaults.js create mode 100755 node_modules/@hapi/hoek/lib/assert.js create mode 100755 node_modules/@hapi/hoek/lib/bench.js create mode 100755 node_modules/@hapi/hoek/lib/block.js create mode 100755 node_modules/@hapi/hoek/lib/clone.js create mode 100755 node_modules/@hapi/hoek/lib/contain.js create mode 100755 node_modules/@hapi/hoek/lib/deepEqual.js create mode 100755 node_modules/@hapi/hoek/lib/error.js create mode 100755 node_modules/@hapi/hoek/lib/escapeHeaderAttribute.js create mode 100755 node_modules/@hapi/hoek/lib/escapeHtml.js create mode 100755 node_modules/@hapi/hoek/lib/escapeJson.js create mode 100755 node_modules/@hapi/hoek/lib/escapeRegex.js create mode 100755 node_modules/@hapi/hoek/lib/flatten.js create mode 100755 node_modules/@hapi/hoek/lib/ignore.js create mode 100755 node_modules/@hapi/hoek/lib/index.d.ts create mode 100755 node_modules/@hapi/hoek/lib/index.js create mode 100755 node_modules/@hapi/hoek/lib/intersect.js create mode 100755 node_modules/@hapi/hoek/lib/isPromise.js create mode 100755 node_modules/@hapi/hoek/lib/merge.js create mode 100755 node_modules/@hapi/hoek/lib/once.js create mode 100755 node_modules/@hapi/hoek/lib/reach.js create mode 100755 node_modules/@hapi/hoek/lib/reachTemplate.js create mode 100755 node_modules/@hapi/hoek/lib/stringify.js create mode 100755 node_modules/@hapi/hoek/lib/types.js create mode 100755 node_modules/@hapi/hoek/lib/utils.js create mode 100755 node_modules/@hapi/hoek/lib/wait.js create mode 100755 node_modules/@hapi/hoek/package.json create mode 100644 node_modules/@hapi/joi/CHANGELOG.md create mode 100755 node_modules/@hapi/joi/LICENSE.md create mode 100644 node_modules/@hapi/joi/README.md create mode 100755 node_modules/@hapi/joi/lib/cast.js create mode 100755 node_modules/@hapi/joi/lib/errors.js create mode 100755 node_modules/@hapi/joi/lib/index.js create mode 100755 node_modules/@hapi/joi/lib/language.js create mode 100755 node_modules/@hapi/joi/lib/ref.js create mode 100755 node_modules/@hapi/joi/lib/schemas.js create mode 100644 node_modules/@hapi/joi/lib/set.js create mode 100755 node_modules/@hapi/joi/lib/types/alternatives/index.js create mode 100755 node_modules/@hapi/joi/lib/types/any/index.js create mode 100755 node_modules/@hapi/joi/lib/types/any/settings.js create mode 100755 node_modules/@hapi/joi/lib/types/array/index.js create mode 100755 node_modules/@hapi/joi/lib/types/binary/index.js create mode 100755 node_modules/@hapi/joi/lib/types/boolean/index.js create mode 100755 node_modules/@hapi/joi/lib/types/date/index.js create mode 100755 node_modules/@hapi/joi/lib/types/func/index.js create mode 100755 node_modules/@hapi/joi/lib/types/lazy/index.js create mode 100755 node_modules/@hapi/joi/lib/types/number/index.js create mode 100755 node_modules/@hapi/joi/lib/types/object/index.js create mode 100755 node_modules/@hapi/joi/lib/types/state.js create mode 100755 node_modules/@hapi/joi/lib/types/string/index.js create mode 100755 node_modules/@hapi/joi/lib/types/string/ip.js create mode 100755 node_modules/@hapi/joi/lib/types/string/rfc3986.js create mode 100755 node_modules/@hapi/joi/lib/types/string/uri.js create mode 100755 node_modules/@hapi/joi/lib/types/symbol/index.js create mode 100755 node_modules/@hapi/joi/lib/types/symbols.js create mode 100644 node_modules/@hapi/joi/node_modules/@hapi/hoek/CHANGELOG.md create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/hoek/LICENSE.md create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/hoek/README.md create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/applyToDefaults.js create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/assert.js create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/bench.js create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/block.js create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/clone.js create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/contain.js create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/deepEqual.js create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/error.js create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/escapeHeaderAttribute.js create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/escapeHtml.js create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/escapeJson.js create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/escapeRegex.js create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/flatten.js create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/ignore.js create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/index.d.ts create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/index.js create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/intersect.js create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/isPromise.js create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/merge.js create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/once.js create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/reach.js create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/reachTemplate.js create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/stringify.js create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/types.js create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/utils.js create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/wait.js create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/hoek/package.json create mode 100644 node_modules/@hapi/joi/node_modules/@hapi/topo/CHANGELOG.md create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/topo/LICENSE.md create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/topo/README.md create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/topo/lib/index.js create mode 100755 node_modules/@hapi/joi/node_modules/@hapi/topo/package.json create mode 100644 node_modules/@hapi/joi/package.json create mode 100755 node_modules/@hapi/topo/LICENSE.md create mode 100755 node_modules/@hapi/topo/README.md create mode 100755 node_modules/@hapi/topo/lib/index.d.ts create mode 100755 node_modules/@hapi/topo/lib/index.js create mode 100755 node_modules/@hapi/topo/package.json create mode 100644 node_modules/@sideway/address/LICENSE.md create mode 100755 node_modules/@sideway/address/README.md create mode 100755 node_modules/@sideway/address/lib/decode.js create mode 100755 node_modules/@sideway/address/lib/domain.js create mode 100755 node_modules/@sideway/address/lib/email.js create mode 100755 node_modules/@sideway/address/lib/errors.js create mode 100755 node_modules/@sideway/address/lib/index.d.ts create mode 100755 node_modules/@sideway/address/lib/index.js create mode 100755 node_modules/@sideway/address/lib/ip.js create mode 100755 node_modules/@sideway/address/lib/tlds.js create mode 100755 node_modules/@sideway/address/lib/uri.js create mode 100755 node_modules/@sideway/address/package.json create mode 100644 node_modules/@sideway/formula/LICENSE.md create mode 100755 node_modules/@sideway/formula/README.md create mode 100755 node_modules/@sideway/formula/lib/index.d.ts create mode 100755 node_modules/@sideway/formula/lib/index.js create mode 100755 node_modules/@sideway/formula/package.json create mode 100755 node_modules/@sideway/pinpoint/LICENSE.md create mode 100755 node_modules/@sideway/pinpoint/README.md create mode 100755 node_modules/@sideway/pinpoint/lib/index.d.ts create mode 100755 node_modules/@sideway/pinpoint/lib/index.js create mode 100755 node_modules/@sideway/pinpoint/package.json create mode 100644 node_modules/axios/CHANGELOG.md create mode 100644 node_modules/axios/LICENSE create mode 100755 node_modules/axios/README.md create mode 100644 node_modules/axios/UPGRADE_GUIDE.md create mode 100644 node_modules/axios/dist/axios.js create mode 100644 node_modules/axios/dist/axios.map create mode 100644 node_modules/axios/dist/axios.min.js create mode 100644 node_modules/axios/dist/axios.min.map create mode 100644 node_modules/axios/index.d.ts create mode 100644 node_modules/axios/index.js create mode 100644 node_modules/axios/lib/adapters/README.md create mode 100755 node_modules/axios/lib/adapters/http.js create mode 100644 node_modules/axios/lib/adapters/xhr.js create mode 100644 node_modules/axios/lib/axios.js create mode 100644 node_modules/axios/lib/cancel/Cancel.js create mode 100644 node_modules/axios/lib/cancel/CancelToken.js create mode 100644 node_modules/axios/lib/cancel/isCancel.js create mode 100644 node_modules/axios/lib/core/Axios.js create mode 100644 node_modules/axios/lib/core/InterceptorManager.js create mode 100644 node_modules/axios/lib/core/README.md create mode 100644 node_modules/axios/lib/core/buildFullPath.js create mode 100644 node_modules/axios/lib/core/createError.js create mode 100644 node_modules/axios/lib/core/dispatchRequest.js create mode 100644 node_modules/axios/lib/core/enhanceError.js create mode 100644 node_modules/axios/lib/core/mergeConfig.js create mode 100644 node_modules/axios/lib/core/settle.js create mode 100644 node_modules/axios/lib/core/transformData.js create mode 100644 node_modules/axios/lib/defaults.js create mode 100644 node_modules/axios/lib/helpers/README.md create mode 100644 node_modules/axios/lib/helpers/bind.js create mode 100644 node_modules/axios/lib/helpers/buildURL.js create mode 100644 node_modules/axios/lib/helpers/combineURLs.js create mode 100644 node_modules/axios/lib/helpers/cookies.js create mode 100644 node_modules/axios/lib/helpers/deprecatedMethod.js create mode 100644 node_modules/axios/lib/helpers/isAbsoluteURL.js create mode 100644 node_modules/axios/lib/helpers/isURLSameOrigin.js create mode 100644 node_modules/axios/lib/helpers/normalizeHeaderName.js create mode 100644 node_modules/axios/lib/helpers/parseHeaders.js create mode 100644 node_modules/axios/lib/helpers/spread.js create mode 100644 node_modules/axios/lib/utils.js create mode 100644 node_modules/axios/package.json 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/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/node.js create mode 100644 node_modules/follow-redirects/LICENSE create mode 100644 node_modules/follow-redirects/README.md create mode 100644 node_modules/follow-redirects/http.js create mode 100644 node_modules/follow-redirects/https.js create mode 100644 node_modules/follow-redirects/index.js create mode 100644 node_modules/follow-redirects/package.json create mode 100644 node_modules/fs-extra/CHANGELOG.md create mode 100644 node_modules/fs-extra/LICENSE create mode 100644 node_modules/fs-extra/README.md create mode 100644 node_modules/fs-extra/lib/copy-sync/copy-sync.js create mode 100644 node_modules/fs-extra/lib/copy-sync/index.js create mode 100644 node_modules/fs-extra/lib/copy/copy.js create mode 100644 node_modules/fs-extra/lib/copy/index.js create mode 100644 node_modules/fs-extra/lib/empty/index.js create mode 100644 node_modules/fs-extra/lib/ensure/file.js create mode 100644 node_modules/fs-extra/lib/ensure/index.js create mode 100644 node_modules/fs-extra/lib/ensure/link.js create mode 100644 node_modules/fs-extra/lib/ensure/symlink-paths.js create mode 100644 node_modules/fs-extra/lib/ensure/symlink-type.js create mode 100644 node_modules/fs-extra/lib/ensure/symlink.js create mode 100644 node_modules/fs-extra/lib/fs/index.js create mode 100644 node_modules/fs-extra/lib/index.js create mode 100644 node_modules/fs-extra/lib/json/index.js create mode 100644 node_modules/fs-extra/lib/json/jsonfile.js create mode 100644 node_modules/fs-extra/lib/json/output-json-sync.js create mode 100644 node_modules/fs-extra/lib/json/output-json.js create mode 100644 node_modules/fs-extra/lib/mkdirs/index.js create mode 100644 node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js create mode 100644 node_modules/fs-extra/lib/mkdirs/mkdirs.js create mode 100644 node_modules/fs-extra/lib/mkdirs/win32.js create mode 100644 node_modules/fs-extra/lib/move-sync/index.js create mode 100644 node_modules/fs-extra/lib/move-sync/move-sync.js create mode 100644 node_modules/fs-extra/lib/move/index.js create mode 100644 node_modules/fs-extra/lib/move/move.js create mode 100644 node_modules/fs-extra/lib/output/index.js create mode 100644 node_modules/fs-extra/lib/path-exists/index.js create mode 100644 node_modules/fs-extra/lib/remove/index.js create mode 100644 node_modules/fs-extra/lib/remove/rimraf.js create mode 100644 node_modules/fs-extra/lib/util/buffer.js create mode 100644 node_modules/fs-extra/lib/util/stat.js create mode 100644 node_modules/fs-extra/lib/util/utimes.js create mode 100644 node_modules/fs-extra/package.json 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 100755 node_modules/joi/LICENSE.md create mode 100755 node_modules/joi/README.md create mode 100644 node_modules/joi/dist/joi-browser.min.js create mode 100755 node_modules/joi/lib/annotate.js create mode 100755 node_modules/joi/lib/base.js create mode 100755 node_modules/joi/lib/cache.js create mode 100755 node_modules/joi/lib/common.js create mode 100755 node_modules/joi/lib/compile.js create mode 100755 node_modules/joi/lib/errors.js create mode 100755 node_modules/joi/lib/extend.js create mode 100644 node_modules/joi/lib/index.d.ts create mode 100755 node_modules/joi/lib/index.js create mode 100755 node_modules/joi/lib/manifest.js create mode 100755 node_modules/joi/lib/messages.js create mode 100755 node_modules/joi/lib/modify.js create mode 100755 node_modules/joi/lib/ref.js create mode 100755 node_modules/joi/lib/schemas.js create mode 100755 node_modules/joi/lib/state.js create mode 100755 node_modules/joi/lib/template.js create mode 100755 node_modules/joi/lib/trace.js create mode 100755 node_modules/joi/lib/types/alternatives.js create mode 100755 node_modules/joi/lib/types/any.js create mode 100755 node_modules/joi/lib/types/array.js create mode 100755 node_modules/joi/lib/types/binary.js create mode 100755 node_modules/joi/lib/types/boolean.js create mode 100755 node_modules/joi/lib/types/date.js create mode 100755 node_modules/joi/lib/types/function.js create mode 100755 node_modules/joi/lib/types/keys.js create mode 100755 node_modules/joi/lib/types/link.js create mode 100755 node_modules/joi/lib/types/number.js create mode 100755 node_modules/joi/lib/types/object.js create mode 100755 node_modules/joi/lib/types/string.js create mode 100755 node_modules/joi/lib/types/symbol.js create mode 100755 node_modules/joi/lib/validator.js create mode 100755 node_modules/joi/lib/values.js create mode 100755 node_modules/joi/package.json create mode 100644 node_modules/jsonfile/CHANGELOG.md create mode 100644 node_modules/jsonfile/LICENSE create mode 100644 node_modules/jsonfile/README.md create mode 100644 node_modules/jsonfile/index.js create mode 100644 node_modules/jsonfile/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/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/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/rx/.coveralls.yml create mode 100644 node_modules/rx/.editorconfig create mode 100644 node_modules/rx/.jamignore create mode 100644 node_modules/rx/.jscsrc create mode 100644 node_modules/rx/.jscsrc.todo create mode 100644 node_modules/rx/authors.txt create mode 100644 node_modules/rx/bower.json create mode 100644 node_modules/rx/code-of-conduct.md create mode 100644 node_modules/rx/component.json create mode 100644 node_modules/rx/contributing.md create mode 100644 node_modules/rx/dist/rx.aggregates.js create mode 100644 node_modules/rx/dist/rx.aggregates.map create mode 100644 node_modules/rx/dist/rx.aggregates.min.js create mode 100644 node_modules/rx/dist/rx.all.compat.js create mode 100644 node_modules/rx/dist/rx.all.compat.map create mode 100644 node_modules/rx/dist/rx.all.compat.min.js create mode 100644 node_modules/rx/dist/rx.all.js create mode 100644 node_modules/rx/dist/rx.all.map create mode 100644 node_modules/rx/dist/rx.all.min.js create mode 100644 node_modules/rx/dist/rx.async.compat.js create mode 100644 node_modules/rx/dist/rx.async.compat.map create mode 100644 node_modules/rx/dist/rx.async.compat.min.js create mode 100644 node_modules/rx/dist/rx.async.js create mode 100644 node_modules/rx/dist/rx.async.map create mode 100644 node_modules/rx/dist/rx.async.min.js create mode 100644 node_modules/rx/dist/rx.backpressure.js create mode 100644 node_modules/rx/dist/rx.backpressure.map create mode 100644 node_modules/rx/dist/rx.backpressure.min.js create mode 100644 node_modules/rx/dist/rx.binding.js create mode 100644 node_modules/rx/dist/rx.binding.map create mode 100644 node_modules/rx/dist/rx.binding.min.js create mode 100644 node_modules/rx/dist/rx.coincidence.js create mode 100644 node_modules/rx/dist/rx.coincidence.map create mode 100644 node_modules/rx/dist/rx.coincidence.min.js create mode 100644 node_modules/rx/dist/rx.compat.js create mode 100644 node_modules/rx/dist/rx.compat.map create mode 100644 node_modules/rx/dist/rx.compat.min.js create mode 100644 node_modules/rx/dist/rx.core.binding.js create mode 100644 node_modules/rx/dist/rx.core.binding.map create mode 100644 node_modules/rx/dist/rx.core.binding.min.js create mode 100644 node_modules/rx/dist/rx.core.js create mode 100644 node_modules/rx/dist/rx.core.map create mode 100644 node_modules/rx/dist/rx.core.min.js create mode 100644 node_modules/rx/dist/rx.core.testing.js create mode 100644 node_modules/rx/dist/rx.core.testing.map create mode 100644 node_modules/rx/dist/rx.core.testing.min.js create mode 100644 node_modules/rx/dist/rx.experimental.js create mode 100644 node_modules/rx/dist/rx.experimental.map create mode 100644 node_modules/rx/dist/rx.experimental.min.js create mode 100644 node_modules/rx/dist/rx.joinpatterns.js create mode 100644 node_modules/rx/dist/rx.joinpatterns.map create mode 100644 node_modules/rx/dist/rx.joinpatterns.min.js create mode 100644 node_modules/rx/dist/rx.js create mode 100644 node_modules/rx/dist/rx.lite.compat.js create mode 100644 node_modules/rx/dist/rx.lite.compat.map create mode 100644 node_modules/rx/dist/rx.lite.compat.min.js create mode 100644 node_modules/rx/dist/rx.lite.extras.compat.js create mode 100644 node_modules/rx/dist/rx.lite.extras.compat.map create mode 100644 node_modules/rx/dist/rx.lite.extras.compat.min.js create mode 100644 node_modules/rx/dist/rx.lite.extras.js create mode 100644 node_modules/rx/dist/rx.lite.extras.map create mode 100644 node_modules/rx/dist/rx.lite.extras.min.js create mode 100644 node_modules/rx/dist/rx.lite.js create mode 100644 node_modules/rx/dist/rx.lite.map create mode 100644 node_modules/rx/dist/rx.lite.min.js create mode 100644 node_modules/rx/dist/rx.map create mode 100644 node_modules/rx/dist/rx.min.js create mode 100644 node_modules/rx/dist/rx.sorting.js create mode 100644 node_modules/rx/dist/rx.sorting.map create mode 100644 node_modules/rx/dist/rx.sorting.min.js create mode 100644 node_modules/rx/dist/rx.testing.js create mode 100644 node_modules/rx/dist/rx.testing.map create mode 100644 node_modules/rx/dist/rx.testing.min.js create mode 100644 node_modules/rx/dist/rx.time.js create mode 100644 node_modules/rx/dist/rx.time.map create mode 100644 node_modules/rx/dist/rx.time.min.js create mode 100644 node_modules/rx/dist/rx.virtualtime.js create mode 100644 node_modules/rx/dist/rx.virtualtime.map create mode 100644 node_modules/rx/dist/rx.virtualtime.min.js create mode 100644 node_modules/rx/index.js create mode 100644 node_modules/rx/license.txt create mode 100644 node_modules/rx/package.json create mode 100644 node_modules/rx/readme.md create mode 100644 node_modules/rx/ts/core/abstractobserver.ts create mode 100644 node_modules/rx/ts/core/anonymousobservable.ts create mode 100644 node_modules/rx/ts/core/anonymousobserver.ts create mode 100644 node_modules/rx/ts/core/backpressure/controlled.ts create mode 100644 node_modules/rx/ts/core/backpressure/pausable.ts create mode 100644 node_modules/rx/ts/core/backpressure/pausablebuffered.ts create mode 100644 node_modules/rx/ts/core/backpressure/pauser.ts create mode 100644 node_modules/rx/ts/core/backpressure/stopandwait.ts create mode 100644 node_modules/rx/ts/core/backpressure/windowed.ts create mode 100644 node_modules/rx/ts/core/checkedobserver.ts create mode 100644 node_modules/rx/ts/core/concurrency/currentthreadscheduler.ts create mode 100644 node_modules/rx/ts/core/concurrency/defaultscheduler.ts create mode 100644 node_modules/rx/ts/core/concurrency/historicalscheduler.ts create mode 100644 node_modules/rx/ts/core/concurrency/immediatescheduler.ts create mode 100644 node_modules/rx/ts/core/concurrency/scheduleditem.ts create mode 100644 node_modules/rx/ts/core/concurrency/scheduleperiodicrecursive.ts create mode 100644 node_modules/rx/ts/core/concurrency/scheduler.periodic.ts create mode 100644 node_modules/rx/ts/core/concurrency/scheduler.recursive.ts create mode 100644 node_modules/rx/ts/core/concurrency/scheduler.ts create mode 100644 node_modules/rx/ts/core/concurrency/scheduler.wrappers.ts create mode 100644 node_modules/rx/ts/core/concurrency/virtualtimescheduler.ts create mode 100644 node_modules/rx/ts/core/disposables/booleandisposable.ts create mode 100644 node_modules/rx/ts/core/disposables/compositedisposable.ts create mode 100644 node_modules/rx/ts/core/disposables/disposable.ts create mode 100644 node_modules/rx/ts/core/disposables/refcountdisposable.ts create mode 100644 node_modules/rx/ts/core/es5.ts create mode 100644 node_modules/rx/ts/core/es6-iterable.d.ts create mode 100644 node_modules/rx/ts/core/es6-promise.d.ts create mode 100644 node_modules/rx/ts/core/es6.ts create mode 100644 node_modules/rx/ts/core/internal/bindcallback.ts create mode 100644 node_modules/rx/ts/core/internal/errors.ts create mode 100644 node_modules/rx/ts/core/internal/isequal.ts create mode 100644 node_modules/rx/ts/core/internal/priorityqueue.ts create mode 100644 node_modules/rx/ts/core/internal/util.ts create mode 100644 node_modules/rx/ts/core/joins/pattern.ts create mode 100644 node_modules/rx/ts/core/joins/plan.ts create mode 100644 node_modules/rx/ts/core/linq/connectableobservable.ts create mode 100644 node_modules/rx/ts/core/linq/groupedobservable.ts create mode 100644 node_modules/rx/ts/core/linq/observable/amb.ts create mode 100644 node_modules/rx/ts/core/linq/observable/ambproto.ts create mode 100644 node_modules/rx/ts/core/linq/observable/and.ts create mode 100644 node_modules/rx/ts/core/linq/observable/asobservable.ts create mode 100644 node_modules/rx/ts/core/linq/observable/average.ts create mode 100644 node_modules/rx/ts/core/linq/observable/buffer.ts create mode 100644 node_modules/rx/ts/core/linq/observable/bufferwithcount.ts create mode 100644 node_modules/rx/ts/core/linq/observable/bufferwithtime.ts create mode 100644 node_modules/rx/ts/core/linq/observable/bufferwithtimeorcount.ts create mode 100644 node_modules/rx/ts/core/linq/observable/case.ts create mode 100644 node_modules/rx/ts/core/linq/observable/catch.ts create mode 100644 node_modules/rx/ts/core/linq/observable/catchproto.ts create mode 100644 node_modules/rx/ts/core/linq/observable/combinelatest.ts create mode 100644 node_modules/rx/ts/core/linq/observable/combinelatestproto.ts create mode 100644 node_modules/rx/ts/core/linq/observable/concat.ts create mode 100644 node_modules/rx/ts/core/linq/observable/concatall.ts create mode 100644 node_modules/rx/ts/core/linq/observable/concatmap.ts create mode 100644 node_modules/rx/ts/core/linq/observable/concatmapobserver.ts create mode 100644 node_modules/rx/ts/core/linq/observable/concatproto.ts create mode 100644 node_modules/rx/ts/core/linq/observable/count.ts create mode 100644 node_modules/rx/ts/core/linq/observable/create.ts create mode 100644 node_modules/rx/ts/core/linq/observable/debounce.ts create mode 100644 node_modules/rx/ts/core/linq/observable/defaultifempty.ts create mode 100644 node_modules/rx/ts/core/linq/observable/defer.ts create mode 100644 node_modules/rx/ts/core/linq/observable/delay.ts create mode 100644 node_modules/rx/ts/core/linq/observable/delaysubscription.ts create mode 100644 node_modules/rx/ts/core/linq/observable/dematerialize.ts create mode 100644 node_modules/rx/ts/core/linq/observable/distinct.ts create mode 100644 node_modules/rx/ts/core/linq/observable/distinctuntilchanged.ts create mode 100644 node_modules/rx/ts/core/linq/observable/dowhile.ts create mode 100644 node_modules/rx/ts/core/linq/observable/elementat.ts create mode 100644 node_modules/rx/ts/core/linq/observable/empty.ts create mode 100644 node_modules/rx/ts/core/linq/observable/every.ts create mode 100644 node_modules/rx/ts/core/linq/observable/expand.ts create mode 100644 node_modules/rx/ts/core/linq/observable/filter.ts create mode 100644 node_modules/rx/ts/core/linq/observable/finally.ts create mode 100644 node_modules/rx/ts/core/linq/observable/find.ts create mode 100644 node_modules/rx/ts/core/linq/observable/findindex.ts create mode 100644 node_modules/rx/ts/core/linq/observable/first.ts create mode 100644 node_modules/rx/ts/core/linq/observable/flatmap.ts create mode 100644 node_modules/rx/ts/core/linq/observable/flatmapfirst.ts create mode 100644 node_modules/rx/ts/core/linq/observable/flatmaplatest.ts create mode 100644 node_modules/rx/ts/core/linq/observable/flatmapwithmaxconcurrent.ts create mode 100644 node_modules/rx/ts/core/linq/observable/for.ts create mode 100644 node_modules/rx/ts/core/linq/observable/forkjoin.ts create mode 100644 node_modules/rx/ts/core/linq/observable/forkjoinproto.ts create mode 100644 node_modules/rx/ts/core/linq/observable/from.ts create mode 100644 node_modules/rx/ts/core/linq/observable/fromarray.ts create mode 100644 node_modules/rx/ts/core/linq/observable/fromcallback.ts create mode 100644 node_modules/rx/ts/core/linq/observable/fromevent.ts create mode 100644 node_modules/rx/ts/core/linq/observable/fromeventpattern.ts create mode 100644 node_modules/rx/ts/core/linq/observable/fromnodecallback.ts create mode 100644 node_modules/rx/ts/core/linq/observable/frompromise.ts create mode 100644 node_modules/rx/ts/core/linq/observable/generate.ts create mode 100644 node_modules/rx/ts/core/linq/observable/generatewithabsolutetime.ts create mode 100644 node_modules/rx/ts/core/linq/observable/generatewithrelativetime.ts create mode 100644 node_modules/rx/ts/core/linq/observable/groupby.ts create mode 100644 node_modules/rx/ts/core/linq/observable/groupbyuntil.ts create mode 100644 node_modules/rx/ts/core/linq/observable/groupjoin.ts create mode 100644 node_modules/rx/ts/core/linq/observable/if.ts create mode 100644 node_modules/rx/ts/core/linq/observable/ignoreelements.ts create mode 100644 node_modules/rx/ts/core/linq/observable/includes.ts create mode 100644 node_modules/rx/ts/core/linq/observable/indexof.ts create mode 100644 node_modules/rx/ts/core/linq/observable/interval.ts create mode 100644 node_modules/rx/ts/core/linq/observable/isempty.ts create mode 100644 node_modules/rx/ts/core/linq/observable/join.ts create mode 100644 node_modules/rx/ts/core/linq/observable/jortsort.ts create mode 100644 node_modules/rx/ts/core/linq/observable/jortsortuntil.ts create mode 100644 node_modules/rx/ts/core/linq/observable/just.ts create mode 100644 node_modules/rx/ts/core/linq/observable/last.ts create mode 100644 node_modules/rx/ts/core/linq/observable/let.ts create mode 100644 node_modules/rx/ts/core/linq/observable/manyselect.ts create mode 100644 node_modules/rx/ts/core/linq/observable/map.ts create mode 100644 node_modules/rx/ts/core/linq/observable/materialize.ts create mode 100644 node_modules/rx/ts/core/linq/observable/max.ts create mode 100644 node_modules/rx/ts/core/linq/observable/maxby.ts create mode 100644 node_modules/rx/ts/core/linq/observable/merge.ts create mode 100644 node_modules/rx/ts/core/linq/observable/mergeall.ts create mode 100644 node_modules/rx/ts/core/linq/observable/mergeconcat.ts create mode 100644 node_modules/rx/ts/core/linq/observable/mergedelayerror.ts create mode 100644 node_modules/rx/ts/core/linq/observable/min.ts create mode 100644 node_modules/rx/ts/core/linq/observable/minby.ts create mode 100644 node_modules/rx/ts/core/linq/observable/multicast.ts create mode 100644 node_modules/rx/ts/core/linq/observable/never.ts create mode 100644 node_modules/rx/ts/core/linq/observable/observeon.ts create mode 100644 node_modules/rx/ts/core/linq/observable/of.ts create mode 100644 node_modules/rx/ts/core/linq/observable/ofarraychanges.ts create mode 100644 node_modules/rx/ts/core/linq/observable/ofobjectchanges.ts create mode 100644 node_modules/rx/ts/core/linq/observable/onerrorresumenext.ts create mode 100644 node_modules/rx/ts/core/linq/observable/onerrorresumenextproto.ts create mode 100644 node_modules/rx/ts/core/linq/observable/pairs.ts create mode 100644 node_modules/rx/ts/core/linq/observable/pairwise.ts create mode 100644 node_modules/rx/ts/core/linq/observable/partition.ts create mode 100644 node_modules/rx/ts/core/linq/observable/pipe.ts create mode 100644 node_modules/rx/ts/core/linq/observable/pluck.ts create mode 100644 node_modules/rx/ts/core/linq/observable/publish.ts create mode 100644 node_modules/rx/ts/core/linq/observable/publishlast.ts create mode 100644 node_modules/rx/ts/core/linq/observable/publishvalue.ts create mode 100644 node_modules/rx/ts/core/linq/observable/range.ts create mode 100644 node_modules/rx/ts/core/linq/observable/reduce.ts create mode 100644 node_modules/rx/ts/core/linq/observable/repeat.ts create mode 100644 node_modules/rx/ts/core/linq/observable/repeatproto.ts create mode 100644 node_modules/rx/ts/core/linq/observable/replay.ts create mode 100644 node_modules/rx/ts/core/linq/observable/retry.ts create mode 100644 node_modules/rx/ts/core/linq/observable/retrywhen.ts create mode 100644 node_modules/rx/ts/core/linq/observable/sample.ts create mode 100644 node_modules/rx/ts/core/linq/observable/scan.ts create mode 100644 node_modules/rx/ts/core/linq/observable/selectmanyobserver.ts create mode 100644 node_modules/rx/ts/core/linq/observable/sequenceequal.ts create mode 100644 node_modules/rx/ts/core/linq/observable/share.ts create mode 100644 node_modules/rx/ts/core/linq/observable/sharereplay.ts create mode 100644 node_modules/rx/ts/core/linq/observable/sharevalue.ts create mode 100644 node_modules/rx/ts/core/linq/observable/single.ts create mode 100644 node_modules/rx/ts/core/linq/observable/singleinstance.ts create mode 100644 node_modules/rx/ts/core/linq/observable/skip.ts create mode 100644 node_modules/rx/ts/core/linq/observable/skiplast.ts create mode 100644 node_modules/rx/ts/core/linq/observable/skiplastwithtime.ts create mode 100644 node_modules/rx/ts/core/linq/observable/skipuntil.ts create mode 100644 node_modules/rx/ts/core/linq/observable/skipuntilwithtime.ts create mode 100644 node_modules/rx/ts/core/linq/observable/skipwhile.ts create mode 100644 node_modules/rx/ts/core/linq/observable/skipwithtime.ts create mode 100644 node_modules/rx/ts/core/linq/observable/some.ts create mode 100644 node_modules/rx/ts/core/linq/observable/spawn.ts create mode 100644 node_modules/rx/ts/core/linq/observable/start.ts create mode 100644 node_modules/rx/ts/core/linq/observable/startasync.ts create mode 100644 node_modules/rx/ts/core/linq/observable/startwith.ts create mode 100644 node_modules/rx/ts/core/linq/observable/subscribeon.ts create mode 100644 node_modules/rx/ts/core/linq/observable/sum.ts create mode 100644 node_modules/rx/ts/core/linq/observable/switch.ts create mode 100644 node_modules/rx/ts/core/linq/observable/switchfirst.ts create mode 100644 node_modules/rx/ts/core/linq/observable/take.ts create mode 100644 node_modules/rx/ts/core/linq/observable/takelast.ts create mode 100644 node_modules/rx/ts/core/linq/observable/takelastbuffer.ts create mode 100644 node_modules/rx/ts/core/linq/observable/takelastbufferwithtime.ts create mode 100644 node_modules/rx/ts/core/linq/observable/takelastwithtime.ts create mode 100644 node_modules/rx/ts/core/linq/observable/takeuntil.ts create mode 100644 node_modules/rx/ts/core/linq/observable/takeuntilwithtime.ts create mode 100644 node_modules/rx/ts/core/linq/observable/takewhile.ts create mode 100644 node_modules/rx/ts/core/linq/observable/takewithtime.ts create mode 100644 node_modules/rx/ts/core/linq/observable/tap.ts create mode 100644 node_modules/rx/ts/core/linq/observable/thendo.ts create mode 100644 node_modules/rx/ts/core/linq/observable/throttle.ts create mode 100644 node_modules/rx/ts/core/linq/observable/throw.ts create mode 100644 node_modules/rx/ts/core/linq/observable/timeinterval.ts create mode 100644 node_modules/rx/ts/core/linq/observable/timeout.ts create mode 100644 node_modules/rx/ts/core/linq/observable/timer.ts create mode 100644 node_modules/rx/ts/core/linq/observable/timestamp.ts create mode 100644 node_modules/rx/ts/core/linq/observable/toarray.ts create mode 100644 node_modules/rx/ts/core/linq/observable/toasync.ts create mode 100644 node_modules/rx/ts/core/linq/observable/tomap.ts create mode 100644 node_modules/rx/ts/core/linq/observable/topromise.ts create mode 100644 node_modules/rx/ts/core/linq/observable/toset.ts create mode 100644 node_modules/rx/ts/core/linq/observable/transduce.ts create mode 100644 node_modules/rx/ts/core/linq/observable/using.ts create mode 100644 node_modules/rx/ts/core/linq/observable/when.ts create mode 100644 node_modules/rx/ts/core/linq/observable/while.ts create mode 100644 node_modules/rx/ts/core/linq/observable/window.ts create mode 100644 node_modules/rx/ts/core/linq/observable/windowwithcount.ts create mode 100644 node_modules/rx/ts/core/linq/observable/windowwithtime.ts create mode 100644 node_modules/rx/ts/core/linq/observable/windowwithtimeorcount.ts create mode 100644 node_modules/rx/ts/core/linq/observable/withlatestfrom.ts create mode 100644 node_modules/rx/ts/core/linq/observable/zip.ts create mode 100644 node_modules/rx/ts/core/linq/observable/zipiterable.ts create mode 100644 node_modules/rx/ts/core/notification.ts create mode 100644 node_modules/rx/ts/core/observable.ts create mode 100644 node_modules/rx/ts/core/observer-extras.ts create mode 100644 node_modules/rx/ts/core/observer-lite.ts create mode 100644 node_modules/rx/ts/core/observer.ts create mode 100644 node_modules/rx/ts/core/scheduledobserver.ts create mode 100644 node_modules/rx/ts/core/subjects/anonymoussubject.ts create mode 100644 node_modules/rx/ts/core/subjects/asyncsubject.ts create mode 100644 node_modules/rx/ts/core/subjects/behaviorsubject.ts create mode 100644 node_modules/rx/ts/core/subjects/replaysubject.ts create mode 100644 node_modules/rx/ts/core/subjects/subject.ts create mode 100644 node_modules/rx/ts/core/testing/mockdisposable.ts create mode 100644 node_modules/rx/ts/core/testing/mockobserver.ts create mode 100644 node_modules/rx/ts/core/testing/reactivetest.ts create mode 100644 node_modules/rx/ts/core/testing/recorded.ts create mode 100644 node_modules/rx/ts/core/testing/subscription.ts create mode 100644 node_modules/rx/ts/core/testing/testscheduler.ts create mode 100644 node_modules/rx/ts/es6-promise.es6.d.ts create mode 100644 node_modules/rx/ts/iterable.es6.d.ts create mode 100644 node_modules/rx/ts/rx.aggregates.d.ts create mode 100644 node_modules/rx/ts/rx.aggregates.es6.d.ts create mode 100644 node_modules/rx/ts/rx.all.d.ts create mode 100644 node_modules/rx/ts/rx.all.es6.d.ts create mode 100644 node_modules/rx/ts/rx.async.d.ts create mode 100644 node_modules/rx/ts/rx.async.es6.d.ts create mode 100644 node_modules/rx/ts/rx.backpressure.d.ts create mode 100644 node_modules/rx/ts/rx.backpressure.es6.d.ts create mode 100644 node_modules/rx/ts/rx.binding.d.ts create mode 100644 node_modules/rx/ts/rx.binding.es6.d.ts create mode 100644 node_modules/rx/ts/rx.coincidence.d.ts create mode 100644 node_modules/rx/ts/rx.coincidence.es6.d.ts create mode 100644 node_modules/rx/ts/rx.core.binding.d.ts create mode 100644 node_modules/rx/ts/rx.core.binding.es6.d.ts create mode 100644 node_modules/rx/ts/rx.core.d.ts create mode 100644 node_modules/rx/ts/rx.core.es6.d.ts create mode 100644 node_modules/rx/ts/rx.core.testing.d.ts create mode 100644 node_modules/rx/ts/rx.core.testing.es6.d.ts create mode 100644 node_modules/rx/ts/rx.d.ts create mode 100644 node_modules/rx/ts/rx.es6.d.ts create mode 100644 node_modules/rx/ts/rx.experimental.d.ts create mode 100644 node_modules/rx/ts/rx.experimental.es6.d.ts create mode 100644 node_modules/rx/ts/rx.joinpatterns.d.ts create mode 100644 node_modules/rx/ts/rx.joinpatterns.es6.d.ts create mode 100644 node_modules/rx/ts/rx.lite.d.ts create mode 100644 node_modules/rx/ts/rx.lite.es6.d.ts create mode 100644 node_modules/rx/ts/rx.lite.extras.d.ts create mode 100644 node_modules/rx/ts/rx.lite.extras.es6.d.ts create mode 100644 node_modules/rx/ts/rx.sorting.d.ts create mode 100644 node_modules/rx/ts/rx.sorting.es6.d.ts create mode 100644 node_modules/rx/ts/rx.testing.d.ts create mode 100644 node_modules/rx/ts/rx.testing.es6.d.ts create mode 100644 node_modules/rx/ts/rx.time.d.ts create mode 100644 node_modules/rx/ts/rx.time.es6.d.ts create mode 100644 node_modules/rx/ts/rx.virtualtime.d.ts create mode 100644 node_modules/rx/ts/rx.virtualtime.es6.d.ts create mode 100644 node_modules/rx/ts/tsconfig.json 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/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/modules/index.js create mode 100644 node_modules/tslib/modules/package.json create mode 100644 node_modules/tslib/package.json create mode 100644 node_modules/tslib/test/validateModuleExportsMatchCommonJS/index.js create mode 100644 node_modules/tslib/test/validateModuleExportsMatchCommonJS/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/universalify/LICENSE create mode 100644 node_modules/universalify/README.md create mode 100644 node_modules/universalify/index.js create mode 100644 node_modules/universalify/package.json create mode 100755 node_modules/wait-file/LICENSE.md create mode 100755 node_modules/wait-file/README.md create mode 100755 node_modules/wait-file/dist/index.d.ts create mode 100755 node_modules/wait-file/dist/index.js create mode 100755 node_modules/wait-file/dist/wait-file.cjs.development.js create mode 100755 node_modules/wait-file/dist/wait-file.cjs.development.js.map create mode 100755 node_modules/wait-file/dist/wait-file.cjs.production.min.js create mode 100755 node_modules/wait-file/dist/wait-file.cjs.production.min.js.map create mode 100755 node_modules/wait-file/dist/wait-file.esm.js create mode 100755 node_modules/wait-file/dist/wait-file.esm.js.map create mode 100755 node_modules/wait-file/package.json create mode 100644 node_modules/wait-on/.editorconfig create mode 100644 node_modules/wait-on/.eslintrc.js create mode 100644 node_modules/wait-on/.travis.yml create mode 100644 node_modules/wait-on/LICENSE create mode 100644 node_modules/wait-on/README.md create mode 100644 node_modules/wait-on/bin/usage.txt create mode 100755 node_modules/wait-on/bin/wait-on create mode 100644 node_modules/wait-on/exampleConfig.js create mode 100644 node_modules/wait-on/lib/wait-on.js create mode 100644 node_modules/wait-on/package.json diff --git a/main.js b/main.js index 3ae6a45..679ae34 100644 --- a/main.js +++ b/main.js @@ -1,20 +1,46 @@ -const fs = require('fs'); -const { execFileSync } = require('child_process'); -const tmp = require('tmp'); +async function main() { + const homedir = require('os').homedir(); + const fs = require('fs'); + const {execFileSync} = require('child_process'); + const tmp = require('tmp'); + const {waitFile} = require('wait-file'); -tmp.setGracefulCleanup(); + tmp.setGracefulCleanup(); -const tmpobj = tmp.fileSync({ - mode: 0o744, - prefix: 'helm-exec-', - postfix: '.sh', - discardDescriptor: true, -}); + const execShFile = tmp.fileSync({ + mode: 0o744, + prefix: 'helm-exec-', + postfix: '.sh', + discardDescriptor: true, + }); -fs.appendFile(tmpobj.name, process.env.INPUT_EXEC, function (err) { - if (err) throw err; + fs.mkdirSync(homedir + '/.kube', { + recursive: true, + }); + fs.appendFileSync( + homedir + '/.kube/config', + "\r\n\r\n" + process.env.INPUT_KUBECONFIG, + { + mode: 0o600, + } + ); - const result = execFileSync(tmpobj.name).toString(); - console.log(result); - console.log('::set-output name=helm_output::' + result.split('%').join('%25').split('\n').join('%0A').split('\r').join('%0D')); -}); + fs.appendFileSync(execShFile.name, process.env.INPUT_EXEC); + + await waitFile({ + resources: [ + homedir + '/.kube/config', + execShFile.name, + ], + }); + + try { + const result = execFileSync(execShFile.name).toString(); + console.log(result); + console.log('::set-output name=helm_output::' + result.split('%').join('%25').split('\n').join('%0A').split('\r').join('%0D')); + } catch (error) { + process.exit(1); + } +} + +main(); diff --git a/node_modules/.bin/wait-on b/node_modules/.bin/wait-on new file mode 120000 index 0000000..25dad9f --- /dev/null +++ b/node_modules/.bin/wait-on @@ -0,0 +1 @@ +../wait-on/bin/wait-on \ No newline at end of file diff --git a/node_modules/@hapi/address/.travis.yml b/node_modules/@hapi/address/.travis.yml new file mode 100644 index 0000000..a33db50 --- /dev/null +++ b/node_modules/@hapi/address/.travis.yml @@ -0,0 +1,17 @@ +language: node_js + +node_js: + - "8" + - "10" + - "12" + - "node" + +sudo: false + +install: + - "npm install" + +os: + - "linux" + - "osx" + - "windows" diff --git a/node_modules/@hapi/address/API.md b/node_modules/@hapi/address/API.md new file mode 100755 index 0000000..c5b9ab0 --- /dev/null +++ b/node_modules/@hapi/address/API.md @@ -0,0 +1,49 @@ +## Methods + +### `domain.analyze(domain, [options])` + +Analyzes a string to verify it is a valid domain name where: +- `domain` - the domain name string being verified. +- `options` - optional settings: + - `allowUnicode` - if `false`, Unicode characters are not allowd in domain names. Defaults to `true`. + - `minDomainSegments` - the minimum number of domain segments (e.g. `x.y.z` has 3 segments) required. Defaults to `2`. + - `tlds` - options to validate the top-level-domain segment (e.g. `com` in `example.com`). Can be set to one of: + - `false` - disable TLD validation. + - `true` - validate the TLD using the official list of [registered names](http://data.iana.org/TLD/tlds-alpha-by-domain.txt). This is the default setting. + - an object with one (and only one) of: + - `deny` - a `Set` with strings matching forbidden TLD values (all non-matching values are allowed). + - `allow` - a `Set` with strings matching the only allowed TLD values. Can also be set to `true` which defaults to the official list of [registered names](http://data.iana.org/TLD/tlds-alpha-by-domain.txt). + +If the `domain` is valid, no return value. If the `domain` is invalid, an object is returned with: +- `error` - a string containing the reason the domain is invalid. + +### `domain.isValid(domain, [options])` + +Validates a string to verify it is a valid domain name where: +- `domain` - the domain name string being verified. +- `options` - same options as [`domain.analyze()`](#domainanalyzedomain-options). + +### `email.analyze(email, [options])` + +Analyzes a string to verify it is a valid email address where: +- `email` - the email address string being verified. +- `options` - optional settings: + - `allowUnicode` - if `false`, Unicode characters are not allowd in the email address local and domain parts. Defaults to `true`. + - `ignoreLength` - if `true`, the standards email maximum length limit is ignored. Defaults to `true`. + - `minDomainSegments` - the minimum number of domain segments (e.g. `x.y.z` has 3 segments) required in the domain part. Defaults to `2`. + - `tlds` - options to validate the top-level-domain segment (e.g. `com` in `example.com`) of the domain part. Can be set to one of: + - `false` - disable TLD validation. + - `true` - validate the TLD using the official list of [registered names](http://data.iana.org/TLD/tlds-alpha-by-domain.txt). This is the default setting. + - an object with one (and only one) of: + - `deny` - a `Set` with strings matching forbidden TLD values (all non-matching values are allowed). + - `allow` - a `Set` with strings matching the only allowed TLD values. Can also be set to `true` which defaults to the official list of [registered names](http://data.iana.org/TLD/tlds-alpha-by-domain.txt). + +If the `email` is valid, no return value. If the `email` is invalid, an object is returned with: +- `error` - a string containing the reason the email is invalid. + + +### `email.isValid(email, [options])` + +Validates a string to verify it is a valid email address where: +- `email` - the email address string being verified. +- `options` - same options as [`email.analyze()`](#emailanalyzeemail-options). diff --git a/node_modules/@hapi/address/CHANGELOG.md b/node_modules/@hapi/address/CHANGELOG.md new file mode 100644 index 0000000..eefe1a1 --- /dev/null +++ b/node_modules/@hapi/address/CHANGELOG.md @@ -0,0 +1,3 @@ +Breaking changes are documented using GitHub issues, see [issues labeled "release notes"](https://github.com/hapijs/address/issues?q=is%3Aissue+label%3A%22release+notes%22). + +If you want changes of a specific minor or patch release, you can browse the [GitHub milestones](https://github.com/hapijs/address/milestones?state=closed&direction=asc&sort=due_date). diff --git a/node_modules/@hapi/address/LICENSE.md b/node_modules/@hapi/address/LICENSE.md new file mode 100644 index 0000000..d8a7c56 --- /dev/null +++ b/node_modules/@hapi/address/LICENSE.md @@ -0,0 +1,9 @@ +Copyright (c) 2019, Project 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. diff --git a/node_modules/@hapi/address/README.md b/node_modules/@hapi/address/README.md new file mode 100755 index 0000000..9c19b97 --- /dev/null +++ b/node_modules/@hapi/address/README.md @@ -0,0 +1,16 @@ + + +# @hapi/address + +#### Validate email address and domain. + +**address** is part of the **hapi** ecosystem and was designed to work seamlessly with the [hapi web framework](https://hapi.dev) and its other components (but works great on its own or with other frameworks). If you are using a different web framework and find this module useful, check out [hapi](https://hapi.dev) � they work even better together. + +### Visit the [hapi.dev](https://hapi.dev) Developer Portal for tutorials, documentation, and support + +## Useful resources + +- [Documentation and API](https://hapi.dev/family/address/) +- [Versions status](https://hapi.dev/resources/status/#address) +- [Project policies](https://hapi.dev/policies/) +- [Free and commercial support options](https://hapi.dev/support/) \ No newline at end of file diff --git a/node_modules/@hapi/address/bench/test.js b/node_modules/@hapi/address/bench/test.js new file mode 100755 index 0000000..b800030 --- /dev/null +++ b/node_modules/@hapi/address/bench/test.js @@ -0,0 +1,238 @@ +'use strict'; + +const Bench = require('bench'); +const Address = require('../'); +const Isemail = require('isemail'); + + +const tests = [ + ['', false], + ['\r', false], + ['test', false], + ['@', false], + ['test@', false], + ['test@io', false], + ['test@io', true, { minDomainSegments: 1 }], + ['@io', false], + ['@iana.org', false], + ['test@iana.org', true], + ['test@nominet.org.uk', true], + ['test@about.museum', true], + ['a@iana.org', true], + ['êjness@iana.org', true], + ['ñoñó1234@iana.org', true], + ['ñoñó1234@something.com', true], + ['伊昭傑@郵件.商務', true], + ['\ud801\udc37\ud852\udf62@iana.org', true], + ['test.test@iana.org', true], + ['.test@iana.org', false], + ['test.@iana.org', false], + ['test..iana.org', false], + ['test_exa-mple.com', false], + ['!#$%&`*+/=?^`{|}~@iana.org', true], + ['test\\@test@iana.org', false], + ['123@iana.org', true], + ['test@123.com', true], + ['test@iana.123', false], + ['test@255.255.255.255', false], + ['abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiklm@iana.org', true], + ['abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiklmn@iana.org', false], + ['\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06@iana.org', false], + ['test@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiklm', false], + ['test@\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06.org', true], + ['test@abcdefghijklmnopqrstuvwxyzabcdefghijklmno\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06.org', false], + ['test@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiklm.com', false], + ['test@mason-dixon.com', true], + ['test@-iana.org', false], + ['test@iana-.com', false], + ['test@.iana.org', false], + ['test@iana.org.', false], + ['test@iana..com', false], + ['abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiklm@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmno', false], + ['abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiklm@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06', false], + ['abcdef@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdef.hijklmnopqrstuv', false], + ['abcdef@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghi.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd\ud83d\ude06', false], + ['abcdef@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghi.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\ud83d\ude06', false], + ['a@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijkl.hijk', false], + ['a@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijkl.\ud83d\ude06', false], + ['\"\r', false], + ['\"test\"@iana.org', false], + ['\"\"@iana.org', false], + ['\"\"\"@iana.org', false], + ['\"\\a\"@iana.org', false], + ['\"\\\"\"@iana.org', false], + ['\"\\\"@iana.org', false], + ['\"\\\\\"@iana.org', false], + ['test\"@iana.org', false], + ['\"test@iana.org', false], + ['\"test\"test@iana.org', false], + ['test\"text\"@iana.org', false], + ['\"test\"\"test\"@iana.org', false], + ['\"test\".\"test\"@iana.org', false], + ['\"test\\ test\"@iana.org', false], + ['\"test\".test@iana.org', false], + ['\"test\u0000\"@iana.org', false], + ['\"test\\\u0000\"@iana.org', false], + ['\"test\r\n test\"@iana.org', false], + ['\"abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghj\"@iana.org', false], + ['\"abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefg\\h\"@iana.org', false], + ['test@[255.255.255.255]', false], + ['test@a[255.255.255.255]', false], + ['test@[255.255.255]', false], + ['test@[255.255.255.255.255]', false], + ['test@[255.255.255.256]', false], + ['test@[1111:2222:3333:4444:5555:6666:7777:8888]', false], + ['test@[IPv6:1111:2222:3333:4444:5555:6666:7777]', false], + ['test@[IPv6:1111:2222:3333:4444:5555:6666:7777:8888]', false], + ['test@[IPv6:1111:2222:3333:4444:5555:6666:7777:8888:9999]', false], + ['test@[IPv6:1111:2222:3333:4444:5555:6666:7777:888G]', false], + ['test@[IPv6:1111:2222:3333:4444:5555:6666::8888]', false], + ['test@[IPv6:1111:2222:3333:4444:5555::8888]', false], + ['test@[IPv6:1111:2222:3333:4444:5555:6666::7777:8888]', false], + ['test@[IPv6::3333:4444:5555:6666:7777:8888]', false], + ['test@[IPv6:::3333:4444:5555:6666:7777:8888]', false], + ['test@[IPv6:1111::4444:5555::8888]', false], + ['test@[IPv6:::]', false], + ['test@[IPv6:1111:2222:3333:4444:5555:255.255.255.255]', false], + ['test@[IPv6:1111:2222:3333:4444:5555:6666:255.255.255.255]', false], + ['test@[IPv6:1111:2222:3333:4444:5555:6666:7777:255.255.255.255]', false], + ['test@[IPv6:1111:2222:3333:4444::255.255.255.255]', false], + ['test@[IPv6:1111:2222:3333:4444:5555:6666::255.255.255.255]', false], + ['test@[IPv6:1111:2222:3333:4444:::255.255.255.255]', false], + ['test@[IPv6::255.255.255.255]', false], + ['test@[255.255.255.255].local', false], + ['test@local.[255.255.255.255]', false], + ['test@local.[255.255.255.255].local', false], + ['test@local.(comment)[255.255.255.255].local', false], + ['test@local. [255.255.255.255].local', false], + ['test@local.[255.255.255.255](comment).local', false], + ['test@local.[255.255.255.255] .local', false], + [' test @iana.org', false], + ['test@ iana .com', false], + ['test . test@iana.org', false], + ['\r\n test@iana.org', false], + ['\r\n \r\n test@iana.org', false], + ['(\r', false], + ['(comment)test@iana.org', false], + ['((comment)test@iana.org', false], + ['(comment(comment))test@iana.org', false], + ['test@(comment)iana.org', false], + ['test(comment)@iana.org', false], + ['test(comment)test@iana.org', false], + ['test@(comment)[255.255.255.255]', false], + ['(comment)abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiklm@iana.org', false], + ['test@(comment)abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.com', false], + ['(comment)test@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijk.abcdefghijklmnopqrst', false], + ['test@iana.org\n', false], + ['xn--test@iana.org', true], + ['test@iana.org-', false], + ['\"test@iana.org', false], + ['(test@iana.org', false], + ['test@(iana.org', false], + ['test@[1.2.3.4', false], + ['\"test\\\"@iana.org', false], + ['(comment\\)test@iana.org', false], + ['test@iana.org(comment\\)', false], + ['test@iana.org(comment\\', false], + ['test@[RFC-5322-domain-literal]', false], + ['test@[RFC-5322-郵件ñó-domain-literal]', false], + ['test@[RFC-5322]-domain-literal]', false], + ['test@[RFC-5322].domain-literal]', false], + ['test@[RFC-5322-[domain-literal]', false], + ['test@[€', false], + ['test@[\u0007]', false], + ['test@[RFC-5322-\\\u0007-domain-literal]', false], + ['test@[RFC-5322-\\\t-domain-literal]', false], + ['test@[RFC-5322-\\]-domain-literal]', false], + ['test@[RFC-5322-\\郵-no-domain-literal]', false], + ['test@[RFC-5322--domain-literal]', false], + ['test@[RFC-5322-domain-literal\\]', false], + ['test@[RFC-5322-domain-literal\\', false], + ['test@[RFC 5322 domain literal]', false], + ['test@[RFC-5322-domain-literal] (comment)', false], + ['@iana.org', false], + ['test@.org', false], + ['\"\"@iana.org', false], + ['\"€\"@iana.org', false], + ['\"\\\"@iana.org', false], + ['()test@iana.org', false], + ['(€)test@iana.org', false], + ['test@iana.org\r', false], + ['\rtest@iana.org', false], + ['\"\rtest\"@iana.org', false], + ['(\r)test@iana.org', false], + ['test@iana.org(\r)', false], + ['test@.org', false], + ['\ntest@iana.org', false], + ['\"\n\"@iana.org', false], + ['\"\\\n\"@iana.org', false], + ['(\n)test@iana.org', false], + ['\u0007@iana.org', false], + ['test@\u0007.org', false], + ['\"\u0007\"@iana.org', false], + ['\"\\\u0007\"@iana.org', false], + ['(\u0007)test@iana.org', false], + ['\r\ntest@iana.org', false], + ['\r\n \r\ntest@iana.org', false], + [' \r\ntest@iana.org', false], + [' \r\n test@iana.org', false], + [' \r\n \r\ntest@iana.org', false], + [' \r\n\r\ntest@iana.org', false], + [' \r\n\r\n test@iana.org', false], + ['test@iana.org\r\n ', false], + ['test@iana.org\r\n \r\n ', false], + ['test@iana.org\r\n', false], + ['test@iana.org \r', false], + ['test@iana.org\r\n \r\n', false], + ['test@iana.org \r\n', false], + ['test@iana.org \r\n ', false], + ['test@iana.org \r\n \r\n', false], + ['test@iana.org \r\n\r\n', false], + ['test@iana.org \r\n\r\n ', false], + ['test@iana. org', false], + ['test@[\r', false], + ['test@[\r\n', false], + [' test@iana.org', false], + ['test@iana.org ', false], + ['test@[IPv6:1::2:]', false], + ['\"test\\\u0094\"@iana.org', false], + ['test@iana/icann.org', false], + ['test@iana!icann.org', false], + ['test@iana?icann.org', false], + ['test@iana^icann.org', false], + ['test@iana{icann}.org', false], + ['test.(comment)test@iana.org', false], + ['test@iana.(comment)org', false], + ['test@iana(comment)iana.org', false], + ['(comment\r\n comment)test@iana.org', false], + ['test@org', true, { minDomainSegments: 1 }], + ['test\ud800@invalid', false], + ['\"\ud800\"@invalid', false], + ['\"\\\ud800\"@invalid', false], + ['(\ud800)thing@invalid', false], + ['\"\\\ud800\"@invalid', false], + ['test@\ud800\udfffñoñó郵件ñoñó郵件.郵件ñoñó郵件ñoñó郵件.ñoñó郵件ñoñó郵件.ñoñó郵件ñoñó郵件.ñoñó郵件ñoñó郵件.ñoñó郵件ñoñó郵件.ñoñó郵件ñoñó郵件.noñó郵件.商務', true], + ['test@\ud800\udfffñoñó郵件ñoñó郵件.郵件ñoñó郵件ñoñó郵件.ñoñó郵件ñoñó郵件.ñoñó郵件ñoñó郵件.ñoñó郵件ñoñó郵件.ñoñó郵件ñoñó郵件.ñoñó郵件ñoñó郵件.noñó郵件ñoñó郵.商務', false], + ['test@\ud800\udfffñoñó郵件ñoñó郵件.郵件ñoñó郵件ñoñó郵件.ñoñó郵件ñoñó郵件ñoñó郵件.ñoñó郵件ñoñó郵件.ñoñó郵件ñoñó郵件.ñoñó郵件ñoñó郵件.ñoñó郵件ñoñó郵件.ñoñó郵件ñoñó郵件.oñó郵件ñoñó郵件ñoñó郵件.商務', false], + ['test@ñoñoñó郵件\ud83d\ude06ñoñ.oñó郵件\uc138ñoñ.oñó郵件\u0644\u4eec\u010dñoñoñó郵件\u05dcño.ñoñó郵件\u092f\u672cñoñoñó郵件\uc138añoñ.oñó郵件\ud83d\ude06bc\uc138郵\ud83d\ude06ño.ñoñó郵件ñoñoñó郵件\ud83d\ude06ñoñoñó郵件\uc138ñoñ.oñó郵件\u0644\u4eecñoñoñó.郵件\ud83d\ude06ñoñoñó郵件郵\uc138ñoñoñó郵件\u0644\u4eecñoñoñó郵件.\ud83d\ude06ñoñoñó郵件郵\uc138\u0644\u4eec.郵件\ud83d\ude06ñoñoñó郵.件郵\uc138\u4eec\ud83d\ude06ñoñoñó件郵\uc138ñoñoñó郵件', false], + ['test@ñoñó郵件ñoñó郵件ñoñó郵件ñoñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件.商務', false], + ['\ud83d\ude06ñoñó郵件ñoñó郵件ñoñó\ud83d\ude06郵件ñoñoñó郵@\ud83d\ude06郵件ñoñó郵件ñoñó.\ud83d\ude06郵件ñoñó郵件ñoñó.\ud83d\ude06郵件ñoñó郵件ñoñó.郵件ñoñó郵件ñoñó\ud83d\ude06.郵件ñoñó郵件ñoñó.郵件ñoñó郵件.ñoñó郵件ñoñó.郵件ñoñó郵件.\ud83d\ude06郵件ñoñó郵件ñoñó.\ud83d\ude06郵件ñoñó郵件ñoñó.\ud83d\ude06商務.郵件ñoñó郵件ñoñó郵件.\ud83d\ude06商務.\ud83d\ude06商務.\ud83d\ude06商務', false] +]; + +exports.compare = { + address: function () { + + for (const test of tests) { + Address.email.isValid(test[0]); + } + }, + isemail: function () { + + for (const test of tests) { + Isemail.validate(test[0]); + } + } +}; + + +Bench.runMain(); diff --git a/node_modules/@hapi/address/lib/domain.js b/node_modules/@hapi/address/lib/domain.js new file mode 100755 index 0000000..5737bd6 --- /dev/null +++ b/node_modules/@hapi/address/lib/domain.js @@ -0,0 +1,103 @@ +'use strict'; + +const Url = require('url'); + + +const internals = { + minDomainSegments: 2, + nonAsciiRx: /[^\x00-\x7f]/, + domainControlRx: /[\x00-\x20@\:\/]/, // Control + space + separators + tldSegmentRx: /^[a-zA-Z](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?$/, + domainSegmentRx: /^[a-zA-Z0-9](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?$/, + URL: Url.URL || URL // $lab:coverage:ignore$ +}; + + +exports.analyze = function (domain, options = {}) { + + if (typeof domain !== 'string') { + throw new Error('Invalid input: domain must be a string'); + } + + if (!domain) { + return { error: 'Domain must be a non-empty string' }; + } + + if (domain.length > 256) { + return { error: 'Domain too long' }; + } + + const ascii = !internals.nonAsciiRx.test(domain); + if (!ascii) { + if (options.allowUnicode === false) { // Defaults to true + return { error: 'Domain contains forbidden Unicode characters' }; + } + + domain = domain.normalize('NFC'); + } + + if (internals.domainControlRx.test(domain)) { + return { error: 'Domain contains invalid character' }; + } + + domain = internals.punycode(domain); + + // https://tools.ietf.org/html/rfc1035 section 2.3.1 + + const minDomainSegments = options.minDomainSegments || internals.minDomainSegments; + + const segments = domain.split('.'); + if (segments.length < minDomainSegments) { + return { error: 'Domain lacks the minimum required number of segments' }; + } + + const tlds = options.tlds; + if (tlds) { + const tld = segments[segments.length - 1].toLowerCase(); + if (tlds.deny && tlds.deny.has(tld) || + tlds.allow && !tlds.allow.has(tld)) { + + return { error: 'Domain uses forbidden TLD' }; + } + } + + for (let i = 0; i < segments.length; ++i) { + const segment = segments[i]; + + if (!segment.length) { + return { error: 'Domain contains empty dot-separated segment' }; + } + + if (segment.length > 63) { + return { error: 'Domain contains dot-separated segment that is too long' }; + } + + if (i < segments.length - 1) { + if (!internals.domainSegmentRx.test(segment)) { + return { error: 'Domain contains invalid character' }; + } + } + else { + if (!internals.tldSegmentRx.test(segment)) { + return { error: 'Domain contains invalid tld character' }; + } + } + } +}; + + +exports.isValid = function (domain, options) { + + return !exports.analyze(domain, options); +}; + + +internals.punycode = function (domain) { + + try { + return new internals.URL(`http://${domain}`).host; + } + catch (err) { + return domain; + } +}; diff --git a/node_modules/@hapi/address/lib/email.js b/node_modules/@hapi/address/lib/email.js new file mode 100755 index 0000000..0fad084 --- /dev/null +++ b/node_modules/@hapi/address/lib/email.js @@ -0,0 +1,169 @@ +'use strict'; + +const Util = require('util'); + +const Domain = require('./domain'); + + +const internals = { + nonAsciiRx: /[^\x00-\x7f]/, + encoder: new (Util.TextEncoder || TextEncoder)() // $lab:coverage:ignore$ +}; + + +exports.analyze = function (email, options) { + + return internals.email(email, options); +}; + + +exports.isValid = function (email, options) { + + return !internals.email(email, options); +}; + + +internals.email = function (email, options = {}) { + + if (typeof email !== 'string') { + throw new Error('Invalid input: email must be a string'); + } + + if (!email) { + return { error: 'Address must be a non-empty string' }; + } + + // Unicode + + const ascii = !internals.nonAsciiRx.test(email); + if (!ascii) { + if (options.allowUnicode === false) { // Defaults to true + return { error: 'Address contains forbidden Unicode characters' }; + } + + email = email.normalize('NFC'); + } + + // Basic structure + + const parts = email.split('@'); + if (parts.length !== 2) { + return { error: parts.length > 2 ? 'Address cannot contain more than one @ character' : 'Address must contain one @ character' }; + } + + const [local, domain] = parts; + + if (!local) { + return { error: 'Address local part cannot be empty' }; + } + + if (!options.ignoreLength) { + if (email.length > 254) { // http://tools.ietf.org/html/rfc5321#section-4.5.3.1.3 + return { error: 'Address too long' }; + } + + if (internals.encoder.encode(local).length > 64) { // http://tools.ietf.org/html/rfc5321#section-4.5.3.1.1 + return { error: 'Address local part too long' }; + } + } + + // Validate parts + + return internals.local(local, ascii) || Domain.analyze(domain, options); +}; + + +internals.local = function (local, ascii) { + + const segments = local.split('.'); + for (const segment of segments) { + if (!segment.length) { + return { error: 'Address local part contains empty dot-separated segment' }; + } + + if (ascii) { + if (!internals.atextRx.test(segment)) { + return { error: 'Address local part contains invalid character' }; + } + + continue; + } + + for (const char of segment) { + if (internals.atextRx.test(char)) { + continue; + } + + const binary = internals.binary(char); + if (!internals.atomRx.test(binary)) { + return { error: 'Address local part contains invalid character' }; + } + } + } +}; + + +internals.binary = function (char) { + + return Array.from(internals.encoder.encode(char)).map((v) => String.fromCharCode(v)).join(''); +}; + + +/* + From RFC 5321: + + Mailbox = Local-part "@" ( Domain / address-literal ) + + Local-part = Dot-string / Quoted-string + Dot-string = Atom *("." Atom) + Atom = 1*atext + atext = ALPHA / DIGIT / "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" / "-" / "/" / "=" / "?" / "^" / "_" / "`" / "{" / "|" / "}" / "~" + + Domain = sub-domain *("." sub-domain) + sub-domain = Let-dig [Ldh-str] + Let-dig = ALPHA / DIGIT + Ldh-str = *( ALPHA / DIGIT / "-" ) Let-dig + + ALPHA = %x41-5A / %x61-7A ; a-z, A-Z + DIGIT = %x30-39 ; 0-9 + + From RFC 6531: + + sub-domain =/ U-label + atext =/ UTF8-non-ascii + + UTF8-non-ascii = UTF8-2 / UTF8-3 / UTF8-4 + + UTF8-2 = %xC2-DF UTF8-tail + UTF8-3 = %xE0 %xA0-BF UTF8-tail / + %xE1-EC 2( UTF8-tail ) / + %xED %x80-9F UTF8-tail / + %xEE-EF 2( UTF8-tail ) + UTF8-4 = %xF0 %x90-BF 2( UTF8-tail ) / + %xF1-F3 3( UTF8-tail ) / + %xF4 %x80-8F 2( UTF8-tail ) + + UTF8-tail = %x80-BF + + Note: The following are not supported: + + RFC 5321: address-literal, Quoted-string + RFC 5322: obs-*, CFWS +*/ + + +internals.atextRx = /^[\w!#\$%&'\*\+\-/=\?\^`\{\|\}~]+$/; // _ included in \w + + +internals.atomRx = new RegExp([ + + // %xC2-DF UTF8-tail + '(?:[\\xc2-\\xdf][\\x80-\\xbf])', + + // %xE0 %xA0-BF UTF8-tail %xE1-EC 2( UTF8-tail ) %xED %x80-9F UTF8-tail %xEE-EF 2( UTF8-tail ) + '(?:\\xe0[\\xa0-\\xbf][\\x80-\\xbf])|(?:[\\xe1-\\xec][\\x80-\\xbf]{2})|(?:\\xed[\\x80-\\x9f][\\x80-\\xbf])|(?:[\\xee-\\xef][\\x80-\\xbf]{2})', + + // %xF0 %x90-BF 2( UTF8-tail ) %xF1-F3 3( UTF8-tail ) %xF4 %x80-8F 2( UTF8-tail ) + '(?:\\xf0[\\x90-\\xbf][\\x80-\\xbf]{2})|(?:[\\xf1-\\xf3][\\x80-\\xbf]{3})|(?:\\xf4[\\x80-\\x8f][\\x80-\\xbf]{2})' + +].join('|')); diff --git a/node_modules/@hapi/address/lib/index.js b/node_modules/@hapi/address/lib/index.js new file mode 100755 index 0000000..1d3e6dc --- /dev/null +++ b/node_modules/@hapi/address/lib/index.js @@ -0,0 +1,84 @@ +'use strict'; + +const Domain = require('./domain'); +const Email = require('./email'); +const Tlds = require('./tlds'); + + +const internals = { + defaultTlds: { allow: Tlds, deny: null } +}; + + +module.exports = { + domain: { + analyze(domain, options) { + + options = internals.options(options); + return Domain.analyze(domain, options); + }, + + isValid(domain, options) { + + options = internals.options(options); + return Domain.isValid(domain, options); + } + }, + email: { + analyze(email, options) { + + options = internals.options(options); + return Email.analyze(email, options); + }, + + isValid(email, options) { + + options = internals.options(options); + return Email.isValid(email, options); + } + } +}; + + +internals.options = function (options) { + + if (!options) { + return { tlds: internals.defaultTlds }; + } + + if (options.tlds === false) { // Defaults to true + return options; + } + + if (!options.tlds || + options.tlds === true) { + + return Object.assign({}, options, { tlds: internals.defaultTlds }); + } + + if (typeof options.tlds !== 'object') { + throw new Error('Invalid options: tlds must be a boolean or an object'); + } + + if (options.tlds.deny) { + if (options.tlds.deny instanceof Set === false) { + throw new Error('Invalid options: tlds.deny must be a Set object'); + } + + if (options.tlds.allow) { + throw new Error('Invalid options: cannot specify both tlds.allow and tlds.deny lists'); + } + + return options; + } + + if (options.tlds.allow === true) { + return Object.assign({}, options, { tlds: internals.defaultTlds }); + } + + if (options.tlds.allow instanceof Set === false) { + throw new Error('Invalid options: tlds.allow must be a Set object or true'); + } + + return options; +}; diff --git a/node_modules/@hapi/address/lib/tlds.js b/node_modules/@hapi/address/lib/tlds.js new file mode 100755 index 0000000..77a00e3 --- /dev/null +++ b/node_modules/@hapi/address/lib/tlds.js @@ -0,0 +1,1542 @@ +'use strict'; + +const internals = {}; + + +// http://data.iana.org/TLD/tlds-alpha-by-domain.txt +// # Version 2019091902, Last Updated Fri Sep 20 07: 07: 02 2019 UTC + + +internals.tlds = [ + 'AAA', + 'AARP', + 'ABARTH', + 'ABB', + 'ABBOTT', + 'ABBVIE', + 'ABC', + 'ABLE', + 'ABOGADO', + 'ABUDHABI', + 'AC', + 'ACADEMY', + 'ACCENTURE', + 'ACCOUNTANT', + 'ACCOUNTANTS', + 'ACO', + 'ACTOR', + 'AD', + 'ADAC', + 'ADS', + 'ADULT', + 'AE', + 'AEG', + 'AERO', + 'AETNA', + 'AF', + 'AFAMILYCOMPANY', + 'AFL', + 'AFRICA', + 'AG', + 'AGAKHAN', + 'AGENCY', + 'AI', + 'AIG', + 'AIGO', + 'AIRBUS', + 'AIRFORCE', + 'AIRTEL', + 'AKDN', + 'AL', + 'ALFAROMEO', + 'ALIBABA', + 'ALIPAY', + 'ALLFINANZ', + 'ALLSTATE', + 'ALLY', + 'ALSACE', + 'ALSTOM', + 'AM', + 'AMERICANEXPRESS', + 'AMERICANFAMILY', + 'AMEX', + 'AMFAM', + 'AMICA', + 'AMSTERDAM', + 'ANALYTICS', + 'ANDROID', + 'ANQUAN', + 'ANZ', + 'AO', + 'AOL', + 'APARTMENTS', + 'APP', + 'APPLE', + 'AQ', + 'AQUARELLE', + 'AR', + 'ARAB', + 'ARAMCO', + 'ARCHI', + 'ARMY', + 'ARPA', + 'ART', + 'ARTE', + 'AS', + 'ASDA', + 'ASIA', + 'ASSOCIATES', + 'AT', + 'ATHLETA', + 'ATTORNEY', + 'AU', + 'AUCTION', + 'AUDI', + 'AUDIBLE', + 'AUDIO', + 'AUSPOST', + 'AUTHOR', + 'AUTO', + 'AUTOS', + 'AVIANCA', + 'AW', + 'AWS', + 'AX', + 'AXA', + 'AZ', + 'AZURE', + 'BA', + 'BABY', + 'BAIDU', + 'BANAMEX', + 'BANANAREPUBLIC', + 'BAND', + 'BANK', + 'BAR', + 'BARCELONA', + 'BARCLAYCARD', + 'BARCLAYS', + 'BAREFOOT', + 'BARGAINS', + 'BASEBALL', + 'BASKETBALL', + 'BAUHAUS', + 'BAYERN', + 'BB', + 'BBC', + 'BBT', + 'BBVA', + 'BCG', + 'BCN', + 'BD', + 'BE', + 'BEATS', + 'BEAUTY', + 'BEER', + 'BENTLEY', + 'BERLIN', + 'BEST', + 'BESTBUY', + 'BET', + 'BF', + 'BG', + 'BH', + 'BHARTI', + 'BI', + 'BIBLE', + 'BID', + 'BIKE', + 'BING', + 'BINGO', + 'BIO', + 'BIZ', + 'BJ', + 'BLACK', + 'BLACKFRIDAY', + 'BLOCKBUSTER', + 'BLOG', + 'BLOOMBERG', + 'BLUE', + 'BM', + 'BMS', + 'BMW', + 'BN', + 'BNPPARIBAS', + 'BO', + 'BOATS', + 'BOEHRINGER', + 'BOFA', + 'BOM', + 'BOND', + 'BOO', + 'BOOK', + 'BOOKING', + 'BOSCH', + 'BOSTIK', + 'BOSTON', + 'BOT', + 'BOUTIQUE', + 'BOX', + 'BR', + 'BRADESCO', + 'BRIDGESTONE', + 'BROADWAY', + 'BROKER', + 'BROTHER', + 'BRUSSELS', + 'BS', + 'BT', + 'BUDAPEST', + 'BUGATTI', + 'BUILD', + 'BUILDERS', + 'BUSINESS', + 'BUY', + 'BUZZ', + 'BV', + 'BW', + 'BY', + 'BZ', + 'BZH', + 'CA', + 'CAB', + 'CAFE', + 'CAL', + 'CALL', + 'CALVINKLEIN', + 'CAM', + 'CAMERA', + 'CAMP', + 'CANCERRESEARCH', + 'CANON', + 'CAPETOWN', + 'CAPITAL', + 'CAPITALONE', + 'CAR', + 'CARAVAN', + 'CARDS', + 'CARE', + 'CAREER', + 'CAREERS', + 'CARS', + 'CARTIER', + 'CASA', + 'CASE', + 'CASEIH', + 'CASH', + 'CASINO', + 'CAT', + 'CATERING', + 'CATHOLIC', + 'CBA', + 'CBN', + 'CBRE', + 'CBS', + 'CC', + 'CD', + 'CEB', + 'CENTER', + 'CEO', + 'CERN', + 'CF', + 'CFA', + 'CFD', + 'CG', + 'CH', + 'CHANEL', + 'CHANNEL', + 'CHARITY', + 'CHASE', + 'CHAT', + 'CHEAP', + 'CHINTAI', + 'CHRISTMAS', + 'CHROME', + 'CHRYSLER', + 'CHURCH', + 'CI', + 'CIPRIANI', + 'CIRCLE', + 'CISCO', + 'CITADEL', + 'CITI', + 'CITIC', + 'CITY', + 'CITYEATS', + 'CK', + 'CL', + 'CLAIMS', + 'CLEANING', + 'CLICK', + 'CLINIC', + 'CLINIQUE', + 'CLOTHING', + 'CLOUD', + 'CLUB', + 'CLUBMED', + 'CM', + 'CN', + 'CO', + 'COACH', + 'CODES', + 'COFFEE', + 'COLLEGE', + 'COLOGNE', + 'COM', + 'COMCAST', + 'COMMBANK', + 'COMMUNITY', + 'COMPANY', + 'COMPARE', + 'COMPUTER', + 'COMSEC', + 'CONDOS', + 'CONSTRUCTION', + 'CONSULTING', + 'CONTACT', + 'CONTRACTORS', + 'COOKING', + 'COOKINGCHANNEL', + 'COOL', + 'COOP', + 'CORSICA', + 'COUNTRY', + 'COUPON', + 'COUPONS', + 'COURSES', + 'CR', + 'CREDIT', + 'CREDITCARD', + 'CREDITUNION', + 'CRICKET', + 'CROWN', + 'CRS', + 'CRUISE', + 'CRUISES', + 'CSC', + 'CU', + 'CUISINELLA', + 'CV', + 'CW', + 'CX', + 'CY', + 'CYMRU', + 'CYOU', + 'CZ', + 'DABUR', + 'DAD', + 'DANCE', + 'DATA', + 'DATE', + 'DATING', + 'DATSUN', + 'DAY', + 'DCLK', + 'DDS', + 'DE', + 'DEAL', + 'DEALER', + 'DEALS', + 'DEGREE', + 'DELIVERY', + 'DELL', + 'DELOITTE', + 'DELTA', + 'DEMOCRAT', + 'DENTAL', + 'DENTIST', + 'DESI', + 'DESIGN', + 'DEV', + 'DHL', + 'DIAMONDS', + 'DIET', + 'DIGITAL', + 'DIRECT', + 'DIRECTORY', + 'DISCOUNT', + 'DISCOVER', + 'DISH', + 'DIY', + 'DJ', + 'DK', + 'DM', + 'DNP', + 'DO', + 'DOCS', + 'DOCTOR', + 'DODGE', + 'DOG', + 'DOMAINS', + 'DOT', + 'DOWNLOAD', + 'DRIVE', + 'DTV', + 'DUBAI', + 'DUCK', + 'DUNLOP', + 'DUPONT', + 'DURBAN', + 'DVAG', + 'DVR', + 'DZ', + 'EARTH', + 'EAT', + 'EC', + 'ECO', + 'EDEKA', + 'EDU', + 'EDUCATION', + 'EE', + 'EG', + 'EMAIL', + 'EMERCK', + 'ENERGY', + 'ENGINEER', + 'ENGINEERING', + 'ENTERPRISES', + 'EPSON', + 'EQUIPMENT', + 'ER', + 'ERICSSON', + 'ERNI', + 'ES', + 'ESQ', + 'ESTATE', + 'ESURANCE', + 'ET', + 'ETISALAT', + 'EU', + 'EUROVISION', + 'EUS', + 'EVENTS', + 'EVERBANK', + 'EXCHANGE', + 'EXPERT', + 'EXPOSED', + 'EXPRESS', + 'EXTRASPACE', + 'FAGE', + 'FAIL', + 'FAIRWINDS', + 'FAITH', + 'FAMILY', + 'FAN', + 'FANS', + 'FARM', + 'FARMERS', + 'FASHION', + 'FAST', + 'FEDEX', + 'FEEDBACK', + 'FERRARI', + 'FERRERO', + 'FI', + 'FIAT', + 'FIDELITY', + 'FIDO', + 'FILM', + 'FINAL', + 'FINANCE', + 'FINANCIAL', + 'FIRE', + 'FIRESTONE', + 'FIRMDALE', + 'FISH', + 'FISHING', + 'FIT', + 'FITNESS', + 'FJ', + 'FK', + 'FLICKR', + 'FLIGHTS', + 'FLIR', + 'FLORIST', + 'FLOWERS', + 'FLY', + 'FM', + 'FO', + 'FOO', + 'FOOD', + 'FOODNETWORK', + 'FOOTBALL', + 'FORD', + 'FOREX', + 'FORSALE', + 'FORUM', + 'FOUNDATION', + 'FOX', + 'FR', + 'FREE', + 'FRESENIUS', + 'FRL', + 'FROGANS', + 'FRONTDOOR', + 'FRONTIER', + 'FTR', + 'FUJITSU', + 'FUJIXEROX', + 'FUN', + 'FUND', + 'FURNITURE', + 'FUTBOL', + 'FYI', + 'GA', + 'GAL', + 'GALLERY', + 'GALLO', + 'GALLUP', + 'GAME', + 'GAMES', + 'GAP', + 'GARDEN', + 'GAY', + 'GB', + 'GBIZ', + 'GD', + 'GDN', + 'GE', + 'GEA', + 'GENT', + 'GENTING', + 'GEORGE', + 'GF', + 'GG', + 'GGEE', + 'GH', + 'GI', + 'GIFT', + 'GIFTS', + 'GIVES', + 'GIVING', + 'GL', + 'GLADE', + 'GLASS', + 'GLE', + 'GLOBAL', + 'GLOBO', + 'GM', + 'GMAIL', + 'GMBH', + 'GMO', + 'GMX', + 'GN', + 'GODADDY', + 'GOLD', + 'GOLDPOINT', + 'GOLF', + 'GOO', + 'GOODYEAR', + 'GOOG', + 'GOOGLE', + 'GOP', + 'GOT', + 'GOV', + 'GP', + 'GQ', + 'GR', + 'GRAINGER', + 'GRAPHICS', + 'GRATIS', + 'GREEN', + 'GRIPE', + 'GROCERY', + 'GROUP', + 'GS', + 'GT', + 'GU', + 'GUARDIAN', + 'GUCCI', + 'GUGE', + 'GUIDE', + 'GUITARS', + 'GURU', + 'GW', + 'GY', + 'HAIR', + 'HAMBURG', + 'HANGOUT', + 'HAUS', + 'HBO', + 'HDFC', + 'HDFCBANK', + 'HEALTH', + 'HEALTHCARE', + 'HELP', + 'HELSINKI', + 'HERE', + 'HERMES', + 'HGTV', + 'HIPHOP', + 'HISAMITSU', + 'HITACHI', + 'HIV', + 'HK', + 'HKT', + 'HM', + 'HN', + 'HOCKEY', + 'HOLDINGS', + 'HOLIDAY', + 'HOMEDEPOT', + 'HOMEGOODS', + 'HOMES', + 'HOMESENSE', + 'HONDA', + 'HORSE', + 'HOSPITAL', + 'HOST', + 'HOSTING', + 'HOT', + 'HOTELES', + 'HOTELS', + 'HOTMAIL', + 'HOUSE', + 'HOW', + 'HR', + 'HSBC', + 'HT', + 'HU', + 'HUGHES', + 'HYATT', + 'HYUNDAI', + 'IBM', + 'ICBC', + 'ICE', + 'ICU', + 'ID', + 'IE', + 'IEEE', + 'IFM', + 'IKANO', + 'IL', + 'IM', + 'IMAMAT', + 'IMDB', + 'IMMO', + 'IMMOBILIEN', + 'IN', + 'INC', + 'INDUSTRIES', + 'INFINITI', + 'INFO', + 'ING', + 'INK', + 'INSTITUTE', + 'INSURANCE', + 'INSURE', + 'INT', + 'INTEL', + 'INTERNATIONAL', + 'INTUIT', + 'INVESTMENTS', + 'IO', + 'IPIRANGA', + 'IQ', + 'IR', + 'IRISH', + 'IS', + 'ISMAILI', + 'IST', + 'ISTANBUL', + 'IT', + 'ITAU', + 'ITV', + 'IVECO', + 'JAGUAR', + 'JAVA', + 'JCB', + 'JCP', + 'JE', + 'JEEP', + 'JETZT', + 'JEWELRY', + 'JIO', + 'JLL', + 'JM', + 'JMP', + 'JNJ', + 'JO', + 'JOBS', + 'JOBURG', + 'JOT', + 'JOY', + 'JP', + 'JPMORGAN', + 'JPRS', + 'JUEGOS', + 'JUNIPER', + 'KAUFEN', + 'KDDI', + 'KE', + 'KERRYHOTELS', + 'KERRYLOGISTICS', + 'KERRYPROPERTIES', + 'KFH', + 'KG', + 'KH', + 'KI', + 'KIA', + 'KIM', + 'KINDER', + 'KINDLE', + 'KITCHEN', + 'KIWI', + 'KM', + 'KN', + 'KOELN', + 'KOMATSU', + 'KOSHER', + 'KP', + 'KPMG', + 'KPN', + 'KR', + 'KRD', + 'KRED', + 'KUOKGROUP', + 'KW', + 'KY', + 'KYOTO', + 'KZ', + 'LA', + 'LACAIXA', + 'LADBROKES', + 'LAMBORGHINI', + 'LAMER', + 'LANCASTER', + 'LANCIA', + 'LANCOME', + 'LAND', + 'LANDROVER', + 'LANXESS', + 'LASALLE', + 'LAT', + 'LATINO', + 'LATROBE', + 'LAW', + 'LAWYER', + 'LB', + 'LC', + 'LDS', + 'LEASE', + 'LECLERC', + 'LEFRAK', + 'LEGAL', + 'LEGO', + 'LEXUS', + 'LGBT', + 'LI', + 'LIAISON', + 'LIDL', + 'LIFE', + 'LIFEINSURANCE', + 'LIFESTYLE', + 'LIGHTING', + 'LIKE', + 'LILLY', + 'LIMITED', + 'LIMO', + 'LINCOLN', + 'LINDE', + 'LINK', + 'LIPSY', + 'LIVE', + 'LIVING', + 'LIXIL', + 'LK', + 'LLC', + 'LOAN', + 'LOANS', + 'LOCKER', + 'LOCUS', + 'LOFT', + 'LOL', + 'LONDON', + 'LOTTE', + 'LOTTO', + 'LOVE', + 'LPL', + 'LPLFINANCIAL', + 'LR', + 'LS', + 'LT', + 'LTD', + 'LTDA', + 'LU', + 'LUNDBECK', + 'LUPIN', + 'LUXE', + 'LUXURY', + 'LV', + 'LY', + 'MA', + 'MACYS', + 'MADRID', + 'MAIF', + 'MAISON', + 'MAKEUP', + 'MAN', + 'MANAGEMENT', + 'MANGO', + 'MAP', + 'MARKET', + 'MARKETING', + 'MARKETS', + 'MARRIOTT', + 'MARSHALLS', + 'MASERATI', + 'MATTEL', + 'MBA', + 'MC', + 'MCKINSEY', + 'MD', + 'ME', + 'MED', + 'MEDIA', + 'MEET', + 'MELBOURNE', + 'MEME', + 'MEMORIAL', + 'MEN', + 'MENU', + 'MERCKMSD', + 'METLIFE', + 'MG', + 'MH', + 'MIAMI', + 'MICROSOFT', + 'MIL', + 'MINI', + 'MINT', + 'MIT', + 'MITSUBISHI', + 'MK', + 'ML', + 'MLB', + 'MLS', + 'MM', + 'MMA', + 'MN', + 'MO', + 'MOBI', + 'MOBILE', + 'MODA', + 'MOE', + 'MOI', + 'MOM', + 'MONASH', + 'MONEY', + 'MONSTER', + 'MOPAR', + 'MORMON', + 'MORTGAGE', + 'MOSCOW', + 'MOTO', + 'MOTORCYCLES', + 'MOV', + 'MOVIE', + 'MOVISTAR', + 'MP', + 'MQ', + 'MR', + 'MS', + 'MSD', + 'MT', + 'MTN', + 'MTR', + 'MU', + 'MUSEUM', + 'MUTUAL', + 'MV', + 'MW', + 'MX', + 'MY', + 'MZ', + 'NA', + 'NAB', + 'NADEX', + 'NAGOYA', + 'NAME', + 'NATIONWIDE', + 'NATURA', + 'NAVY', + 'NBA', + 'NC', + 'NE', + 'NEC', + 'NET', + 'NETBANK', + 'NETFLIX', + 'NETWORK', + 'NEUSTAR', + 'NEW', + 'NEWHOLLAND', + 'NEWS', + 'NEXT', + 'NEXTDIRECT', + 'NEXUS', + 'NF', + 'NFL', + 'NG', + 'NGO', + 'NHK', + 'NI', + 'NICO', + 'NIKE', + 'NIKON', + 'NINJA', + 'NISSAN', + 'NISSAY', + 'NL', + 'NO', + 'NOKIA', + 'NORTHWESTERNMUTUAL', + 'NORTON', + 'NOW', + 'NOWRUZ', + 'NOWTV', + 'NP', + 'NR', + 'NRA', + 'NRW', + 'NTT', + 'NU', + 'NYC', + 'NZ', + 'OBI', + 'OBSERVER', + 'OFF', + 'OFFICE', + 'OKINAWA', + 'OLAYAN', + 'OLAYANGROUP', + 'OLDNAVY', + 'OLLO', + 'OM', + 'OMEGA', + 'ONE', + 'ONG', + 'ONL', + 'ONLINE', + 'ONYOURSIDE', + 'OOO', + 'OPEN', + 'ORACLE', + 'ORANGE', + 'ORG', + 'ORGANIC', + 'ORIGINS', + 'OSAKA', + 'OTSUKA', + 'OTT', + 'OVH', + 'PA', + 'PAGE', + 'PANASONIC', + 'PARIS', + 'PARS', + 'PARTNERS', + 'PARTS', + 'PARTY', + 'PASSAGENS', + 'PAY', + 'PCCW', + 'PE', + 'PET', + 'PF', + 'PFIZER', + 'PG', + 'PH', + 'PHARMACY', + 'PHD', + 'PHILIPS', + 'PHONE', + 'PHOTO', + 'PHOTOGRAPHY', + 'PHOTOS', + 'PHYSIO', + 'PIAGET', + 'PICS', + 'PICTET', + 'PICTURES', + 'PID', + 'PIN', + 'PING', + 'PINK', + 'PIONEER', + 'PIZZA', + 'PK', + 'PL', + 'PLACE', + 'PLAY', + 'PLAYSTATION', + 'PLUMBING', + 'PLUS', + 'PM', + 'PN', + 'PNC', + 'POHL', + 'POKER', + 'POLITIE', + 'PORN', + 'POST', + 'PR', + 'PRAMERICA', + 'PRAXI', + 'PRESS', + 'PRIME', + 'PRO', + 'PROD', + 'PRODUCTIONS', + 'PROF', + 'PROGRESSIVE', + 'PROMO', + 'PROPERTIES', + 'PROPERTY', + 'PROTECTION', + 'PRU', + 'PRUDENTIAL', + 'PS', + 'PT', + 'PUB', + 'PW', + 'PWC', + 'PY', + 'QA', + 'QPON', + 'QUEBEC', + 'QUEST', + 'QVC', + 'RACING', + 'RADIO', + 'RAID', + 'RE', + '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', + 'RO', + 'ROCHER', + 'ROCKS', + 'RODEO', + 'ROGERS', + 'ROOM', + 'RS', + 'RSVP', + 'RU', + 'RUGBY', + 'RUHR', + 'RUN', + 'RW', + 'RWE', + 'RYUKYU', + 'SA', + 'SAARLAND', + 'SAFE', + 'SAFETY', + 'SAKURA', + 'SALE', + 'SALON', + 'SAMSCLUB', + 'SAMSUNG', + 'SANDVIK', + 'SANDVIKCOROMANT', + 'SANOFI', + 'SAP', + 'SARL', + 'SAS', + 'SAVE', + 'SAXO', + 'SB', + 'SBI', + 'SBS', + 'SC', + 'SCA', + 'SCB', + 'SCHAEFFLER', + 'SCHMIDT', + 'SCHOLARSHIPS', + 'SCHOOL', + 'SCHULE', + 'SCHWARZ', + 'SCIENCE', + 'SCJOHNSON', + 'SCOR', + 'SCOT', + 'SD', + 'SE', + 'SEARCH', + 'SEAT', + 'SECURE', + 'SECURITY', + 'SEEK', + 'SELECT', + 'SENER', + 'SERVICES', + 'SES', + 'SEVEN', + 'SEW', + 'SEX', + 'SEXY', + 'SFR', + 'SG', + 'SH', + 'SHANGRILA', + 'SHARP', + 'SHAW', + 'SHELL', + 'SHIA', + 'SHIKSHA', + 'SHOES', + 'SHOP', + 'SHOPPING', + 'SHOUJI', + 'SHOW', + 'SHOWTIME', + 'SHRIRAM', + 'SI', + 'SILK', + 'SINA', + 'SINGLES', + 'SITE', + 'SJ', + 'SK', + 'SKI', + 'SKIN', + 'SKY', + 'SKYPE', + 'SL', + 'SLING', + 'SM', + 'SMART', + 'SMILE', + 'SN', + 'SNCF', + 'SO', + 'SOCCER', + 'SOCIAL', + 'SOFTBANK', + 'SOFTWARE', + 'SOHU', + 'SOLAR', + 'SOLUTIONS', + 'SONG', + 'SONY', + 'SOY', + 'SPACE', + 'SPORT', + 'SPOT', + 'SPREADBETTING', + 'SR', + 'SRL', + 'SRT', + 'SS', + 'ST', + 'STADA', + 'STAPLES', + 'STAR', + 'STATEBANK', + 'STATEFARM', + 'STC', + 'STCGROUP', + 'STOCKHOLM', + 'STORAGE', + 'STORE', + 'STREAM', + 'STUDIO', + 'STUDY', + 'STYLE', + 'SU', + 'SUCKS', + 'SUPPLIES', + 'SUPPLY', + 'SUPPORT', + 'SURF', + 'SURGERY', + 'SUZUKI', + 'SV', + 'SWATCH', + 'SWIFTCOVER', + 'SWISS', + 'SX', + 'SY', + 'SYDNEY', + 'SYMANTEC', + 'SYSTEMS', + 'SZ', + 'TAB', + 'TAIPEI', + 'TALK', + 'TAOBAO', + 'TARGET', + 'TATAMOTORS', + 'TATAR', + 'TATTOO', + 'TAX', + 'TAXI', + 'TC', + 'TCI', + 'TD', + 'TDK', + 'TEAM', + 'TECH', + 'TECHNOLOGY', + 'TEL', + 'TELEFONICA', + 'TEMASEK', + 'TENNIS', + 'TEVA', + 'TF', + 'TG', + 'TH', + 'THD', + 'THEATER', + 'THEATRE', + 'TIAA', + 'TICKETS', + 'TIENDA', + 'TIFFANY', + 'TIPS', + 'TIRES', + 'TIROL', + 'TJ', + 'TJMAXX', + 'TJX', + 'TK', + 'TKMAXX', + 'TL', + 'TM', + 'TMALL', + 'TN', + 'TO', + 'TODAY', + 'TOKYO', + 'TOOLS', + 'TOP', + 'TORAY', + 'TOSHIBA', + 'TOTAL', + 'TOURS', + 'TOWN', + 'TOYOTA', + 'TOYS', + 'TR', + 'TRADE', + 'TRADING', + 'TRAINING', + 'TRAVEL', + 'TRAVELCHANNEL', + 'TRAVELERS', + 'TRAVELERSINSURANCE', + 'TRUST', + 'TRV', + 'TT', + 'TUBE', + 'TUI', + 'TUNES', + 'TUSHU', + 'TV', + 'TVS', + 'TW', + 'TZ', + 'UA', + 'UBANK', + 'UBS', + 'UCONNECT', + 'UG', + 'UK', + 'UNICOM', + 'UNIVERSITY', + 'UNO', + 'UOL', + 'UPS', + 'US', + 'UY', + 'UZ', + 'VA', + 'VACATIONS', + 'VANA', + 'VANGUARD', + 'VC', + 'VE', + 'VEGAS', + 'VENTURES', + 'VERISIGN', + 'VERSICHERUNG', + 'VET', + 'VG', + 'VI', + 'VIAJES', + 'VIDEO', + 'VIG', + 'VIKING', + 'VILLAS', + 'VIN', + 'VIP', + 'VIRGIN', + 'VISA', + 'VISION', + 'VISTAPRINT', + 'VIVA', + 'VIVO', + 'VLAANDEREN', + 'VN', + 'VODKA', + 'VOLKSWAGEN', + 'VOLVO', + 'VOTE', + 'VOTING', + 'VOTO', + 'VOYAGE', + 'VU', + 'VUELOS', + 'WALES', + 'WALMART', + 'WALTER', + 'WANG', + 'WANGGOU', + 'WARMAN', + 'WATCH', + 'WATCHES', + 'WEATHER', + 'WEATHERCHANNEL', + 'WEBCAM', + 'WEBER', + 'WEBSITE', + 'WED', + 'WEDDING', + 'WEIBO', + 'WEIR', + 'WF', + 'WHOSWHO', + 'WIEN', + 'WIKI', + 'WILLIAMHILL', + 'WIN', + 'WINDOWS', + 'WINE', + 'WINNERS', + 'WME', + 'WOLTERSKLUWER', + 'WOODSIDE', + 'WORK', + 'WORKS', + 'WORLD', + 'WOW', + 'WS', + 'WTC', + 'WTF', + 'XBOX', + 'XEROX', + 'XFINITY', + 'XIHUAN', + 'XIN', + 'XN--11B4C3D', + 'XN--1CK2E1B', + 'XN--1QQW23A', + 'XN--2SCRJ9C', + 'XN--30RR7Y', + 'XN--3BST00M', + 'XN--3DS443G', + 'XN--3E0B707E', + 'XN--3HCRJ9C', + 'XN--3OQ18VL8PN36A', + 'XN--3PXU8K', + 'XN--42C2D9A', + 'XN--45BR5CYL', + 'XN--45BRJ9C', + 'XN--45Q11C', + 'XN--4GBRIM', + 'XN--54B7FTA0CC', + 'XN--55QW42G', + 'XN--55QX5D', + 'XN--5SU34J936BGSG', + 'XN--5TZM5G', + 'XN--6FRZ82G', + 'XN--6QQ986B3XL', + 'XN--80ADXHKS', + 'XN--80AO21A', + 'XN--80AQECDR1A', + 'XN--80ASEHDB', + 'XN--80ASWG', + 'XN--8Y0A063A', + 'XN--90A3AC', + 'XN--90AE', + 'XN--90AIS', + 'XN--9DBQ2A', + 'XN--9ET52U', + 'XN--9KRT00A', + 'XN--B4W605FERD', + 'XN--BCK1B9A5DRE4C', + 'XN--C1AVG', + 'XN--C2BR7G', + 'XN--CCK2B3B', + 'XN--CG4BKI', + 'XN--CLCHC0EA0B2G2A9GCD', + 'XN--CZR694B', + 'XN--CZRS0T', + 'XN--CZRU2D', + 'XN--D1ACJ3B', + 'XN--D1ALF', + 'XN--E1A4C', + 'XN--ECKVDTC9D', + 'XN--EFVY88H', + 'XN--ESTV75G', + 'XN--FCT429K', + 'XN--FHBEI', + 'XN--FIQ228C5HS', + 'XN--FIQ64B', + 'XN--FIQS8S', + 'XN--FIQZ9S', + 'XN--FJQ720A', + 'XN--FLW351E', + 'XN--FPCRJ9C3D', + 'XN--FZC2C9E2C', + 'XN--FZYS8D69UVGM', + 'XN--G2XX48C', + 'XN--GCKR3F0F', + 'XN--GECRJ9C', + 'XN--GK3AT1E', + 'XN--H2BREG3EVE', + 'XN--H2BRJ9C', + 'XN--H2BRJ9C8C', + 'XN--HXT814E', + 'XN--I1B6B1A6A2E', + 'XN--IMR513N', + 'XN--IO0A7I', + 'XN--J1AEF', + 'XN--J1AMH', + 'XN--J6W193G', + 'XN--JLQ61U9W7B', + 'XN--JVR189M', + 'XN--KCRX77D1X4A', + 'XN--KPRW13D', + 'XN--KPRY57D', + 'XN--KPU716F', + 'XN--KPUT3I', + 'XN--L1ACC', + 'XN--LGBBAT1AD8J', + 'XN--MGB9AWBF', + 'XN--MGBA3A3EJT', + 'XN--MGBA3A4F16A', + 'XN--MGBA7C0BBN0A', + 'XN--MGBAAKC7DVF', + 'XN--MGBAAM7A8H', + 'XN--MGBAB2BD', + 'XN--MGBAH1A3HJKRD', + 'XN--MGBAI9AZGQP6J', + 'XN--MGBAYH7GPA', + 'XN--MGBBH1A', + 'XN--MGBBH1A71E', + 'XN--MGBC0A9AZCG', + 'XN--MGBCA7DZDO', + 'XN--MGBERP4A5D4AR', + 'XN--MGBGU82A', + 'XN--MGBI4ECEXP', + 'XN--MGBPL2FH', + 'XN--MGBT3DHD', + 'XN--MGBTX2B', + 'XN--MGBX4CD0AB', + 'XN--MIX891F', + 'XN--MK1BU44C', + 'XN--MXTQ1M', + 'XN--NGBC5AZD', + 'XN--NGBE9E0A', + 'XN--NGBRX', + 'XN--NODE', + 'XN--NQV7F', + 'XN--NQV7FS00EMA', + 'XN--NYQY26A', + 'XN--O3CW4H', + 'XN--OGBPF8FL', + 'XN--OTU796D', + 'XN--P1ACF', + 'XN--P1AI', + 'XN--PBT977C', + 'XN--PGBS0DH', + 'XN--PSSY2U', + 'XN--Q9JYB4C', + 'XN--QCKA1PMC', + 'XN--QXA6A', + 'XN--QXAM', + 'XN--RHQV96G', + 'XN--ROVU88B', + 'XN--RVC1E0AM3E', + 'XN--S9BRJ9C', + 'XN--SES554G', + 'XN--T60B56A', + 'XN--TCKWE', + 'XN--TIQ49XQYJ', + 'XN--UNUP4Y', + 'XN--VERMGENSBERATER-CTB', + 'XN--VERMGENSBERATUNG-PWB', + 'XN--VHQUV', + 'XN--VUQ861B', + 'XN--W4R85EL8FHU5DNRA', + 'XN--W4RS40L', + 'XN--WGBH1C', + 'XN--WGBL6A', + 'XN--XHQ521B', + 'XN--XKC2AL3HYE2A', + 'XN--XKC2DL3A5EE0H', + 'XN--Y9A3AQ', + 'XN--YFRO4I67O', + 'XN--YGBI2AMMX', + 'XN--ZFR164B', + 'XXX', + 'XYZ', + 'YACHTS', + 'YAHOO', + 'YAMAXUN', + 'YANDEX', + 'YE', + 'YODOBASHI', + 'YOGA', + 'YOKOHAMA', + 'YOU', + 'YOUTUBE', + 'YT', + 'YUN', + 'ZA', + 'ZAPPOS', + 'ZARA', + 'ZERO', + 'ZIP', + 'ZM', + 'ZONE', + 'ZUERICH', + 'ZW' +]; + + +// Keep as upper-case to make updating from source easier + +module.exports = new Set(internals.tlds.map((tld) => tld.toLowerCase())); diff --git a/node_modules/@hapi/address/package.json b/node_modules/@hapi/address/package.json new file mode 100644 index 0000000..a23c637 --- /dev/null +++ b/node_modules/@hapi/address/package.json @@ -0,0 +1,56 @@ +{ + "_from": "@hapi/address@2.x.x", + "_id": "@hapi/address@2.1.4", + "_inBundle": false, + "_integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==", + "_location": "/@hapi/address", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "@hapi/address@2.x.x", + "name": "@hapi/address", + "escapedName": "@hapi%2faddress", + "scope": "@hapi", + "rawSpec": "2.x.x", + "saveSpec": null, + "fetchSpec": "2.x.x" + }, + "_requiredBy": [ + "/@hapi/joi" + ], + "_resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", + "_shasum": "5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5", + "_spec": "@hapi/address@2.x.x", + "_where": "/home/wyrihaximus/Projects/WyriHaximus/github-action-helm3/node_modules/@hapi/joi", + "bugs": { + "url": "https://github.com/hapijs/address/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": "Moved to 'npm install @sideway/address'", + "description": "Email address and domain validation", + "devDependencies": { + "@hapi/code": "6.x.x", + "@hapi/lab": "20.x.x" + }, + "homepage": "https://github.com/hapijs/address#readme", + "keywords": [ + "email", + "domain", + "address", + "validation" + ], + "license": "BSD-3-Clause", + "main": "lib/index.js", + "name": "@hapi/address", + "repository": { + "type": "git", + "url": "git://github.com/hapijs/address.git" + }, + "scripts": { + "test": "lab -a @hapi/code -t 100 -L", + "test-cov-html": "lab -a @hapi/code -t 100 -L -r html -o coverage.html" + }, + "version": "2.1.4" +} diff --git a/node_modules/@hapi/address/test/index.js b/node_modules/@hapi/address/test/index.js new file mode 100755 index 0000000..96bace9 --- /dev/null +++ b/node_modules/@hapi/address/test/index.js @@ -0,0 +1,451 @@ +'use strict'; + +const Punycode = require('punycode'); + +const Code = require('@hapi/code'); +const Address = require('..'); +const Lab = require('@hapi/lab'); + + +const internals = {}; + + +const { describe, it } = exports.lab = Lab.script(); +const expect = Code.expect; + + +describe('email', () => { + + it('available as direct require', () => { + + expect(require('../lib/email').isValid('test@example.com')).to.be.true(); + }); + + describe('analyze()', () => { + + it('identifies error', () => { + + const tests = [ + ['', 'Address must be a non-empty string'], + ['êjness@iana.org', 'Address contains forbidden Unicode characters', { allowUnicode: false }], + ['test@test@test', 'Address cannot contain more than one @ character'], + ['test', 'Address must contain one @ character'], + ['@example.com', 'Address local part cannot be empty'], + ['test@', 'Domain must be a non-empty string'], + ['1234567890@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz.com', 'Address too long'], + ['1234567890123456789012345678901234567890123456789012345678901234567890@example.com', 'Address local part too long'], + ['x..y@example.com', 'Address local part contains empty dot-separated segment'], + ['x:y@example.com', 'Address local part contains invalid character'], + ['ê:y@example.com', 'Address local part contains invalid character'], + ['test@com', 'Domain lacks the minimum required number of segments'], + ['test@x.no-such-tld', 'Domain uses forbidden TLD'], + ['test@example..com', 'Domain contains empty dot-separated segment'], + ['test@1234567890123456789012345678901234567890123456789012345678901234567890.com', 'Domain contains dot-separated segment that is too long'], + ['test@example+.com', 'Domain contains invalid character', { tlds: false }], + ['test@example.com_', 'Domain contains invalid tld character', { tlds: false }] + ]; + + for (let i = 0; i < tests.length; ++i) { + const email = tests[i]; + const output = Address.email.analyze(email[0], email[2]); + const result = email[1]; + + if (!output || + output.error !== result) { + + console.log(i, email[0]); + } + + expect(output.error).to.equal(result); + } + }); + + it('validates options', () => { + + const tests = [ + ['test@example.com', 'Invalid options: tlds must be a boolean or an object', { tlds: 1 }], + ['test@example.com', 'Invalid options: tlds.allow must be a Set object or true', { tlds: { allow: ['test'] } }], + ['test@example.com', 'Invalid options: tlds.deny must be a Set object', { tlds: { deny: ['test'] } }], + ['test@example.com', 'Invalid options: cannot specify both tlds.allow and tlds.deny lists', { tlds: { allow: new Set(), deny: new Set() } }], + [1, 'Invalid input: email must be a string'] + ]; + + for (let i = 0; i < tests.length; ++i) { + const email = tests[i]; + expect(() => Address.email.analyze(email[0], email[2])).to.throw(email[1]); + } + }); + + describe('validated TLD', () => { + + it('applies built-in list', () => { + + expect(Address.email.analyze('test@example.com')).to.not.exist(); + expect(Address.email.analyze('test@example.com', { tlds: true })).to.not.exist(); + expect(Address.email.analyze('test@example.com', { tlds: { allow: true } })).to.not.exist(); + }); + + it('ignores built-in list', () => { + + expect(Address.email.analyze('test@example.invalid-top', { tlds: false })).to.not.exist(); + }); + + it('denies listed tls', () => { + + expect(Address.email.analyze('test@example.com', { tlds: { deny: new Set(['test']) } })).to.not.exist(); + expect(Address.email.analyze('test@example.com', { tlds: { deny: new Set(['com']) } })).to.equal({ error: 'Domain uses forbidden TLD' }); + }); + }); + }); + + describe('isValid()', () => { + + it('validates email', () => { + + // Tests adapted from https://github.com/skeggse/isemail + // Copyright (c) 2008-2019, Eli Skeggs, Dominic Sayers, GlobeSherpa + + const tests = [ + ['\r', false], + ['test', false], + ['@', false], + ['test@', false], + ['test@io', false], + ['test@io', true, { minDomainSegments: 1 }], + ['@io', false], + ['@iana.org', false], + ['test@iana.org', true], + ['test@nominet.org.uk', true], + ['test@about.museum', true], + ['a@iana.org', true], + ['êjness@iana.org', true], + ['ñoñó1234@iana.org', true], + ['ñoñó1234@something.com', true], + ['伊昭傑@郵件.商務', true, { tlds: { allow: new Set([Punycode.toASCII('商務')]) } }], + ['\ud801\udc37\ud852\udf62@iana.org', true], + ['test.test@iana.org', true], + ['.test@iana.org', false], + ['test.@iana.org', false], + ['test..iana.org', false], + ['test_exa-mple.com', false], + ['!#$%&`*+/=?^`{|}~@iana.org', true], + ['test\\@test@iana.org', false], + ['123@iana.org', true], + ['test@123.com', true], + ['test@iana.123', false], + ['test@255.255.255.255', false], + ['abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiklm@iana.org', true], + ['abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiklmn@iana.org', false], + ['\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06@iana.org', false], + ['test@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiklm', false], + ['test@\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06.org', true], + ['test@abcdefghijklmnopqrstuvwxyzabcdefghijklmno\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06.org', false], + ['test@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiklm.com', false], + ['test@mason-dixon.com', true], + ['test@-iana.org', false], + ['test@iana-.com', false], + ['test@.iana.org', false], + ['test@iana.org.', false], + ['test@iana..com', false], + ['abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiklm@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmno', false], + ['abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiklm@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.\ud83d\ude06\ud83d\ude06\ud83d\ude06\ud83d\ude06', false], + ['abcdef@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdef.hijklmnopqrstuv', false], + ['abcdef@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghi.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd\ud83d\ude06', false], + ['abcdef@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghi.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\ud83d\ude06', false], + ['a@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijkl.hijk', false], + ['a@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijkl.\ud83d\ude06', false], + ['\"\r', false], + ['\"test\"@iana.org', false], + ['\"\"@iana.org', false], + ['\"\"\"@iana.org', false], + ['\"\\a\"@iana.org', false], + ['\"\\\"\"@iana.org', false], + ['\"\\\"@iana.org', false], + ['\"\\\\\"@iana.org', false], + ['test\"@iana.org', false], + ['\"test@iana.org', false], + ['\"test\"test@iana.org', false], + ['test\"text\"@iana.org', false], + ['\"test\"\"test\"@iana.org', false], + ['\"test\".\"test\"@iana.org', false], + ['\"test\\ test\"@iana.org', false], + ['\"test\".test@iana.org', false], + ['\"test\u0000\"@iana.org', false], + ['\"test\\\u0000\"@iana.org', false], + ['\"test\r\n test\"@iana.org', false], + ['\"abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghj\"@iana.org', false], + ['\"abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefg\\h\"@iana.org', false], + ['test@[255.255.255.255]', false], + ['test@a[255.255.255.255]', false], + ['test@[255.255.255]', false], + ['test@[255.255.255.255.255]', false], + ['test@[255.255.255.256]', false], + ['test@[1111:2222:3333:4444:5555:6666:7777:8888]', false], + ['test@[IPv6:1111:2222:3333:4444:5555:6666:7777]', false], + ['test@[IPv6:1111:2222:3333:4444:5555:6666:7777:8888]', false], + ['test@[IPv6:1111:2222:3333:4444:5555:6666:7777:8888:9999]', false], + ['test@[IPv6:1111:2222:3333:4444:5555:6666:7777:888G]', false], + ['test@[IPv6:1111:2222:3333:4444:5555:6666::8888]', false], + ['test@[IPv6:1111:2222:3333:4444:5555::8888]', false], + ['test@[IPv6:1111:2222:3333:4444:5555:6666::7777:8888]', false], + ['test@[IPv6::3333:4444:5555:6666:7777:8888]', false], + ['test@[IPv6:::3333:4444:5555:6666:7777:8888]', false], + ['test@[IPv6:1111::4444:5555::8888]', false], + ['test@[IPv6:::]', false], + ['test@[IPv6:1111:2222:3333:4444:5555:255.255.255.255]', false], + ['test@[IPv6:1111:2222:3333:4444:5555:6666:255.255.255.255]', false], + ['test@[IPv6:1111:2222:3333:4444:5555:6666:7777:255.255.255.255]', false], + ['test@[IPv6:1111:2222:3333:4444::255.255.255.255]', false], + ['test@[IPv6:1111:2222:3333:4444:5555:6666::255.255.255.255]', false], + ['test@[IPv6:1111:2222:3333:4444:::255.255.255.255]', false], + ['test@[IPv6::255.255.255.255]', false], + ['test@[255.255.255.255].local', false], + ['test@local.[255.255.255.255]', false], + ['test@local.[255.255.255.255].local', false], + ['test@local.(comment)[255.255.255.255].local', false], + ['test@local. [255.255.255.255].local', false], + ['test@local.[255.255.255.255](comment).local', false], + ['test@local.[255.255.255.255] .local', false], + [' test @iana.org', false], + ['test@ iana .com', false], + ['test . test@iana.org', false], + ['\r\n test@iana.org', false], + ['\r\n \r\n test@iana.org', false], + ['(\r', false], + ['(comment)test@iana.org', false], + ['((comment)test@iana.org', false], + ['(comment(comment))test@iana.org', false], + ['test@(comment)iana.org', false], + ['test(comment)@iana.org', false], + ['test(comment)test@iana.org', false], + ['test@(comment)[255.255.255.255]', false], + ['(comment)abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiklm@iana.org', false], + ['test@(comment)abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.com', false], + ['(comment)test@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.abcdefghijklmnopqrstuvwxyzabcdefghijk.abcdefghijklmnopqrst', false], + ['test@iana.org\n', false], + ['xn--test@iana.org', true], + ['test@iana.org-', false], + ['\"test@iana.org', false], + ['(test@iana.org', false], + ['test@(iana.org', false], + ['test@[1.2.3.4', false], + ['\"test\\\"@iana.org', false], + ['(comment\\)test@iana.org', false], + ['test@iana.org(comment\\)', false], + ['test@iana.org(comment\\', false], + ['test@[RFC-5322-domain-literal]', false], + ['test@[RFC-5322-郵件ñó-domain-literal]', false], + ['test@[RFC-5322]-domain-literal]', false], + ['test@[RFC-5322].domain-literal]', false], + ['test@[RFC-5322-[domain-literal]', false], + ['test@[€', false], + ['test@[\u0007]', false], + ['test@[RFC-5322-\\\u0007-domain-literal]', false], + ['test@[RFC-5322-\\\t-domain-literal]', false], + ['test@[RFC-5322-\\]-domain-literal]', false], + ['test@[RFC-5322-\\郵-no-domain-literal]', false], + ['test@[RFC-5322--domain-literal]', false], + ['test@[RFC-5322-domain-literal\\]', false], + ['test@[RFC-5322-domain-literal\\', false], + ['test@[RFC 5322 domain literal]', false], + ['test@[RFC-5322-domain-literal] (comment)', false], + ['@iana.org', false], + ['test@.org', false], + ['\"\"@iana.org', false], + ['\"€\"@iana.org', false], + ['\"\\\"@iana.org', false], + ['()test@iana.org', false], + ['(€)test@iana.org', false], + ['test@iana.org\r', false], + ['\rtest@iana.org', false], + ['\"\rtest\"@iana.org', false], + ['(\r)test@iana.org', false], + ['test@iana.org(\r)', false], + ['test@.org', false], + ['\ntest@iana.org', false], + ['\"\n\"@iana.org', false], + ['\"\\\n\"@iana.org', false], + ['(\n)test@iana.org', false], + ['\u0007@iana.org', false], + ['test@\u0007.org', false], + ['\"\u0007\"@iana.org', false], + ['\"\\\u0007\"@iana.org', false], + ['(\u0007)test@iana.org', false], + ['\r\ntest@iana.org', false], + ['\r\n \r\ntest@iana.org', false], + [' \r\ntest@iana.org', false], + [' \r\n test@iana.org', false], + [' \r\n \r\ntest@iana.org', false], + [' \r\n\r\ntest@iana.org', false], + [' \r\n\r\n test@iana.org', false], + ['test@iana.org\r\n ', false], + ['test@iana.org\r\n \r\n ', false], + ['test@iana.org\r\n', false], + ['test@iana.org \r', false], + ['test@iana.org\r\n \r\n', false], + ['test@iana.org \r\n', false], + ['test@iana.org \r\n ', false], + ['test@iana.org \r\n \r\n', false], + ['test@iana.org \r\n\r\n', false], + ['test@iana.org \r\n\r\n ', false], + ['test@iana. org', false], + ['test@[\r', false], + ['test@[\r\n', false], + [' test@iana.org', false], + ['test@iana.org ', false], + ['test@[IPv6:1::2:]', false], + ['\"test\\\u0094\"@iana.org', false], + ['test@iana/icann.org', false], + ['test@iana!icann.org', false], + ['test@iana?icann.org', false], + ['test@iana^icann.org', false], + ['test@iana{icann}.org', false], + ['test.(comment)test@iana.org', false], + ['test@iana.(comment)org', false], + ['test@iana(comment)iana.org', false], + ['(comment\r\n comment)test@iana.org', false], + ['test@org', true, { minDomainSegments: 1 }], + ['test\ud800@invalid', false], + ['\"\ud800\"@invalid', false], + ['\"\\\ud800\"@invalid', false], + ['(\ud800)thing@invalid', false], + ['\"\\\ud800\"@invalid', false], + ['test@\ud800\udfffñoñó郵件ñoñó郵件.郵件ñoñó郵件ñoñó郵件.ñoñó郵件ñoñó郵件.ñoñó郵件ñoñó郵件.ñoñó郵件ñoñó郵件.ñoñó郵件ñoñó郵件.ñoñó郵件ñoñó郵件.noñó郵件ñoñó郵.商務', false, { tlds: { allow: new Set([Punycode.toASCII('商務')]) } }], + ['test@\ud800\udfffñoñó郵件ñoñó郵件.郵件ñoñó郵件ñoñó郵件.ñoñó郵件ñoñó郵件ñoñó郵件.ñoñó郵件ñoñó郵件.ñoñó郵件ñoñó郵件.ñoñó郵件ñoñó郵件.ñoñó郵件ñoñó郵件.ñoñó郵件ñoñó郵件.oñó郵件ñoñó郵件ñoñó郵件.商務', false, { tlds: { allow: new Set([Punycode.toASCII('商務')]) } }], + ['test@ñoñoñó郵件\ud83d\ude06ñoñ.oñó郵件\uc138ñoñ.oñó郵件\u0644\u4eec\u010dñoñoñó郵件\u05dcño.ñoñó郵件\u092f\u672cñoñoñó郵件\uc138añoñ.oñó郵件\ud83d\ude06bc\uc138郵\ud83d\ude06ño.ñoñó郵件ñoñoñó郵件\ud83d\ude06ñoñoñó郵件\uc138ñoñ.oñó郵件\u0644\u4eecñoñoñó.郵件\ud83d\ude06ñoñoñó郵件郵\uc138ñoñoñó郵件\u0644\u4eecñoñoñó郵件.\ud83d\ude06ñoñoñó郵件郵\uc138\u0644\u4eec.郵件\ud83d\ude06ñoñoñó郵.件郵\uc138\u4eec\ud83d\ude06ñoñoñó件郵\uc138ñoñoñó郵件', false, { tlds: { allow: new Set([Punycode.toASCII('商務')]) } }], + ['test@ñoñó郵件ñoñó郵件ñoñó郵件ñoñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件ñoñó郵件.商務', false, { tlds: { allow: new Set([Punycode.toASCII('商務')]) } }], + ['\ud83d\ude06ñoñó郵件ñoñó郵件ñoñó\ud83d\ude06郵件ñoñoñó郵@\ud83d\ude06郵件ñoñó郵件ñoñó.\ud83d\ude06郵件ñoñó郵件ñoñó.\ud83d\ude06郵件ñoñó郵件ñoñó.郵件ñoñó郵件ñoñó\ud83d\ude06.郵件ñoñó郵件ñoñó.郵件ñoñó郵件.ñoñó郵件ñoñó.郵件ñoñó郵件.\ud83d\ude06郵件ñoñó郵件ñoñó.\ud83d\ude06郵件ñoñó郵件ñoñó.\ud83d\ude06商務.郵件ñoñó郵件ñoñó郵件.\ud83d\ude06商務.\ud83d\ude06商務.\ud83d\ude06商務', false, { tlds: { allow: new Set([Punycode.toASCII('商務')]) } }], + ['test@[\0', false], + ['(\0)test@example.com', false], + ['shouldbe@invalid', false], + ['shouldbe@INVALID', false], + ['shouldbe@example.com', true], + ['shouldbe@example.COM', true], + ['apple-touch-icon-60x60@2x.png', false], + ['shouldbe@XN--UNUP4Y', true, { minDomainSegments: 1 }], + ['shouldbe@xn--unup4y', true, { minDomainSegments: 1 }], + ['shouldbe@\u6e38\u620f', true, { minDomainSegments: 1 }], + ['æøå', false], + ['1234567890abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvw@xyz.com', true, { ignoreLength: true }], + ['test@example.com@example.com', false], + ['test@example.com/path', false], + ['test@example.com:123', false] + ]; + + for (let i = 0; i < tests.length; ++i) { + const email = tests[i]; + const valid = Address.email.isValid(email[0], email[2]); + const result = email[1]; + + if (valid !== result) { + const outcome = Address.email.analyze(email[0], email[2]); + if (outcome) { + console.log(i, email[0], outcome.error); + } + else { + console.log(i, email[0]); + } + } + + expect(valid).to.equal(result); + } + }); + }); +}); + +describe('domain', () => { + + it('available as direct require', () => { + + expect(require('../lib/domain').isValid('example.com')).to.be.true(); + }); + + describe('analyze()', () => { + + it('identifies error', () => { + + const tests = [ + ['', 'Domain must be a non-empty string'], + ['êiana.org', 'Domain contains forbidden Unicode characters', { allowUnicode: false }], + ['abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz.com', 'Domain too long'], + ['com', 'Domain lacks the minimum required number of segments'], + ['x.no-such-tld', 'Domain uses forbidden TLD'], + ['example..com', 'Domain contains empty dot-separated segment'], + ['1234567890123456789012345678901234567890123456789012345678901234567890.com', 'Domain contains dot-separated segment that is too long'], + ['example+.com', 'Domain contains invalid character', { tlds: false }], + ['example.com_', 'Domain contains invalid tld character', { tlds: false }] + ]; + + for (let i = 0; i < tests.length; ++i) { + const domain = tests[i]; + const output = Address.domain.analyze(domain[0], domain[2]); + const result = domain[1]; + + if (!output || + output.error !== result) { + + console.log(i, domain[0]); + } + + expect(output.error).to.equal(result); + } + }); + + it('validates options', () => { + + const tests = [ + ['example.com', 'Invalid options: tlds must be a boolean or an object', { tlds: 1 }], + ['example.com', 'Invalid options: tlds.allow must be a Set object or true', { tlds: { allow: ['test'] } }], + ['example.com', 'Invalid options: tlds.deny must be a Set object', { tlds: { deny: ['test'] } }], + ['example.com', 'Invalid options: cannot specify both tlds.allow and tlds.deny lists', { tlds: { allow: new Set(), deny: new Set() } }], + [1, 'Invalid input: domain must be a string'] + ]; + + for (let i = 0; i < tests.length; ++i) { + const domain = tests[i]; + expect(() => Address.domain.analyze(domain[0], domain[2])).to.throw(domain[1]); + } + }); + }); + + describe('isValid()', () => { + + it('validates domain', () => { + + const tests = [ + ['\r', false], + ['test', false], + ['@', false], + ['iana.org', true], + ['nominet.org.uk', true], + ['about.museum', true], + ['x.商務', true, { tlds: { allow: new Set([Punycode.toASCII('商務')]) } }], + ['iana.123', false], + ['255.255.255.255', false], + ['XN--UNUP4Y', true, { minDomainSegments: 1 }], + ['test@example.com', false], + ['test:example.com', false], + ['example.com:123', false], + ['example.com/path', false] + ]; + + for (let i = 0; i < tests.length; ++i) { + const domain = tests[i]; + const valid = Address.domain.isValid(domain[0], domain[2]); + const result = domain[1]; + + if (valid !== result) { + const outcome = Address.domain.analyze(domain[0], domain[2]); + if (outcome) { + console.log(i, domain[0], outcome.error); + } + else { + console.log(i, domain[0]); + } + } + + expect(valid).to.equal(result); + } + }); + }); +}); diff --git a/node_modules/@hapi/bourne/.npmignore b/node_modules/@hapi/bourne/.npmignore new file mode 100644 index 0000000..adac8ad --- /dev/null +++ b/node_modules/@hapi/bourne/.npmignore @@ -0,0 +1,3 @@ +* +!lib/** +!.npmignore diff --git a/node_modules/@hapi/bourne/LICENSE.md b/node_modules/@hapi/bourne/LICENSE.md new file mode 100755 index 0000000..8387144 --- /dev/null +++ b/node_modules/@hapi/bourne/LICENSE.md @@ -0,0 +1,9 @@ +Copyright (c) 2019, Sideway Inc, and project 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 OFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/@hapi/bourne/README.md b/node_modules/@hapi/bourne/README.md new file mode 100755 index 0000000..3ee5af0 --- /dev/null +++ b/node_modules/@hapi/bourne/README.md @@ -0,0 +1,54 @@ + + +# Bourne. JSON Bourne. + +`JSON.parse()` drop-in replacement with prototype poisoning protection + +[![Build Status](https://travis-ci.org/hapijs/bourne.svg)](https://travis-ci.org/hapijs/bourne) + +## Introduction + +Consider this: + +``` +> const a = '{"__proto__":{ "b":5}}'; +'{"__proto__":{ "b":5}}' + +> const b = JSON.parse(a); +{ __proto__: { b: 5 } } + +> b.b; +undefined + +> const c = Object.assign({}, b); +{} + +> c.b +5 +``` + +The problem is that `JSON.parse()` retains the `__proto__` property as a plain object key. By +itself, this is not a security issue. However, as soon as that object is assigned to another or +iterated on and values copied, the `__proto__` property leaks and becomes the object's prototype. + +## API + +### `Bourne.parse(text, [reviver], [options])` + +Parses a given JSON-formatted text into an object where: +- `text` - the JSON text string. +- `reviver` - the `JSON.parse()` optional `reviver` argument. +- `options` - optional configuration object where: + - `protoAction` - optional string with one of: + - `'error'` - throw a `SyntaxError` when a `__proto__` key is found. This is the default value. + - `'remove'` - deletes any `__proto__` keys from the result object. + - `'ignore'` - skips all validation (same as calling `JSON.parse()` directly). + +### `Bourne.scan(obj, [options])` + +Scans a given object for prototype properties where: +- `obj` - the object being scanned. +- `options` - optional configuration object where: + - `protoAction` - optional string with one of: + - `'error'` - throw a `SyntaxError` when a `__proto__` key is found. This is the default value. + - `'remove'` - deletes any `__proto__` keys from the input `obj`. diff --git a/node_modules/@hapi/bourne/lib/index.js b/node_modules/@hapi/bourne/lib/index.js new file mode 100755 index 0000000..a5407a0 --- /dev/null +++ b/node_modules/@hapi/bourne/lib/index.js @@ -0,0 +1,97 @@ +'use strict'; + + +const internals = { + suspectRx: /"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*\:/ +}; + + +exports.parse = function (text, reviver, options) { + + // Normalize arguments + + if (!options) { + if (reviver && + typeof reviver === 'object') { + + options = reviver; + reviver = undefined; + } + else { + options = {}; + } + } + + // Parse normally, allowing exceptions + + const obj = JSON.parse(text, reviver); + + // options.protoAction: 'error' (default) / 'remove' / 'ignore' + + if (options.protoAction === 'ignore') { + return obj; + } + + // Ignore null and non-objects + + if (!obj || + typeof obj !== 'object') { + + return obj; + } + + // Check original string for potential exploit + + if (!text.match(internals.suspectRx)) { + return obj; + } + + // Scan result for proto keys + + exports.scan(obj, options); + + return obj; +}; + + +exports.scan = function (obj, options) { + + options = options || {}; + + let next = [obj]; + + while (next.length) { + const nodes = next; + next = []; + + for (const node of nodes) { + if (Object.prototype.hasOwnProperty.call(node, '__proto__')) { // Avoid calling node.hasOwnProperty directly + if (options.protoAction !== 'remove') { + throw new SyntaxError('Object contains forbidden prototype property'); + } + + delete node.__proto__; + } + + for (const key in node) { + const value = node[key]; + if (value && + typeof value === 'object') { + + next.push(node[key]); + } + } + } + } +}; + + +exports.safeParse = function (text, reviver) { + + try { + return exports.parse(text, reviver); + } + catch (ignoreError) { + return null; + } +}; diff --git a/node_modules/@hapi/bourne/package.json b/node_modules/@hapi/bourne/package.json new file mode 100644 index 0000000..82f303e --- /dev/null +++ b/node_modules/@hapi/bourne/package.json @@ -0,0 +1,57 @@ +{ + "_from": "@hapi/bourne@1.x.x", + "_id": "@hapi/bourne@1.3.2", + "_inBundle": false, + "_integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==", + "_location": "/@hapi/bourne", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "@hapi/bourne@1.x.x", + "name": "@hapi/bourne", + "escapedName": "@hapi%2fbourne", + "scope": "@hapi", + "rawSpec": "1.x.x", + "saveSpec": null, + "fetchSpec": "1.x.x" + }, + "_requiredBy": [ + "/@hapi/joi" + ], + "_resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", + "_shasum": "0a7095adea067243ce3283e1b56b8a8f453b242a", + "_spec": "@hapi/bourne@1.x.x", + "_where": "/home/wyrihaximus/Projects/WyriHaximus/github-action-helm3/node_modules/@hapi/joi", + "bugs": { + "url": "https://github.com/hapijs/bourne/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": "This version has been deprecated and is no longer supported or maintained", + "description": "JSON parse with prototype poisoning protection", + "devDependencies": { + "@hapi/code": "5.x.x", + "@hapi/lab": "18.x.x", + "benchmark": "^2.1.4" + }, + "homepage": "https://github.com/hapijs/bourne#readme", + "keywords": [ + "JSON", + "parse", + "safe", + "prototype" + ], + "license": "BSD-3-Clause", + "main": "lib/index.js", + "name": "@hapi/bourne", + "repository": { + "type": "git", + "url": "git://github.com/hapijs/bourne.git" + }, + "scripts": { + "test": "lab -a @hapi/code -t 100 -L", + "test-cov-html": "lab -a @hapi/code -r html -o coverage.html" + }, + "version": "1.3.2" +} diff --git a/node_modules/@hapi/hoek/LICENSE.md b/node_modules/@hapi/hoek/LICENSE.md new file mode 100755 index 0000000..0c95a4c --- /dev/null +++ b/node_modules/@hapi/hoek/LICENSE.md @@ -0,0 +1,12 @@ +Copyright (c) 2011-2020, Sideway Inc, and project contributors +Copyright (c) 2011-2014, Walmart +Copyright (c) 2011, Yahoo 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: +* 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 OFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/@hapi/hoek/README.md b/node_modules/@hapi/hoek/README.md new file mode 100755 index 0000000..8771dbf --- /dev/null +++ b/node_modules/@hapi/hoek/README.md @@ -0,0 +1,19 @@ + + +# @hapi/hoek + +#### Utility methods for the hapi ecosystem. + +**hoek** is part of the **hapi** ecosystem and was designed to work seamlessly with the [hapi web framework](https://hapi.dev) and its other components (but works great on its own or with other frameworks). If you are using a different web framework and find this module useful, check out [hapi](https://hapi.dev) – they work even better together. + +This module is not intended to solve every problem for everyone, but rather as a central place to store hapi-specific methods. If you're looking for a general purpose utility module, check out [lodash](https://github.com/lodash/lodash). + +### Visit the [hapi.dev](https://hapi.dev) Developer Portal for tutorials, documentation, and support + +## Useful resources + +- [Documentation and API](https://hapi.dev/family/hoek/) +- [Version status](https://hapi.dev/resources/status/#hoek) (builds, dependencies, node versions, licenses, eol) +- [Changelog](https://hapi.dev/family/hoek/changelog/) +- [Project policies](https://hapi.dev/policies/) +- [Free and commercial support options](https://hapi.dev/support/) diff --git a/node_modules/@hapi/hoek/lib/applyToDefaults.js b/node_modules/@hapi/hoek/lib/applyToDefaults.js new file mode 100755 index 0000000..54d96e6 --- /dev/null +++ b/node_modules/@hapi/hoek/lib/applyToDefaults.js @@ -0,0 +1,95 @@ +'use strict'; + +const Assert = require('./assert'); +const Clone = require('./clone'); +const Merge = require('./merge'); +const Reach = require('./reach'); + + +const internals = {}; + + +module.exports = function (defaults, source, options = {}) { + + Assert(defaults && typeof defaults === 'object', 'Invalid defaults value: must be an object'); + Assert(!source || source === true || typeof source === 'object', 'Invalid source value: must be true, falsy or an object'); + Assert(typeof options === 'object', 'Invalid options: must be an object'); + + if (!source) { // If no source, return null + return null; + } + + if (options.shallow) { + return internals.applyToDefaultsWithShallow(defaults, source, options); + } + + const copy = Clone(defaults); + + if (source === true) { // If source is set to true, use defaults + return copy; + } + + const nullOverride = options.nullOverride !== undefined ? options.nullOverride : false; + return Merge(copy, source, { nullOverride, mergeArrays: false }); +}; + + +internals.applyToDefaultsWithShallow = function (defaults, source, options) { + + const keys = options.shallow; + Assert(Array.isArray(keys), 'Invalid keys'); + + const seen = new Map(); + const merge = source === true ? null : new Set(); + + for (let key of keys) { + key = Array.isArray(key) ? key : key.split('.'); // Pre-split optimization + + const ref = Reach(defaults, key); + if (ref && + typeof ref === 'object') { + + seen.set(ref, merge && Reach(source, key) || ref); + } + else if (merge) { + merge.add(key); + } + } + + const copy = Clone(defaults, {}, seen); + + if (!merge) { + return copy; + } + + for (const key of merge) { + internals.reachCopy(copy, source, key); + } + + return Merge(copy, source, { mergeArrays: false, nullOverride: false }); +}; + + +internals.reachCopy = function (dst, src, path) { + + for (const segment of path) { + if (!(segment in src)) { + return; + } + + src = src[segment]; + } + + const value = src; + let ref = dst; + for (let i = 0; i < path.length - 1; ++i) { + const segment = path[i]; + if (typeof ref[segment] !== 'object') { + ref[segment] = {}; + } + + ref = ref[segment]; + } + + ref[path[path.length - 1]] = value; +}; diff --git a/node_modules/@hapi/hoek/lib/assert.js b/node_modules/@hapi/hoek/lib/assert.js new file mode 100755 index 0000000..6a11e93 --- /dev/null +++ b/node_modules/@hapi/hoek/lib/assert.js @@ -0,0 +1,21 @@ +'use strict'; + +const AssertError = require('./error'); + +const internals = {}; + + +module.exports = function (condition, ...args) { + + if (condition) { + return; + } + + if (args.length === 1 && + args[0] instanceof Error) { + + throw args[0]; + } + + throw new AssertError(args); +}; diff --git a/node_modules/@hapi/hoek/lib/bench.js b/node_modules/@hapi/hoek/lib/bench.js new file mode 100755 index 0000000..26ee196 --- /dev/null +++ b/node_modules/@hapi/hoek/lib/bench.js @@ -0,0 +1,29 @@ +'use strict'; + +const internals = {}; + + +module.exports = internals.Bench = class { + + constructor() { + + this.ts = 0; + this.reset(); + } + + reset() { + + this.ts = internals.Bench.now(); + } + + elapsed() { + + return internals.Bench.now() - this.ts; + } + + static now() { + + const ts = process.hrtime(); + return (ts[0] * 1e3) + (ts[1] / 1e6); + } +}; diff --git a/node_modules/@hapi/hoek/lib/block.js b/node_modules/@hapi/hoek/lib/block.js new file mode 100755 index 0000000..73fb9a5 --- /dev/null +++ b/node_modules/@hapi/hoek/lib/block.js @@ -0,0 +1,12 @@ +'use strict'; + +const Ignore = require('./ignore'); + + +const internals = {}; + + +module.exports = function () { + + return new Promise(Ignore); +}; diff --git a/node_modules/@hapi/hoek/lib/clone.js b/node_modules/@hapi/hoek/lib/clone.js new file mode 100755 index 0000000..e64defb --- /dev/null +++ b/node_modules/@hapi/hoek/lib/clone.js @@ -0,0 +1,176 @@ +'use strict'; + +const Reach = require('./reach'); +const Types = require('./types'); +const Utils = require('./utils'); + + +const internals = { + needsProtoHack: new Set([Types.set, Types.map, Types.weakSet, Types.weakMap]) +}; + + +module.exports = internals.clone = function (obj, options = {}, _seen = null) { + + if (typeof obj !== 'object' || + obj === null) { + + return obj; + } + + let clone = internals.clone; + let seen = _seen; + + if (options.shallow) { + if (options.shallow !== true) { + return internals.cloneWithShallow(obj, options); + } + + clone = (value) => value; + } + else if (seen) { + const lookup = seen.get(obj); + if (lookup) { + return lookup; + } + } + else { + seen = new Map(); + } + + // Built-in object types + + const baseProto = Types.getInternalProto(obj); + if (baseProto === Types.buffer) { + return Buffer && Buffer.from(obj); // $lab:coverage:ignore$ + } + + if (baseProto === Types.date) { + return new Date(obj.getTime()); + } + + if (baseProto === Types.regex) { + return new RegExp(obj); + } + + // Generic objects + + const newObj = internals.base(obj, baseProto, options); + if (newObj === obj) { + return obj; + } + + if (seen) { + seen.set(obj, newObj); // Set seen, since obj could recurse + } + + if (baseProto === Types.set) { + for (const value of obj) { + newObj.add(clone(value, options, seen)); + } + } + else if (baseProto === Types.map) { + for (const [key, value] of obj) { + newObj.set(key, clone(value, options, seen)); + } + } + + const keys = Utils.keys(obj, options); + for (const key of keys) { + if (key === '__proto__') { + continue; + } + + if (baseProto === Types.array && + key === 'length') { + + newObj.length = obj.length; + continue; + } + + const descriptor = Object.getOwnPropertyDescriptor(obj, key); + if (descriptor) { + if (descriptor.get || + descriptor.set) { + + Object.defineProperty(newObj, key, descriptor); + } + else if (descriptor.enumerable) { + newObj[key] = clone(obj[key], options, seen); + } + else { + Object.defineProperty(newObj, key, { enumerable: false, writable: true, configurable: true, value: clone(obj[key], options, seen) }); + } + } + else { + Object.defineProperty(newObj, key, { + enumerable: true, + writable: true, + configurable: true, + value: clone(obj[key], options, seen) + }); + } + } + + return newObj; +}; + + +internals.cloneWithShallow = function (source, options) { + + const keys = options.shallow; + options = Object.assign({}, options); + options.shallow = false; + + const seen = new Map(); + + for (const key of keys) { + const ref = Reach(source, key); + if (typeof ref === 'object' || + typeof ref === 'function') { + + seen.set(ref, ref); + } + } + + return internals.clone(source, options, seen); +}; + + +internals.base = function (obj, baseProto, options) { + + if (options.prototype === false) { // Defaults to true + if (internals.needsProtoHack.has(baseProto)) { + return new baseProto.constructor(); + } + + return baseProto === Types.array ? [] : {}; + } + + const proto = Object.getPrototypeOf(obj); + if (proto && + proto.isImmutable) { + + return obj; + } + + if (baseProto === Types.array) { + const newObj = []; + if (proto !== baseProto) { + Object.setPrototypeOf(newObj, proto); + } + + return newObj; + } + + if (internals.needsProtoHack.has(baseProto)) { + const newObj = new proto.constructor(); + if (proto !== baseProto) { + Object.setPrototypeOf(newObj, proto); + } + + return newObj; + } + + return Object.create(proto); +}; diff --git a/node_modules/@hapi/hoek/lib/contain.js b/node_modules/@hapi/hoek/lib/contain.js new file mode 100755 index 0000000..162ea3e --- /dev/null +++ b/node_modules/@hapi/hoek/lib/contain.js @@ -0,0 +1,307 @@ +'use strict'; + +const Assert = require('./assert'); +const DeepEqual = require('./deepEqual'); +const EscapeRegex = require('./escapeRegex'); +const Utils = require('./utils'); + + +const internals = {}; + + +module.exports = function (ref, values, options = {}) { // options: { deep, once, only, part, symbols } + + /* + string -> string(s) + array -> item(s) + object -> key(s) + object -> object (key:value) + */ + + if (typeof values !== 'object') { + values = [values]; + } + + Assert(!Array.isArray(values) || values.length, 'Values array cannot be empty'); + + // String + + if (typeof ref === 'string') { + return internals.string(ref, values, options); + } + + // Array + + if (Array.isArray(ref)) { + return internals.array(ref, values, options); + } + + // Object + + Assert(typeof ref === 'object', 'Reference must be string or an object'); + return internals.object(ref, values, options); +}; + + +internals.array = function (ref, values, options) { + + if (!Array.isArray(values)) { + values = [values]; + } + + if (!ref.length) { + return false; + } + + if (options.only && + options.once && + ref.length !== values.length) { + + return false; + } + + let compare; + + // Map values + + const map = new Map(); + for (const value of values) { + if (!options.deep || + !value || + typeof value !== 'object') { + + const existing = map.get(value); + if (existing) { + ++existing.allowed; + } + else { + map.set(value, { allowed: 1, hits: 0 }); + } + } + else { + compare = compare || internals.compare(options); + + let found = false; + for (const [key, existing] of map.entries()) { + if (compare(key, value)) { + ++existing.allowed; + found = true; + break; + } + } + + if (!found) { + map.set(value, { allowed: 1, hits: 0 }); + } + } + } + + // Lookup values + + let hits = 0; + for (const item of ref) { + let match; + if (!options.deep || + !item || + typeof item !== 'object') { + + match = map.get(item); + } + else { + compare = compare || internals.compare(options); + + for (const [key, existing] of map.entries()) { + if (compare(key, item)) { + match = existing; + break; + } + } + } + + if (match) { + ++match.hits; + ++hits; + + if (options.once && + match.hits > match.allowed) { + + return false; + } + } + } + + // Validate results + + if (options.only && + hits !== ref.length) { + + return false; + } + + for (const match of map.values()) { + if (match.hits === match.allowed) { + continue; + } + + if (match.hits < match.allowed && + !options.part) { + + return false; + } + } + + return !!hits; +}; + + +internals.object = function (ref, values, options) { + + Assert(options.once === undefined, 'Cannot use option once with object'); + + const keys = Utils.keys(ref, options); + if (!keys.length) { + return false; + } + + // Keys list + + if (Array.isArray(values)) { + return internals.array(keys, values, options); + } + + // Key value pairs + + const symbols = Object.getOwnPropertySymbols(values).filter((sym) => values.propertyIsEnumerable(sym)); + const targets = [...Object.keys(values), ...symbols]; + + const compare = internals.compare(options); + const set = new Set(targets); + + for (const key of keys) { + if (!set.has(key)) { + if (options.only) { + return false; + } + + continue; + } + + if (!compare(values[key], ref[key])) { + return false; + } + + set.delete(key); + } + + if (set.size) { + return options.part ? set.size < targets.length : false; + } + + return true; +}; + + +internals.string = function (ref, values, options) { + + // Empty string + + if (ref === '') { + return values.length === 1 && values[0] === '' || // '' contains '' + !options.once && !values.some((v) => v !== ''); // '' contains multiple '' if !once + } + + // Map values + + const map = new Map(); + const patterns = []; + + for (const value of values) { + Assert(typeof value === 'string', 'Cannot compare string reference to non-string value'); + + if (value) { + const existing = map.get(value); + if (existing) { + ++existing.allowed; + } + else { + map.set(value, { allowed: 1, hits: 0 }); + patterns.push(EscapeRegex(value)); + } + } + else if (options.once || + options.only) { + + return false; + } + } + + if (!patterns.length) { // Non-empty string contains unlimited empty string + return true; + } + + // Match patterns + + const regex = new RegExp(`(${patterns.join('|')})`, 'g'); + const leftovers = ref.replace(regex, ($0, $1) => { + + ++map.get($1).hits; + return ''; // Remove from string + }); + + // Validate results + + if (options.only && + leftovers) { + + return false; + } + + let any = false; + for (const match of map.values()) { + if (match.hits) { + any = true; + } + + if (match.hits === match.allowed) { + continue; + } + + if (match.hits < match.allowed && + !options.part) { + + return false; + } + + // match.hits > match.allowed + + if (options.once) { + return false; + } + } + + return !!any; +}; + + +internals.compare = function (options) { + + if (!options.deep) { + return internals.shallow; + } + + const hasOnly = options.only !== undefined; + const hasPart = options.part !== undefined; + + const flags = { + prototype: hasOnly ? options.only : hasPart ? !options.part : false, + part: hasOnly ? !options.only : hasPart ? options.part : false + }; + + return (a, b) => DeepEqual(a, b, flags); +}; + + +internals.shallow = function (a, b) { + + return a === b; +}; diff --git a/node_modules/@hapi/hoek/lib/deepEqual.js b/node_modules/@hapi/hoek/lib/deepEqual.js new file mode 100755 index 0000000..a82647b --- /dev/null +++ b/node_modules/@hapi/hoek/lib/deepEqual.js @@ -0,0 +1,317 @@ +'use strict'; + +const Types = require('./types'); + + +const internals = { + mismatched: null +}; + + +module.exports = function (obj, ref, options) { + + options = Object.assign({ prototype: true }, options); + + return !!internals.isDeepEqual(obj, ref, options, []); +}; + + +internals.isDeepEqual = function (obj, ref, options, seen) { + + if (obj === ref) { // Copied from Deep-eql, copyright(c) 2013 Jake Luer, jake@alogicalparadox.com, MIT Licensed, https://github.com/chaijs/deep-eql + return obj !== 0 || 1 / obj === 1 / ref; + } + + const type = typeof obj; + + if (type !== typeof ref) { + return false; + } + + if (obj === null || + ref === null) { + + return false; + } + + if (type === 'function') { + if (!options.deepFunction || + obj.toString() !== ref.toString()) { + + return false; + } + + // Continue as object + } + else if (type !== 'object') { + return obj !== obj && ref !== ref; // NaN + } + + const instanceType = internals.getSharedType(obj, ref, !!options.prototype); + switch (instanceType) { + case Types.buffer: + return Buffer && Buffer.prototype.equals.call(obj, ref); // $lab:coverage:ignore$ + case Types.promise: + return obj === ref; + case Types.regex: + return obj.toString() === ref.toString(); + case internals.mismatched: + return false; + } + + for (let i = seen.length - 1; i >= 0; --i) { + if (seen[i].isSame(obj, ref)) { + return true; // If previous comparison failed, it would have stopped execution + } + } + + seen.push(new internals.SeenEntry(obj, ref)); + + try { + return !!internals.isDeepEqualObj(instanceType, obj, ref, options, seen); + } + finally { + seen.pop(); + } +}; + + +internals.getSharedType = function (obj, ref, checkPrototype) { + + if (checkPrototype) { + if (Object.getPrototypeOf(obj) !== Object.getPrototypeOf(ref)) { + return internals.mismatched; + } + + return Types.getInternalProto(obj); + } + + const type = Types.getInternalProto(obj); + if (type !== Types.getInternalProto(ref)) { + return internals.mismatched; + } + + return type; +}; + + +internals.valueOf = function (obj) { + + const objValueOf = obj.valueOf; + if (objValueOf === undefined) { + return obj; + } + + try { + return objValueOf.call(obj); + } + catch (err) { + return err; + } +}; + + +internals.hasOwnEnumerableProperty = function (obj, key) { + + return Object.prototype.propertyIsEnumerable.call(obj, key); +}; + + +internals.isSetSimpleEqual = function (obj, ref) { + + for (const entry of Set.prototype.values.call(obj)) { + if (!Set.prototype.has.call(ref, entry)) { + return false; + } + } + + return true; +}; + + +internals.isDeepEqualObj = function (instanceType, obj, ref, options, seen) { + + const { isDeepEqual, valueOf, hasOwnEnumerableProperty } = internals; + const { keys, getOwnPropertySymbols } = Object; + + if (instanceType === Types.array) { + if (options.part) { + + // Check if any index match any other index + + for (const objValue of obj) { + for (const refValue of ref) { + if (isDeepEqual(objValue, refValue, options, seen)) { + return true; + } + } + } + } + else { + if (obj.length !== ref.length) { + return false; + } + + for (let i = 0; i < obj.length; ++i) { + if (!isDeepEqual(obj[i], ref[i], options, seen)) { + return false; + } + } + + return true; + } + } + else if (instanceType === Types.set) { + if (obj.size !== ref.size) { + return false; + } + + if (!internals.isSetSimpleEqual(obj, ref)) { + + // Check for deep equality + + const ref2 = new Set(Set.prototype.values.call(ref)); + for (const objEntry of Set.prototype.values.call(obj)) { + if (ref2.delete(objEntry)) { + continue; + } + + let found = false; + for (const refEntry of ref2) { + if (isDeepEqual(objEntry, refEntry, options, seen)) { + ref2.delete(refEntry); + found = true; + break; + } + } + + if (!found) { + return false; + } + } + } + } + else if (instanceType === Types.map) { + if (obj.size !== ref.size) { + return false; + } + + for (const [key, value] of Map.prototype.entries.call(obj)) { + if (value === undefined && !Map.prototype.has.call(ref, key)) { + return false; + } + + if (!isDeepEqual(value, Map.prototype.get.call(ref, key), options, seen)) { + return false; + } + } + } + else if (instanceType === Types.error) { + + // Always check name and message + + if (obj.name !== ref.name || + obj.message !== ref.message) { + + return false; + } + } + + // Check .valueOf() + + const valueOfObj = valueOf(obj); + const valueOfRef = valueOf(ref); + if ((obj !== valueOfObj || ref !== valueOfRef) && + !isDeepEqual(valueOfObj, valueOfRef, options, seen)) { + + return false; + } + + // Check properties + + const objKeys = keys(obj); + if (!options.part && + objKeys.length !== keys(ref).length && + !options.skip) { + + return false; + } + + let skipped = 0; + for (const key of objKeys) { + if (options.skip && + options.skip.includes(key)) { + + if (ref[key] === undefined) { + ++skipped; + } + + continue; + } + + if (!hasOwnEnumerableProperty(ref, key)) { + return false; + } + + if (!isDeepEqual(obj[key], ref[key], options, seen)) { + return false; + } + } + + if (!options.part && + objKeys.length - skipped !== keys(ref).length) { + + return false; + } + + // Check symbols + + if (options.symbols !== false) { // Defaults to true + const objSymbols = getOwnPropertySymbols(obj); + const refSymbols = new Set(getOwnPropertySymbols(ref)); + + for (const key of objSymbols) { + if (!options.skip || + !options.skip.includes(key)) { + + if (hasOwnEnumerableProperty(obj, key)) { + if (!hasOwnEnumerableProperty(ref, key)) { + return false; + } + + if (!isDeepEqual(obj[key], ref[key], options, seen)) { + return false; + } + } + else if (hasOwnEnumerableProperty(ref, key)) { + return false; + } + } + + refSymbols.delete(key); + } + + for (const key of refSymbols) { + if (hasOwnEnumerableProperty(ref, key)) { + return false; + } + } + } + + return true; +}; + + +internals.SeenEntry = class { + + constructor(obj, ref) { + + this.obj = obj; + this.ref = ref; + } + + isSame(obj, ref) { + + return this.obj === obj && this.ref === ref; + } +}; diff --git a/node_modules/@hapi/hoek/lib/error.js b/node_modules/@hapi/hoek/lib/error.js new file mode 100755 index 0000000..9fc4f5d --- /dev/null +++ b/node_modules/@hapi/hoek/lib/error.js @@ -0,0 +1,26 @@ +'use strict'; + +const Stringify = require('./stringify'); + + +const internals = {}; + + +module.exports = class extends Error { + + constructor(args) { + + const msgs = args + .filter((arg) => arg !== '') + .map((arg) => { + + return typeof arg === 'string' ? arg : arg instanceof Error ? arg.message : Stringify(arg); + }); + + super(msgs.join(' ') || 'Unknown error'); + + if (typeof Error.captureStackTrace === 'function') { // $lab:coverage:ignore$ + Error.captureStackTrace(this, exports.assert); + } + } +}; diff --git a/node_modules/@hapi/hoek/lib/escapeHeaderAttribute.js b/node_modules/@hapi/hoek/lib/escapeHeaderAttribute.js new file mode 100755 index 0000000..a0a4dee --- /dev/null +++ b/node_modules/@hapi/hoek/lib/escapeHeaderAttribute.js @@ -0,0 +1,16 @@ +'use strict'; + +const Assert = require('./assert'); + + +const internals = {}; + + +module.exports = function (attribute) { + + // Allowed value characters: !#$%&'()*+,-./:;<=>?@[]^_`{|}~ and space, a-z, A-Z, 0-9, \, " + + Assert(/^[ \w\!#\$%&'\(\)\*\+,\-\.\/\:;<\=>\?@\[\]\^`\{\|\}~\"\\]*$/.test(attribute), 'Bad attribute value (' + attribute + ')'); + + return attribute.replace(/\\/g, '\\\\').replace(/\"/g, '\\"'); // Escape quotes and slash +}; diff --git a/node_modules/@hapi/hoek/lib/escapeHtml.js b/node_modules/@hapi/hoek/lib/escapeHtml.js new file mode 100755 index 0000000..ddef2b6 --- /dev/null +++ b/node_modules/@hapi/hoek/lib/escapeHtml.js @@ -0,0 +1,87 @@ +'use strict'; + +const internals = {}; + + +module.exports = function (input) { + + if (!input) { + return ''; + } + + let escaped = ''; + + for (let i = 0; i < input.length; ++i) { + + const charCode = input.charCodeAt(i); + + if (internals.isSafe(charCode)) { + escaped += input[i]; + } + else { + escaped += internals.escapeHtmlChar(charCode); + } + } + + return escaped; +}; + + +internals.escapeHtmlChar = function (charCode) { + + const namedEscape = internals.namedHtml[charCode]; + if (typeof namedEscape !== 'undefined') { + return namedEscape; + } + + if (charCode >= 256) { + return '&#' + charCode + ';'; + } + + const hexValue = charCode.toString(16).padStart(2, '0'); + return `&#x${hexValue};`; +}; + + +internals.isSafe = function (charCode) { + + return (typeof internals.safeCharCodes[charCode] !== 'undefined'); +}; + + +internals.namedHtml = { + '38': '&', + '60': '<', + '62': '>', + '34': '"', + '160': ' ', + '162': '¢', + '163': '£', + '164': '¤', + '169': '©', + '174': '®' +}; + + +internals.safeCharCodes = (function () { + + const safe = {}; + + for (let i = 32; i < 123; ++i) { + + if ((i >= 97) || // a-z + (i >= 65 && i <= 90) || // A-Z + (i >= 48 && i <= 57) || // 0-9 + i === 32 || // space + i === 46 || // . + i === 44 || // , + i === 45 || // - + i === 58 || // : + i === 95) { // _ + + safe[i] = null; + } + } + + return safe; +}()); diff --git a/node_modules/@hapi/hoek/lib/escapeJson.js b/node_modules/@hapi/hoek/lib/escapeJson.js new file mode 100755 index 0000000..e6e94b3 --- /dev/null +++ b/node_modules/@hapi/hoek/lib/escapeJson.js @@ -0,0 +1,41 @@ +'use strict'; + +const internals = {}; + + +module.exports = function (input) { + + if (!input) { + return ''; + } + + const lessThan = 0x3C; + const greaterThan = 0x3E; + const andSymbol = 0x26; + const lineSeperator = 0x2028; + + // replace method + let charCode; + return input.replace(/[<>&\u2028\u2029]/g, (match) => { + + charCode = match.charCodeAt(0); + + if (charCode === lessThan) { + return '\\u003c'; + } + + if (charCode === greaterThan) { + return '\\u003e'; + } + + if (charCode === andSymbol) { + return '\\u0026'; + } + + if (charCode === lineSeperator) { + return '\\u2028'; + } + + return '\\u2029'; + }); +}; diff --git a/node_modules/@hapi/hoek/lib/escapeRegex.js b/node_modules/@hapi/hoek/lib/escapeRegex.js new file mode 100755 index 0000000..3272497 --- /dev/null +++ b/node_modules/@hapi/hoek/lib/escapeRegex.js @@ -0,0 +1,11 @@ +'use strict'; + +const internals = {}; + + +module.exports = function (string) { + + // Escape ^$.*+-?=!:|\/()[]{}, + + return string.replace(/[\^\$\.\*\+\-\?\=\!\:\|\\\/\(\)\[\]\{\}\,]/g, '\\$&'); +}; diff --git a/node_modules/@hapi/hoek/lib/flatten.js b/node_modules/@hapi/hoek/lib/flatten.js new file mode 100755 index 0000000..726e231 --- /dev/null +++ b/node_modules/@hapi/hoek/lib/flatten.js @@ -0,0 +1,20 @@ +'use strict'; + +const internals = {}; + + +module.exports = internals.flatten = function (array, target) { + + const result = target || []; + + for (let i = 0; i < array.length; ++i) { + if (Array.isArray(array[i])) { + internals.flatten(array[i], result); + } + else { + result.push(array[i]); + } + } + + return result; +}; diff --git a/node_modules/@hapi/hoek/lib/ignore.js b/node_modules/@hapi/hoek/lib/ignore.js new file mode 100755 index 0000000..21ad144 --- /dev/null +++ b/node_modules/@hapi/hoek/lib/ignore.js @@ -0,0 +1,6 @@ +'use strict'; + +const internals = {}; + + +module.exports = function () { }; diff --git a/node_modules/@hapi/hoek/lib/index.d.ts b/node_modules/@hapi/hoek/lib/index.d.ts new file mode 100755 index 0000000..e9bcdc2 --- /dev/null +++ b/node_modules/@hapi/hoek/lib/index.d.ts @@ -0,0 +1,471 @@ +/// + + +/** + * Performs a deep comparison of the two values including support for circular dependencies, prototype, and enumerable properties. + * + * @param obj - The value being compared. + * @param ref - The reference value used for comparison. + * + * @return true when the two values are equal, otherwise false. + */ +export function deepEqual(obj: any, ref: any, options?: deepEqual.Options): boolean; + +export namespace deepEqual { + + interface Options { + + /** + * Compare functions with difference references by comparing their internal code and properties. + * + * @default false + */ + readonly deepFunction?: boolean; + + /** + * Allow partial match. + * + * @default false + */ + readonly part?: boolean; + + /** + * Compare the objects' prototypes. + * + * @default true + */ + readonly prototype?: boolean; + + /** + * List of object keys to ignore different values of. + * + * @default null + */ + readonly skip?: (string | symbol)[]; + + /** + * Compare symbol properties. + * + * @default true + */ + readonly symbols?: boolean; + } +} + + +/** + * Clone any value, object, or array. + * + * @param obj - The value being cloned. + * @param options - Optional settings. + * + * @returns A deep clone of `obj`. + */ +export function clone(obj: T, options?: clone.Options): T; + +export namespace clone { + + interface Options { + + /** + * Clone the object's prototype. + * + * @default true + */ + readonly prototype?: boolean; + + /** + * Include symbol properties. + * + * @default true + */ + readonly symbols?: boolean; + + /** + * Shallow clone the specified keys. + * + * @default undefined + */ + readonly shallow?: string[] | string[][] | boolean; + } +} + + +/** + * Merge all the properties of source into target. + * + * @param target - The object being modified. + * @param source - The object used to copy properties from. + * @param options - Optional settings. + * + * @returns The `target` object. + */ +export function merge(target: T1, source: T2, options?: merge.Options): T1 & T2; + +export namespace merge { + + interface Options { + + /** + * When true, null value from `source` overrides existing value in `target`. + * + * @default true + */ + readonly nullOverride?: boolean; + + /** + * When true, array value from `source` is merged with the existing value in `target`. + * + * @default false + */ + readonly mergeArrays?: boolean; + + /** + * Compare symbol properties. + * + * @default true + */ + readonly symbols?: boolean; + } +} + + +/** + * Apply source to a copy of the defaults. + * + * @param defaults - An object with the default values to use of `options` does not contain the same keys. + * @param source - The source used to override the `defaults`. + * @param options - Optional settings. + * + * @returns A copy of `defaults` with `source` keys overriding any conflicts. + */ +export function applyToDefaults(defaults: Partial, source: Partial | boolean | null, options?: applyToDefaults.Options): Partial; + +export namespace applyToDefaults { + + interface Options { + + /** + * When true, null value from `source` overrides existing value in `target`. + * + * @default true + */ + readonly nullOverride?: boolean; + + /** + * Shallow clone the specified keys. + * + * @default undefined + */ + readonly shallow?: string[] | string[][]; + } +} + + +/** + * Find the common unique items in two arrays. + * + * @param array1 - The first array to compare. + * @param array2 - The second array to compare. + * @param options - Optional settings. + * + * @return - An array of the common items. If `justFirst` is true, returns the first common item. + */ +export function intersect(array1: intersect.Array, array2: intersect.Array, options?: intersect.Options): Array; +export function intersect(array1: intersect.Array, array2: intersect.Array, options?: intersect.Options): T1 | T2; + +export namespace intersect { + + type Array = ArrayLike | Set | null; + + interface Options { + + /** + * When true, return the first overlapping value. + * + * @default false + */ + readonly first?: boolean; + } +} + + +/** + * Checks if the reference value contains the provided values. + * + * @param ref - The reference string, array, or object. + * @param values - A single or array of values to find within `ref`. If `ref` is an object, `values` can be a key name, an array of key names, or an object with key-value pairs to compare. + * + * @return true if the value contains the provided values, otherwise false. + */ +export function contain(ref: string, values: string | string[], options?: contain.Options): boolean; +export function contain(ref: any[], values: any, options?: contain.Options): boolean; +export function contain(ref: object, values: string | string[] | object, options?: Omit): boolean; + +export namespace contain { + + interface Options { + + /** + * Perform a deep comparison. + * + * @default false + */ + readonly deep?: boolean; + + /** + * Allow only one occurrence of each value. + * + * @default false + */ + readonly once?: boolean; + + /** + * Allow only values explicitly listed. + * + * @default false + */ + readonly only?: boolean; + + /** + * Allow partial match. + * + * @default false + */ + readonly part?: boolean; + + /** + * Include symbol properties. + * + * @default true + */ + readonly symbols?: boolean; + } +} + + +/** + * Flatten an array with sub arrays + * + * @param array - an array of items or other arrays to flatten. + * @param target - if provided, an array to shallow copy the flattened `array` items to + * + * @return a flat array of the provided values (appended to `target` is provided). + */ +export function flatten(array: ArrayLike>, target?: ArrayLike>): T[]; + + +/** + * Convert an object key chain string to reference. + * + * @param obj - the object from which to look up the value. + * @param chain - the string path of the requested value. The chain string is split into key names using `options.separator`, or an array containing each individual key name. A chain including negative numbers will work like a negative index on an array. + * + * @return The value referenced by the chain if found, otherwise undefined. If chain is null, undefined, or false, the object itself will be returned. + */ +export function reach(obj: object | null, chain: string | (string | number)[] | false | null | undefined, options?: reach.Options): any; + +export namespace reach { + + interface Options { + + /** + * String to split chain path on. Defaults to '.'. + * + * @default false + */ + readonly separator?: string; + + /** + * Value to return if the path or value is not present. No default value. + * + * @default false + */ + readonly default?: any; + + /** + * If true, will throw an error on missing member in the chain. Default to false. + * + * @default false + */ + readonly strict?: boolean; + + /** + * If true, allows traversing functions for properties. false will throw an error if a function is part of the chain. + * + * @default true + */ + readonly functions?: boolean; + + /** + * If true, allows traversing Set and Map objects for properties. false will return undefined regardless of the Set or Map passed. + * + * @default false + */ + readonly iterables?: boolean; + } +} + + +/** + * Replace string parameters (using format "{path.to.key}") with their corresponding object key values using `Hoek.reach()`. + * + * @param obj - the object from which to look up the value. + * @param template - the string containing {} enclosed key paths to be replaced. + * + * @return The template string with the {} enclosed keys replaced with looked-up values. + */ +export function reachTemplate(obj: object | null, template: string, options?: reach.Options): string; + + +/** + * Throw an error if condition is falsy. + * + * @param condition - If `condition` is not truthy, an exception is thrown. + * @param error - The error thrown if the condition fails. + * + * @return Does not return a value but throws if the `condition` is falsy. + */ +export function assert(condition: any, error: Error): void; + + +/** + * Throw an error if condition is falsy. + * + * @param condition - If `condition` is not truthy, an exception is thrown. + * @param args - Any number of values, concatenated together (space separated) to create the error message. + * + * @return Does not return a value but throws if the `condition` is falsy. + */ +export function assert(condition: any, ...args: any): void; + + +/** + * A benchmarking timer, using the internal node clock for maximum accuracy. + */ +export class Bench { + + constructor(); + + /** The starting timestamp expressed in the number of milliseconds since the epoch. */ + ts: number; + + /** The time in milliseconds since the object was created. */ + elapsed(): number; + + /** Reset the `ts` value to now. */ + reset(): void; + + /** The current time in milliseconds since the epoch. */ + static now(): number; +} + + +/** + * Escape string for Regex construction by prefixing all reserved characters with a backslash. + * + * @param string - The string to be escaped. + * + * @return The escaped string. + */ +export function escapeRegex(string: string): string; + + +/** + * Escape string for usage as an attribute value in HTTP headers. + * + * @param attribute - The string to be escaped. + * + * @return The escaped string. Will throw on invalid characters that are not supported to be escaped. + */ +export function escapeHeaderAttribute(attribute: string): string; + + +/** + * Escape string for usage in HTML. + * + * @param string - The string to be escaped. + * + * @return The escaped string. + */ +export function escapeHtml(string: string): string; + + +/** + * Escape string for usage in JSON. + * + * @param string - The string to be escaped. + * + * @return The escaped string. + */ +export function escapeJson(string: string): string; + + +/** + * Wraps a function to ensure it can only execute once. + * + * @param method - The function to be wrapped. + * + * @return The wrapped function. + */ +export function once(method: T): T; + + +/** + * A reusable no-op function. + */ +export function ignore(...ignore: any): void; + + +/** + * Converts a JavaScript value to a JavaScript Object Notation (JSON) string with protection against thrown errors. + * + * @param value A JavaScript value, usually an object or array, to be converted. + * @param replacer The JSON.stringify() `replacer` argument. + * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read. + * + * @return The JSON string. If the operation fails, an error string value is returned (no exception thrown). + */ +export function stringify(value: any, replacer?: any, space?: string | number): string; + + +/** + * Returns a Promise that resolves after the requested timeout. + * + * @param timeout - The number of milliseconds to wait before resolving the Promise. + * @param returnValue - The value that the Promise will resolve to. + * + * @return A Promise that resolves with `returnValue`. + */ +export function wait(timeout?: number, returnValue?: T): Promise; + + +/** + * Returns a Promise that never resolves. + */ +export function block(): Promise; + + +/** + * Determines if an object is a promise. + * + * @param promise - the object tested. + * + * @returns true if the object is a promise, otherwise false. + */ +export function isPromise(promise: any): boolean; + + +export namespace ts { + + /** + * Defines a type that can must be one of T or U but not both. + */ + type XOR = (T | U) extends object ? (internals.Without & U) | (internals.Without & T) : T | U; +} + + +declare namespace internals { + + type Without = { [P in Exclude]?: never }; +} diff --git a/node_modules/@hapi/hoek/lib/index.js b/node_modules/@hapi/hoek/lib/index.js new file mode 100755 index 0000000..ea06269 --- /dev/null +++ b/node_modules/@hapi/hoek/lib/index.js @@ -0,0 +1,29 @@ +'use strict'; + +const internals = {}; + + +module.exports = { + applyToDefaults: require('./applyToDefaults'), + assert: require('./assert'), + Bench: require('./bench'), + block: require('./block'), + clone: require('./clone'), + contain: require('./contain'), + deepEqual: require('./deepEqual'), + Error: require('./error'), + escapeHeaderAttribute: require('./escapeHeaderAttribute'), + escapeHtml: require('./escapeHtml'), + escapeJson: require('./escapeJson'), + escapeRegex: require('./escapeRegex'), + flatten: require('./flatten'), + ignore: require('./ignore'), + intersect: require('./intersect'), + isPromise: require('./isPromise'), + merge: require('./merge'), + once: require('./once'), + reach: require('./reach'), + reachTemplate: require('./reachTemplate'), + stringify: require('./stringify'), + wait: require('./wait') +}; diff --git a/node_modules/@hapi/hoek/lib/intersect.js b/node_modules/@hapi/hoek/lib/intersect.js new file mode 100755 index 0000000..59e6aaf --- /dev/null +++ b/node_modules/@hapi/hoek/lib/intersect.js @@ -0,0 +1,41 @@ +'use strict'; + +const internals = {}; + + +module.exports = function (array1, array2, options = {}) { + + if (!array1 || + !array2) { + + return (options.first ? null : []); + } + + const common = []; + const hash = (Array.isArray(array1) ? new Set(array1) : array1); + const found = new Set(); + for (const value of array2) { + if (internals.has(hash, value) && + !found.has(value)) { + + if (options.first) { + return value; + } + + common.push(value); + found.add(value); + } + } + + return (options.first ? null : common); +}; + + +internals.has = function (ref, key) { + + if (typeof ref.has === 'function') { + return ref.has(key); + } + + return ref[key] !== undefined; +}; diff --git a/node_modules/@hapi/hoek/lib/isPromise.js b/node_modules/@hapi/hoek/lib/isPromise.js new file mode 100755 index 0000000..4029804 --- /dev/null +++ b/node_modules/@hapi/hoek/lib/isPromise.js @@ -0,0 +1,9 @@ +'use strict'; + +const internals = {}; + + +module.exports = function (promise) { + + return !!promise && typeof promise.then === 'function'; +}; diff --git a/node_modules/@hapi/hoek/lib/merge.js b/node_modules/@hapi/hoek/lib/merge.js new file mode 100755 index 0000000..47a1e1e --- /dev/null +++ b/node_modules/@hapi/hoek/lib/merge.js @@ -0,0 +1,78 @@ +'use strict'; + +const Assert = require('./assert'); +const Clone = require('./clone'); +const Utils = require('./utils'); + + +const internals = {}; + + +module.exports = internals.merge = function (target, source, options) { + + Assert(target && typeof target === 'object', 'Invalid target value: must be an object'); + Assert(source === null || source === undefined || typeof source === 'object', 'Invalid source value: must be null, undefined, or an object'); + + if (!source) { + return target; + } + + options = Object.assign({ nullOverride: true, mergeArrays: true }, options); + + if (Array.isArray(source)) { + Assert(Array.isArray(target), 'Cannot merge array onto an object'); + if (!options.mergeArrays) { + target.length = 0; // Must not change target assignment + } + + for (let i = 0; i < source.length; ++i) { + target.push(Clone(source[i], { symbols: options.symbols })); + } + + return target; + } + + const keys = Utils.keys(source, options); + for (let i = 0; i < keys.length; ++i) { + const key = keys[i]; + if (key === '__proto__' || + !Object.prototype.propertyIsEnumerable.call(source, key)) { + + continue; + } + + const value = source[key]; + if (value && + typeof value === 'object') { + + if (target[key] === value) { + continue; // Can occur for shallow merges + } + + if (!target[key] || + typeof target[key] !== 'object' || + (Array.isArray(target[key]) !== Array.isArray(value)) || + value instanceof Date || + (Buffer && Buffer.isBuffer(value)) || // $lab:coverage:ignore$ + value instanceof RegExp) { + + target[key] = Clone(value, { symbols: options.symbols }); + } + else { + internals.merge(target[key], value, options); + } + } + else { + if (value !== null && + value !== undefined) { // Explicit to preserve empty strings + + target[key] = value; + } + else if (options.nullOverride) { + target[key] = value; + } + } + } + + return target; +}; diff --git a/node_modules/@hapi/hoek/lib/once.js b/node_modules/@hapi/hoek/lib/once.js new file mode 100755 index 0000000..de94ea0 --- /dev/null +++ b/node_modules/@hapi/hoek/lib/once.js @@ -0,0 +1,23 @@ +'use strict'; + +const internals = {}; + + +module.exports = function (method) { + + if (method._hoekOnce) { + return method; + } + + let once = false; + const wrapped = function (...args) { + + if (!once) { + once = true; + method(...args); + } + }; + + wrapped._hoekOnce = true; + return wrapped; +}; diff --git a/node_modules/@hapi/hoek/lib/reach.js b/node_modules/@hapi/hoek/lib/reach.js new file mode 100755 index 0000000..3791b37 --- /dev/null +++ b/node_modules/@hapi/hoek/lib/reach.js @@ -0,0 +1,76 @@ +'use strict'; + +const Assert = require('./assert'); + + +const internals = {}; + + +module.exports = function (obj, chain, options) { + + if (chain === false || + chain === null || + chain === undefined) { + + return obj; + } + + options = options || {}; + if (typeof options === 'string') { + options = { separator: options }; + } + + const isChainArray = Array.isArray(chain); + + Assert(!isChainArray || !options.separator, 'Separator option no valid for array-based chain'); + + const path = isChainArray ? chain : chain.split(options.separator || '.'); + let ref = obj; + for (let i = 0; i < path.length; ++i) { + let key = path[i]; + const type = options.iterables && internals.iterables(ref); + + if (Array.isArray(ref) || + type === 'set') { + + const number = Number(key); + if (Number.isInteger(number)) { + key = number < 0 ? ref.length + number : number; + } + } + + if (!ref || + typeof ref === 'function' && options.functions === false || // Defaults to true + !type && ref[key] === undefined) { + + Assert(!options.strict || i + 1 === path.length, 'Missing segment', key, 'in reach path ', chain); + Assert(typeof ref === 'object' || options.functions === true || typeof ref !== 'function', 'Invalid segment', key, 'in reach path ', chain); + ref = options.default; + break; + } + + if (!type) { + ref = ref[key]; + } + else if (type === 'set') { + ref = [...ref][key]; + } + else { // type === 'map' + ref = ref.get(key); + } + } + + return ref; +}; + + +internals.iterables = function (ref) { + + if (ref instanceof Set) { + return 'set'; + } + + if (ref instanceof Map) { + return 'map'; + } +}; diff --git a/node_modules/@hapi/hoek/lib/reachTemplate.js b/node_modules/@hapi/hoek/lib/reachTemplate.js new file mode 100755 index 0000000..e48ac40 --- /dev/null +++ b/node_modules/@hapi/hoek/lib/reachTemplate.js @@ -0,0 +1,16 @@ +'use strict'; + +const Reach = require('./reach'); + + +const internals = {}; + + +module.exports = function (obj, template, options) { + + return template.replace(/{([^}]+)}/g, ($0, chain) => { + + const value = Reach(obj, chain, options); + return (value === undefined || value === null ? '' : value); + }); +}; diff --git a/node_modules/@hapi/hoek/lib/stringify.js b/node_modules/@hapi/hoek/lib/stringify.js new file mode 100755 index 0000000..88d0fc4 --- /dev/null +++ b/node_modules/@hapi/hoek/lib/stringify.js @@ -0,0 +1,14 @@ +'use strict'; + +const internals = {}; + + +module.exports = function (...args) { + + try { + return JSON.stringify.apply(null, args); + } + catch (err) { + return '[Cannot display object: ' + err.message + ']'; + } +}; diff --git a/node_modules/@hapi/hoek/lib/types.js b/node_modules/@hapi/hoek/lib/types.js new file mode 100755 index 0000000..c291b65 --- /dev/null +++ b/node_modules/@hapi/hoek/lib/types.js @@ -0,0 +1,55 @@ +'use strict'; + +const internals = {}; + + +exports = module.exports = { + array: Array.prototype, + buffer: Buffer && Buffer.prototype, // $lab:coverage:ignore$ + date: Date.prototype, + error: Error.prototype, + generic: Object.prototype, + map: Map.prototype, + promise: Promise.prototype, + regex: RegExp.prototype, + set: Set.prototype, + weakMap: WeakMap.prototype, + weakSet: WeakSet.prototype +}; + + +internals.typeMap = new Map([ + ['[object Error]', exports.error], + ['[object Map]', exports.map], + ['[object Promise]', exports.promise], + ['[object Set]', exports.set], + ['[object WeakMap]', exports.weakMap], + ['[object WeakSet]', exports.weakSet] +]); + + +exports.getInternalProto = function (obj) { + + if (Array.isArray(obj)) { + return exports.array; + } + + if (Buffer && obj instanceof Buffer) { // $lab:coverage:ignore$ + return exports.buffer; + } + + if (obj instanceof Date) { + return exports.date; + } + + if (obj instanceof RegExp) { + return exports.regex; + } + + if (obj instanceof Error) { + return exports.error; + } + + const objName = Object.prototype.toString.call(obj); + return internals.typeMap.get(objName) || exports.generic; +}; diff --git a/node_modules/@hapi/hoek/lib/utils.js b/node_modules/@hapi/hoek/lib/utils.js new file mode 100755 index 0000000..bab1e8c --- /dev/null +++ b/node_modules/@hapi/hoek/lib/utils.js @@ -0,0 +1,9 @@ +'use strict'; + +const internals = {}; + + +exports.keys = function (obj, options = {}) { + + return options.symbols !== false ? Reflect.ownKeys(obj) : Object.getOwnPropertyNames(obj); // Defaults to true +}; diff --git a/node_modules/@hapi/hoek/lib/wait.js b/node_modules/@hapi/hoek/lib/wait.js new file mode 100755 index 0000000..f34585e --- /dev/null +++ b/node_modules/@hapi/hoek/lib/wait.js @@ -0,0 +1,13 @@ +'use strict'; + +const internals = {}; + + +module.exports = function (timeout, returnValue) { + + if (typeof timeout !== 'number' && timeout !== undefined) { + throw new TypeError('Timeout must be a number'); + } + + return new Promise((resolve) => setTimeout(resolve, timeout, returnValue)); +}; diff --git a/node_modules/@hapi/hoek/package.json b/node_modules/@hapi/hoek/package.json new file mode 100755 index 0000000..c24cda2 --- /dev/null +++ b/node_modules/@hapi/hoek/package.json @@ -0,0 +1,59 @@ +{ + "_from": "@hapi/hoek@^9.0.0", + "_id": "@hapi/hoek@9.1.0", + "_inBundle": false, + "_integrity": "sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw==", + "_location": "/@hapi/hoek", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "@hapi/hoek@^9.0.0", + "name": "@hapi/hoek", + "escapedName": "@hapi%2fhoek", + "scope": "@hapi", + "rawSpec": "^9.0.0", + "saveSpec": null, + "fetchSpec": "^9.0.0" + }, + "_requiredBy": [ + "/@hapi/topo", + "/@sideway/address", + "/joi" + ], + "_resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.0.tgz", + "_shasum": "6c9eafc78c1529248f8f4d92b0799a712b6052c6", + "_spec": "@hapi/hoek@^9.0.0", + "_where": "/home/wyrihaximus/Projects/WyriHaximus/github-action-helm3/node_modules/joi", + "bugs": { + "url": "https://github.com/hapijs/hoek/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "General purpose node utilities", + "devDependencies": { + "@hapi/code": "8.x.x", + "@hapi/lab": "^23.0.0" + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/hapijs/hoek#readme", + "keywords": [ + "utilities" + ], + "license": "BSD-3-Clause", + "main": "lib/index.js", + "name": "@hapi/hoek", + "repository": { + "type": "git", + "url": "git://github.com/hapijs/hoek.git" + }, + "scripts": { + "test": "lab -a @hapi/code -t 100 -L -Y", + "test-cov-html": "lab -a @hapi/code -t 100 -L -r html -o coverage.html" + }, + "types": "lib/index.d.ts", + "version": "9.1.0" +} diff --git a/node_modules/@hapi/joi/CHANGELOG.md b/node_modules/@hapi/joi/CHANGELOG.md new file mode 100644 index 0000000..5771955 --- /dev/null +++ b/node_modules/@hapi/joi/CHANGELOG.md @@ -0,0 +1,3 @@ +Breaking changes are documented using GitHub issues, see [issues labeled "release notes"](https://github.com/hapijs/joi/issues?q=is%3Aissue+label%3A%22release+notes%22). + +If you want changes of a specific minor or patch release, you can browse the [GitHub milestones](https://github.com/hapijs/joi/milestones?state=closed&direction=asc&sort=due_date). diff --git a/node_modules/@hapi/joi/LICENSE.md b/node_modules/@hapi/joi/LICENSE.md new file mode 100755 index 0000000..aa2404c --- /dev/null +++ b/node_modules/@hapi/joi/LICENSE.md @@ -0,0 +1,10 @@ +Copyright (c) 2012-2019, Sideway Inc, and project contributors +Copyright (c) 2012-2014, Walmart. +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 OFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/@hapi/joi/README.md b/node_modules/@hapi/joi/README.md new file mode 100644 index 0000000..75d282e --- /dev/null +++ b/node_modules/@hapi/joi/README.md @@ -0,0 +1,125 @@ + + +# joi + +Object schema description language and validator for JavaScript objects. + +[![Build Status](https://travis-ci.org/hapijs/joi.svg?branch=master)](https://travis-ci.org/hapijs/joi) + +## Introduction + +Imagine you run facebook and you want visitors to sign up on the website with real names and not something like `l337_p@nda` in the first name field. How would you define the limitations of what can be inputted and validate it against the set rules? + +This is joi, joi allows you to create *blueprints* or *schemas* for JavaScript objects (an object that stores information) to ensure *validation* of key information. + +# Installation + +```cli + npm install --save @hapi/joi + ``` + +## API +See the detailed [API Reference](https://github.com/hapijs/joi/blob/v15.1.0/API.md). + +## Example + +```javascript +const Joi = require('@hapi/joi'); + +const schema = Joi.object().keys({ + username: Joi.string().alphanum().min(3).max(30).required(), + password: Joi.string().regex(/^[a-zA-Z0-9]{3,30}$/), + access_token: [Joi.string(), Joi.number()], + birthyear: Joi.number().integer().min(1900).max(2013), + email: Joi.string().email({ minDomainSegments: 2 }) +}).with('username', 'birthyear').without('password', 'access_token'); + +// Return result. +const result = Joi.validate({ username: 'abc', birthyear: 1994 }, schema); +// result.error === null -> valid + +// You can also pass a callback which will be called synchronously with the validation result. +Joi.validate({ username: 'abc', birthyear: 1994 }, schema, function (err, value) { }); // err === null -> valid + +``` + +The above schema defines the following constraints: +* `username` + * a required string + * must contain only alphanumeric characters + * at least 3 characters long but no more than 30 + * must be accompanied by `birthyear` +* `password` + * an optional string + * must satisfy the custom regex + * cannot appear together with `access_token` +* `access_token` + * an optional, unconstrained string or number +* `birthyear` + * an integer between 1900 and 2013 +* `email` + * a valid email address string + * must have two domain parts e.g. `example.com` + +## Usage + +Usage is a two steps process. First, a schema is constructed using the provided types and constraints: + +```javascript +const schema = { + a: Joi.string() +}; +``` + +Note that **joi** schema objects are immutable which means every additional rule added (e.g. `.min(5)`) will return a +new schema object. + +Second, the value is validated against the defined schema: + +```javascript +const {error, value} = Joi.validate({ a: 'a string' }, schema); + +// or + +Joi.validate({ a: 'a string' }, schema, function (error, value) { }); +``` + +If the input is valid, then the `error` will be `null`, otherwise it will be an `Error` object providing more information. + +The schema can be a plain JavaScript object where every key is assigned a **joi** type, or it can be a **joi** type directly: + +```javascript +const schema = Joi.string().min(10); +``` + +If the schema is a **joi** type, the `schema.validate(value, callback)` can be called directly on the type. When passing a non-type schema object, +the module converts it internally to an object() type equivalent to: + +```javascript +const schema = Joi.object().keys({ + a: Joi.string() +}); +``` + +When validating a schema: + +* Values (or keys in case of objects) are optional by default. + + ```javascript + Joi.validate(undefined, Joi.string()); // validates fine + ``` + + To disallow this behavior, you can either set the schema as `required()`, or set `presence` to `"required"` when passing `options`: + + ```javascript + Joi.validate(undefined, Joi.string().required()); + // or + Joi.validate(undefined, Joi.string(), /* options */ { presence: "required" }); + ``` + +* Strings are utf-8 encoded by default. +* Rules are defined in an additive fashion and evaluated in order, first the inclusive rules, then the exclusive rules. + +## Browsers + +Joi doesn't directly support browsers, but you could use [joi-browser](https://github.com/jeffbski/joi-browser) for an ES5 build of Joi that works in browsers, or as a source of inspiration for your own builds. diff --git a/node_modules/@hapi/joi/lib/cast.js b/node_modules/@hapi/joi/lib/cast.js new file mode 100755 index 0000000..142510a --- /dev/null +++ b/node_modules/@hapi/joi/lib/cast.js @@ -0,0 +1,59 @@ +'use strict'; + +const Hoek = require('@hapi/hoek'); + +const Ref = require('./ref'); + + +const internals = {}; + + +exports.schema = function (Joi, config) { + + if (config !== undefined && config !== null && typeof config === 'object') { + + if (config.isJoi) { + return config; + } + + if (Array.isArray(config)) { + return Joi.alternatives().try(config); + } + + if (config instanceof RegExp) { + return Joi.string().regex(config); + } + + if (config instanceof Date) { + return Joi.date().valid(config); + } + + return Joi.object().keys(config); + } + + if (typeof config === 'string') { + return Joi.string().valid(config); + } + + if (typeof config === 'number') { + return Joi.number().valid(config); + } + + if (typeof config === 'boolean') { + return Joi.boolean().valid(config); + } + + if (Ref.isRef(config)) { + return Joi.valid(config); + } + + Hoek.assert(config === null, 'Invalid schema content:', config); + + return Joi.valid(null); +}; + + +exports.ref = function (id) { + + return Ref.isRef(id) ? id : Ref.create(id); +}; diff --git a/node_modules/@hapi/joi/lib/errors.js b/node_modules/@hapi/joi/lib/errors.js new file mode 100755 index 0000000..7a96000 --- /dev/null +++ b/node_modules/@hapi/joi/lib/errors.js @@ -0,0 +1,372 @@ +'use strict'; + +const Hoek = require('@hapi/hoek'); + +const Language = require('./language'); + + +const internals = { + annotations: Symbol('joi-annotations') +}; + + +internals.stringify = function (value, wrapArrays) { + + const type = typeof value; + + if (value === null) { + return 'null'; + } + + if (type === 'string') { + return value; + } + + if (value instanceof exports.Err || type === 'function' || type === 'symbol') { + return value.toString(); + } + + if (type === 'object') { + if (Array.isArray(value)) { + let partial = ''; + + for (let i = 0; i < value.length; ++i) { + partial = partial + (partial.length ? ', ' : '') + internals.stringify(value[i], wrapArrays); + } + + return wrapArrays ? '[' + partial + ']' : partial; + } + + return value.toString(); + } + + return JSON.stringify(value); +}; + + +exports.Err = class { + + constructor(type, context, state, options, flags, message, template) { + + this.isJoi = true; + this.type = type; + this.context = context || {}; + this.context.key = state.path[state.path.length - 1]; + this.context.label = state.key; + this.path = state.path; + this.options = options; + this.flags = flags; + this.message = message; + this.template = template; + + const localized = this.options.language; + + if (this.flags.label) { + this.context.label = this.flags.label; + } + else if (localized && // language can be null for arrays exclusion check + (this.context.label === '' || + this.context.label === null)) { + this.context.label = localized.root || Language.errors.root; + } + } + + toString() { + + if (this.message) { + return this.message; + } + + let format; + + if (this.template) { + format = this.template; + } + + const localized = this.options.language; + + format = format || Hoek.reach(localized, this.type) || Hoek.reach(Language.errors, this.type); + + if (format === undefined) { + return `Error code "${this.type}" is not defined, your custom type is missing the correct language definition`; + } + + let wrapArrays = Hoek.reach(localized, 'messages.wrapArrays'); + if (typeof wrapArrays !== 'boolean') { + wrapArrays = Language.errors.messages.wrapArrays; + } + + if (format === null) { + const childrenString = internals.stringify(this.context.reason, wrapArrays); + if (wrapArrays) { + return childrenString.slice(1, -1); + } + + return childrenString; + } + + const hasKey = /{{!?label}}/.test(format); + const skipKey = format.length > 2 && format[0] === '!' && format[1] === '!'; + + if (skipKey) { + format = format.slice(2); + } + + if (!hasKey && !skipKey) { + const localizedKey = Hoek.reach(localized, 'key'); + if (typeof localizedKey === 'string') { + format = localizedKey + format; + } + else { + format = Hoek.reach(Language.errors, 'key') + format; + } + } + + const message = format.replace(/{{(!?)([^}]+)}}/g, ($0, isSecure, name) => { + + const value = Hoek.reach(this.context, name); + const normalized = internals.stringify(value, wrapArrays); + return (isSecure && this.options.escapeHtml ? Hoek.escapeHtml(normalized) : normalized); + }); + + this.toString = () => message; // Persist result of last toString call, it won't change + + return message; + } + +}; + + +exports.create = function (type, context, state, options, flags, message, template) { + + return new exports.Err(type, context, state, options, flags, message, template); +}; + + +exports.process = function (errors, object) { + + if (!errors) { + return null; + } + + // Construct error + + let message = ''; + const details = []; + + const processErrors = function (localErrors, parent, overrideMessage) { + + for (let i = 0; i < localErrors.length; ++i) { + const item = localErrors[i]; + + if (item instanceof Error) { + return item; + } + + if (item.flags.error && typeof item.flags.error !== 'function') { + if (!item.flags.selfError || !item.context.reason) { + return item.flags.error; + } + } + + let itemMessage; + if (parent === undefined) { + itemMessage = item.toString(); + message = message + (message ? '. ' : '') + itemMessage; + } + + // Do not push intermediate errors, we're only interested in leafs + + if (item.context.reason) { + const override = processErrors(item.context.reason, item.path, item.type === 'override' ? item.message : null); + if (override) { + return override; + } + } + else { + details.push({ + message: overrideMessage || itemMessage || item.toString(), + path: item.path, + type: item.type, + context: item.context + }); + } + } + }; + + const override = processErrors(errors); + if (override) { + return override; + } + + const error = new Error(message); + error.isJoi = true; + error.name = 'ValidationError'; + error.details = details; + error._object = object; + error.annotate = internals.annotate; + return error; +}; + + +// Inspired by json-stringify-safe + +internals.safeStringify = function (obj, spaces) { + + return JSON.stringify(obj, internals.serializer(), spaces); +}; + + +internals.serializer = function () { + + const keys = []; + const stack = []; + + const cycleReplacer = (key, value) => { + + if (stack[0] === value) { + return '[Circular ~]'; + } + + return '[Circular ~.' + keys.slice(0, stack.indexOf(value)).join('.') + ']'; + }; + + return function (key, value) { + + if (stack.length > 0) { + const thisPos = stack.indexOf(this); + if (~thisPos) { + stack.length = thisPos + 1; + keys.length = thisPos + 1; + keys[thisPos] = key; + } + else { + stack.push(this); + keys.push(key); + } + + if (~stack.indexOf(value)) { + value = cycleReplacer.call(this, key, value); + } + } + else { + stack.push(value); + } + + if (value) { + const annotations = value[internals.annotations]; + if (annotations) { + if (Array.isArray(value)) { + const annotated = []; + + for (let i = 0; i < value.length; ++i) { + if (annotations.errors[i]) { + annotated.push(`_$idx$_${annotations.errors[i].sort().join(', ')}_$end$_`); + } + + annotated.push(value[i]); + } + + value = annotated; + } + else { + const errorKeys = Object.keys(annotations.errors); + for (let i = 0; i < errorKeys.length; ++i) { + const errorKey = errorKeys[i]; + value[`${errorKey}_$key$_${annotations.errors[errorKey].sort().join(', ')}_$end$_`] = value[errorKey]; + value[errorKey] = undefined; + } + + const missingKeys = Object.keys(annotations.missing); + for (let i = 0; i < missingKeys.length; ++i) { + const missingKey = missingKeys[i]; + value[`_$miss$_${missingKey}|${annotations.missing[missingKey]}_$end$_`] = '__missing__'; + } + } + + return value; + } + } + + if (value === Infinity || value === -Infinity || Number.isNaN(value) || + typeof value === 'function' || typeof value === 'symbol') { + return '[' + value.toString() + ']'; + } + + return value; + }; +}; + + +internals.annotate = function (stripColorCodes) { + + const redFgEscape = stripColorCodes ? '' : '\u001b[31m'; + const redBgEscape = stripColorCodes ? '' : '\u001b[41m'; + const endColor = stripColorCodes ? '' : '\u001b[0m'; + + if (typeof this._object !== 'object') { + return this.details[0].message; + } + + const obj = Hoek.clone(this._object || {}); + + for (let i = this.details.length - 1; i >= 0; --i) { // Reverse order to process deepest child first + const pos = i + 1; + const error = this.details[i]; + const path = error.path; + let ref = obj; + for (let j = 0; ; ++j) { + const seg = path[j]; + + if (ref.isImmutable) { + ref = ref.clone(); // joi schemas are not cloned by hoek, we have to take this extra step + } + + if (j + 1 < path.length && + ref[seg] && + typeof ref[seg] !== 'string') { + + ref = ref[seg]; + } + else { + const refAnnotations = ref[internals.annotations] = ref[internals.annotations] || { errors: {}, missing: {} }; + const value = ref[seg]; + const cacheKey = seg || error.context.label; + + if (value !== undefined) { + refAnnotations.errors[cacheKey] = refAnnotations.errors[cacheKey] || []; + refAnnotations.errors[cacheKey].push(pos); + } + else { + refAnnotations.missing[cacheKey] = pos; + } + + break; + } + } + } + + const replacers = { + key: /_\$key\$_([, \d]+)_\$end\$_"/g, + missing: /"_\$miss\$_([^|]+)\|(\d+)_\$end\$_": "__missing__"/g, + arrayIndex: /\s*"_\$idx\$_([, \d]+)_\$end\$_",?\n(.*)/g, + specials: /"\[(NaN|Symbol.*|-?Infinity|function.*|\(.*)]"/g + }; + + let message = internals.safeStringify(obj, 2) + .replace(replacers.key, ($0, $1) => `" ${redFgEscape}[${$1}]${endColor}`) + .replace(replacers.missing, ($0, $1, $2) => `${redBgEscape}"${$1}"${endColor}${redFgEscape} [${$2}]: -- missing --${endColor}`) + .replace(replacers.arrayIndex, ($0, $1, $2) => `\n${$2} ${redFgEscape}[${$1}]${endColor}`) + .replace(replacers.specials, ($0, $1) => $1); + + message = `${message}\n${redFgEscape}`; + + for (let i = 0; i < this.details.length; ++i) { + const pos = i + 1; + message = `${message}\n[${pos}] ${this.details[i].message}`; + } + + message = message + endColor; + + return message; +}; diff --git a/node_modules/@hapi/joi/lib/index.js b/node_modules/@hapi/joi/lib/index.js new file mode 100755 index 0000000..5ec9c5a --- /dev/null +++ b/node_modules/@hapi/joi/lib/index.js @@ -0,0 +1,478 @@ +'use strict'; + +const Hoek = require('@hapi/hoek'); + +const Any = require('./types/any'); +const Cast = require('./cast'); +const Errors = require('./errors'); +const Lazy = require('./types/lazy'); +const Ref = require('./ref'); + + +const internals = { + alternatives: require('./types/alternatives'), + array: require('./types/array'), + boolean: require('./types/boolean'), + binary: require('./types/binary'), + date: require('./types/date'), + func: require('./types/func'), + number: require('./types/number'), + object: require('./types/object'), + string: require('./types/string'), + symbol: require('./types/symbol') +}; + + +internals.callWithDefaults = function (schema, args) { + + Hoek.assert(this, 'Must be invoked on a Joi instance.'); + + if (this._defaults) { + schema = this._defaults(schema); + } + + schema._currentJoi = this; + + return schema._init(...args); +}; + + +internals.root = function () { + + const any = new Any(); + + const root = any.clone(); + Any.prototype._currentJoi = root; + root._currentJoi = root; + root._binds = new Set(['any', 'alternatives', 'alt', 'array', 'bool', 'boolean', 'binary', 'date', 'func', 'number', 'object', 'string', 'symbol', 'validate', 'describe', 'compile', 'assert', 'attempt', 'lazy', 'defaults', 'extend', 'allow', 'valid', 'only', 'equal', 'invalid', 'disallow', 'not', 'required', 'exist', 'optional', 'forbidden', 'strip', 'when', 'empty', 'default']); + + root.any = function (...args) { + + Hoek.assert(args.length === 0, 'Joi.any() does not allow arguments.'); + + return internals.callWithDefaults.call(this, any, args); + }; + + root.alternatives = root.alt = function (...args) { + + return internals.callWithDefaults.call(this, internals.alternatives, args); + }; + + root.array = function (...args) { + + Hoek.assert(args.length === 0, 'Joi.array() does not allow arguments.'); + + return internals.callWithDefaults.call(this, internals.array, args); + }; + + root.boolean = root.bool = function (...args) { + + Hoek.assert(args.length === 0, 'Joi.boolean() does not allow arguments.'); + + return internals.callWithDefaults.call(this, internals.boolean, args); + }; + + root.binary = function (...args) { + + Hoek.assert(args.length === 0, 'Joi.binary() does not allow arguments.'); + + return internals.callWithDefaults.call(this, internals.binary, args); + }; + + root.date = function (...args) { + + Hoek.assert(args.length === 0, 'Joi.date() does not allow arguments.'); + + return internals.callWithDefaults.call(this, internals.date, args); + }; + + root.func = function (...args) { + + Hoek.assert(args.length === 0, 'Joi.func() does not allow arguments.'); + + return internals.callWithDefaults.call(this, internals.func, args); + }; + + root.number = function (...args) { + + Hoek.assert(args.length === 0, 'Joi.number() does not allow arguments.'); + + return internals.callWithDefaults.call(this, internals.number, args); + }; + + root.object = function (...args) { + + return internals.callWithDefaults.call(this, internals.object, args); + }; + + root.string = function (...args) { + + Hoek.assert(args.length === 0, 'Joi.string() does not allow arguments.'); + + return internals.callWithDefaults.call(this, internals.string, args); + }; + + root.symbol = function (...args) { + + Hoek.assert(args.length === 0, 'Joi.symbol() does not allow arguments.'); + + return internals.callWithDefaults.call(this, internals.symbol, args); + }; + + root.ref = function (...args) { + + return Ref.create(...args); + }; + + root.isRef = function (ref) { + + return Ref.isRef(ref); + }; + + root.validate = function (value, ...args /*, [schema], [options], callback */) { + + const last = args[args.length - 1]; + const callback = typeof last === 'function' ? last : null; + + const count = args.length - (callback ? 1 : 0); + if (count === 0) { + return any.validate(value, callback); + } + + const options = count === 2 ? args[1] : undefined; + const schema = this.compile(args[0]); + + return schema._validateWithOptions(value, options, callback); + }; + + root.describe = function (...args) { + + const schema = args.length ? this.compile(args[0]) : any; + return schema.describe(); + }; + + root.compile = function (schema) { + + try { + return Cast.schema(this, schema); + } + catch (err) { + if (err.hasOwnProperty('path')) { + err.message = err.message + '(' + err.path + ')'; + } + + throw err; + } + }; + + root.assert = function (value, schema, message) { + + this.attempt(value, schema, message); + }; + + root.attempt = function (value, schema, message) { + + const result = this.validate(value, schema); + const error = result.error; + if (error) { + if (!message) { + if (typeof error.annotate === 'function') { + error.message = error.annotate(); + } + + throw error; + } + + if (!(message instanceof Error)) { + if (typeof error.annotate === 'function') { + error.message = `${message} ${error.annotate()}`; + } + + throw error; + } + + throw message; + } + + return result.value; + }; + + root.reach = function (schema, path) { + + Hoek.assert(schema && schema instanceof Any, 'you must provide a joi schema'); + Hoek.assert(Array.isArray(path) || typeof path === 'string', 'path must be a string or an array of strings'); + + const reach = (sourceSchema, schemaPath) => { + + if (!schemaPath.length) { + return sourceSchema; + } + + const children = sourceSchema._inner.children; + if (!children) { + return; + } + + const key = schemaPath.shift(); + for (let i = 0; i < children.length; ++i) { + const child = children[i]; + if (child.key === key) { + return reach(child.schema, schemaPath); + } + } + }; + + const schemaPath = typeof path === 'string' ? (path ? path.split('.') : []) : path.slice(); + + return reach(schema, schemaPath); + }; + + root.lazy = function (...args) { + + return internals.callWithDefaults.call(this, Lazy, args); + }; + + root.defaults = function (fn) { + + Hoek.assert(typeof fn === 'function', 'Defaults must be a function'); + + let joi = Object.create(this.any()); + joi = fn(joi); + + Hoek.assert(joi && joi instanceof this.constructor, 'defaults() must return a schema'); + + Object.assign(joi, this, joi.clone()); // Re-add the types from `this` but also keep the settings from joi's potential new defaults + + joi._defaults = (schema) => { + + if (this._defaults) { + schema = this._defaults(schema); + Hoek.assert(schema instanceof this.constructor, 'defaults() must return a schema'); + } + + schema = fn(schema); + Hoek.assert(schema instanceof this.constructor, 'defaults() must return a schema'); + return schema; + }; + + return joi; + }; + + root.bind = function () { + + const joi = Object.create(this); + + joi._binds.forEach((bind) => { + + joi[bind] = joi[bind].bind(joi); + }); + + return joi; + }; + + root.extend = function (...args) { + + const extensions = Hoek.flatten(args); + Hoek.assert(extensions.length > 0, 'You need to provide at least one extension'); + + this.assert(extensions, root.extensionsSchema); + + const joi = Object.create(this.any()); + Object.assign(joi, this); + joi._currentJoi = joi; + joi._binds = new Set(joi._binds); + + for (let i = 0; i < extensions.length; ++i) { + let extension = extensions[i]; + + if (typeof extension === 'function') { + extension = extension(joi); + } + + this.assert(extension, root.extensionSchema); + + const base = (extension.base || this.any()).clone(); // Cloning because we're going to override language afterwards + const ctor = base.constructor; + const type = class extends ctor { // eslint-disable-line no-loop-func + + constructor() { + + super(); + if (extension.base) { + Object.assign(this, base); + } + + this._type = extension.name; + } + + }; + + if (extension.language) { + const lang = { + [extension.name]: extension.language + }; + type.prototype._language = Hoek.applyToDefaults(type.prototype._language || (base._settings && base._settings.language) || {}, lang); + } + + + if (extension.coerce) { + type.prototype._coerce = function (value, state, options) { + + if (ctor.prototype._coerce) { + const baseRet = ctor.prototype._coerce.call(this, value, state, options); + + if (baseRet.errors) { + return baseRet; + } + + value = baseRet.value; + } + + const ret = extension.coerce.call(this, value, state, options); + if (ret instanceof Errors.Err) { + return { value, errors: ret }; + } + + return { value: ret }; + }; + } + + if (extension.pre) { + type.prototype._base = function (value, state, options) { + + if (ctor.prototype._base) { + const baseRet = ctor.prototype._base.call(this, value, state, options); + + if (baseRet.errors) { + return baseRet; + } + + value = baseRet.value; + } + + const ret = extension.pre.call(this, value, state, options); + if (ret instanceof Errors.Err) { + return { value, errors: ret }; + } + + return { value: ret }; + }; + } + + if (extension.rules) { + for (let j = 0; j < extension.rules.length; ++j) { + const rule = extension.rules[j]; + const ruleArgs = rule.params ? + (rule.params instanceof Any ? rule.params._inner.children.map((k) => k.key) : Object.keys(rule.params)) : + []; + const validateArgs = rule.params ? Cast.schema(this, rule.params) : null; + + type.prototype[rule.name] = function (...rArgs) { // eslint-disable-line no-loop-func + + if (rArgs.length > ruleArgs.length) { + throw new Error('Unexpected number of arguments'); + } + + let hasRef = false; + let arg = {}; + + for (let k = 0; k < ruleArgs.length; ++k) { + arg[ruleArgs[k]] = rArgs[k]; + if (!hasRef && Ref.isRef(rArgs[k])) { + hasRef = true; + } + } + + if (validateArgs) { + arg = joi.attempt(arg, validateArgs); + } + + let schema; + if (rule.validate && !rule.setup) { + const validate = function (value, state, options) { + + return rule.validate.call(this, arg, value, state, options); + }; + + schema = this._test(rule.name, arg, validate, { + description: rule.description, + hasRef + }); + } + else { + schema = this.clone(); + } + + if (rule.setup) { + const newSchema = rule.setup.call(schema, arg); + if (newSchema !== undefined) { + Hoek.assert(newSchema instanceof Any, `Setup of extension Joi.${this._type}().${rule.name}() must return undefined or a Joi object`); + schema = newSchema; + } + + if (rule.validate) { + const validate = function (value, state, options) { + + return rule.validate.call(this, arg, value, state, options); + }; + + schema = schema._test(rule.name, arg, validate, { + description: rule.description, + hasRef + }); + } + } + + return schema; + }; + } + } + + if (extension.describe) { + type.prototype.describe = function () { + + const description = ctor.prototype.describe.call(this); + return extension.describe.call(this, description); + }; + } + + const instance = new type(); + joi[extension.name] = function (...extArgs) { + + return internals.callWithDefaults.call(this, instance, extArgs); + }; + + joi._binds.add(extension.name); + } + + return joi; + }; + + root.extensionSchema = internals.object.keys({ + base: internals.object.type(Any, 'Joi object'), + name: internals.string.required(), + coerce: internals.func.arity(3), + pre: internals.func.arity(3), + language: internals.object, + describe: internals.func.arity(1), + rules: internals.array.items(internals.object.keys({ + name: internals.string.required(), + setup: internals.func.arity(1), + validate: internals.func.arity(4), + params: [ + internals.object.pattern(/.*/, internals.object.type(Any, 'Joi object')), + internals.object.type(internals.object.constructor, 'Joi object') + ], + description: [internals.string, internals.func.arity(1)] + }).or('setup', 'validate')) + }).strict(); + + root.extensionsSchema = internals.array.items([internals.object, internals.func.arity(1)]).strict(); + + root.version = require('../package.json').version; + + return root; +}; + + +module.exports = internals.root(); diff --git a/node_modules/@hapi/joi/lib/language.js b/node_modules/@hapi/joi/lib/language.js new file mode 100755 index 0000000..5798a03 --- /dev/null +++ b/node_modules/@hapi/joi/lib/language.js @@ -0,0 +1,161 @@ +'use strict'; + +const internals = {}; + + +exports.errors = { + root: 'value', + key: '"{{!label}}" ', + messages: { + wrapArrays: true + }, + any: { + unknown: 'is not allowed', + invalid: 'contains an invalid value', + empty: 'is not allowed to be empty', + required: 'is required', + allowOnly: 'must be one of {{valids}}', + default: 'threw an error when running default method' + }, + alternatives: { + base: 'not matching any of the allowed alternatives', + child: null + }, + array: { + base: 'must be an array', + includes: 'at position {{pos}} does not match any of the allowed types', + includesSingle: 'single value of "{{!label}}" does not match any of the allowed types', + includesOne: 'at position {{pos}} fails because {{reason}}', + includesOneSingle: 'single value of "{{!label}}" fails because {{reason}}', + includesRequiredUnknowns: 'does not contain {{unknownMisses}} required value(s)', + includesRequiredKnowns: 'does not contain {{knownMisses}}', + includesRequiredBoth: 'does not contain {{knownMisses}} and {{unknownMisses}} other required value(s)', + excludes: 'at position {{pos}} contains an excluded value', + excludesSingle: 'single value of "{{!label}}" contains an excluded value', + hasKnown: 'does not contain at least one required match for type "{{!patternLabel}}"', + hasUnknown: 'does not contain at least one required match', + min: 'must contain at least {{limit}} items', + max: 'must contain less than or equal to {{limit}} items', + length: 'must contain {{limit}} items', + ordered: 'at position {{pos}} fails because {{reason}}', + orderedLength: 'at position {{pos}} fails because array must contain at most {{limit}} items', + ref: 'references "{{ref}}" which is not a positive integer', + sparse: 'must not be a sparse array', + unique: 'position {{pos}} contains a duplicate value' + }, + boolean: { + base: 'must be a boolean' + }, + binary: { + base: 'must be a buffer or a string', + min: 'must be at least {{limit}} bytes', + max: 'must be less than or equal to {{limit}} bytes', + length: 'must be {{limit}} bytes' + }, + date: { + base: 'must be a number of milliseconds or valid date string', + strict: 'must be a valid date', + min: 'must be larger than or equal to "{{limit}}"', + max: 'must be less than or equal to "{{limit}}"', + less: 'must be less than "{{limit}}"', + greater: 'must be greater than "{{limit}}"', + isoDate: 'must be a valid ISO 8601 date', + timestamp: { + javascript: 'must be a valid timestamp or number of milliseconds', + unix: 'must be a valid timestamp or number of seconds' + }, + ref: 'references "{{ref}}" which is not a date' + }, + function: { + base: 'must be a Function', + arity: 'must have an arity of {{n}}', + minArity: 'must have an arity greater or equal to {{n}}', + maxArity: 'must have an arity lesser or equal to {{n}}', + ref: 'must be a Joi reference', + class: 'must be a class' + }, + lazy: { + base: '!!schema error: lazy schema must be set', + schema: '!!schema error: lazy schema function must return a schema' + }, + object: { + base: 'must be an object', + child: '!!child "{{!child}}" fails because {{reason}}', + min: 'must have at least {{limit}} children', + max: 'must have less than or equal to {{limit}} children', + length: 'must have {{limit}} children', + allowUnknown: '!!"{{!child}}" is not allowed', + with: '!!"{{mainWithLabel}}" missing required peer "{{peerWithLabel}}"', + without: '!!"{{mainWithLabel}}" conflict with forbidden peer "{{peerWithLabel}}"', + missing: 'must contain at least one of {{peersWithLabels}}', + xor: 'contains a conflict between exclusive peers {{peersWithLabels}}', + oxor: 'contains a conflict between optional exclusive peers {{peersWithLabels}}', + and: 'contains {{presentWithLabels}} without its required peers {{missingWithLabels}}', + nand: '!!"{{mainWithLabel}}" must not exist simultaneously with {{peersWithLabels}}', + assert: '!!"{{ref}}" validation failed because "{{ref}}" failed to {{message}}', + rename: { + multiple: 'cannot rename child "{{from}}" because multiple renames are disabled and another key was already renamed to "{{to}}"', + override: 'cannot rename child "{{from}}" because override is disabled and target "{{to}}" exists', + regex: { + multiple: 'cannot rename children {{from}} because multiple renames are disabled and another key was already renamed to "{{to}}"', + override: 'cannot rename children {{from}} because override is disabled and target "{{to}}" exists' + } + }, + type: 'must be an instance of "{{type}}"', + schema: 'must be a Joi instance' + }, + number: { + base: 'must be a number', + unsafe: 'must be a safe number', + min: 'must be larger than or equal to {{limit}}', + max: 'must be less than or equal to {{limit}}', + less: 'must be less than {{limit}}', + greater: 'must be greater than {{limit}}', + integer: 'must be an integer', + negative: 'must be a negative number', + positive: 'must be a positive number', + precision: 'must have no more than {{limit}} decimal places', + ref: 'references "{{ref}}" which is not a number', + multiple: 'must be a multiple of {{multiple}}', + port: 'must be a valid port' + }, + string: { + base: 'must be a string', + min: 'length must be at least {{limit}} characters long', + max: 'length must be less than or equal to {{limit}} characters long', + length: 'length must be {{limit}} characters long', + alphanum: 'must only contain alpha-numeric characters', + token: 'must only contain alpha-numeric and underscore characters', + regex: { + base: 'with value "{{!value}}" fails to match the required pattern: {{pattern}}', + name: 'with value "{{!value}}" fails to match the {{name}} pattern', + invert: { + base: 'with value "{{!value}}" matches the inverted pattern: {{pattern}}', + name: 'with value "{{!value}}" matches the inverted {{name}} pattern' + } + }, + email: 'must be a valid email', + uri: 'must be a valid uri', + uriRelativeOnly: 'must be a valid relative uri', + uriCustomScheme: 'must be a valid uri with a scheme matching the {{scheme}} pattern', + isoDate: 'must be a valid ISO 8601 date', + guid: 'must be a valid GUID', + hex: 'must only contain hexadecimal characters', + hexAlign: 'hex decoded representation must be byte aligned', + base64: 'must be a valid base64 string', + dataUri: 'must be a valid dataUri string', + hostname: 'must be a valid hostname', + normalize: 'must be unicode normalized in the {{form}} form', + lowercase: 'must only contain lowercase characters', + uppercase: 'must only contain uppercase characters', + trim: 'must not have leading or trailing whitespace', + creditCard: 'must be a credit card', + ref: 'references "{{ref}}" which is not a number', + ip: 'must be a valid ip address with a {{cidr}} CIDR', + ipVersion: 'must be a valid ip address of one of the following versions {{version}} with a {{cidr}} CIDR' + }, + symbol: { + base: 'must be a symbol', + map: 'must be one of {{map}}' + } +}; diff --git a/node_modules/@hapi/joi/lib/ref.js b/node_modules/@hapi/joi/lib/ref.js new file mode 100755 index 0000000..20bfe23 --- /dev/null +++ b/node_modules/@hapi/joi/lib/ref.js @@ -0,0 +1,49 @@ +'use strict'; + +const Hoek = require('@hapi/hoek'); + + +const internals = {}; + + +exports.create = function (key, options) { + + Hoek.assert(typeof key === 'string', 'Invalid reference key:', key); + + const settings = Hoek.clone(options); // options can be reused and modified + + const ref = function (value, validationOptions) { + + return Hoek.reach(ref.isContext ? validationOptions.context : value, ref.key, settings); + }; + + ref.isContext = (key[0] === ((settings && settings.contextPrefix) || '$')); + ref.key = (ref.isContext ? key.slice(1) : key); + ref.path = ref.key.split((settings && settings.separator) || '.'); + ref.depth = ref.path.length; + ref.root = ref.path[0]; + ref.isJoi = true; + + ref.toString = function () { + + return (ref.isContext ? 'context:' : 'ref:') + ref.key; + }; + + return ref; +}; + + +exports.isRef = function (ref) { + + return typeof ref === 'function' && ref.isJoi; +}; + + +exports.push = function (array, ref) { + + if (exports.isRef(ref) && + !ref.isContext) { + + array.push(ref.root); + } +}; diff --git a/node_modules/@hapi/joi/lib/schemas.js b/node_modules/@hapi/joi/lib/schemas.js new file mode 100755 index 0000000..2c4f554 --- /dev/null +++ b/node_modules/@hapi/joi/lib/schemas.js @@ -0,0 +1,20 @@ +'use strict'; + +const Joi = require('./index'); + + +const internals = {}; + + +exports.options = Joi.object({ + abortEarly: Joi.boolean(), + convert: Joi.boolean(), + allowUnknown: Joi.boolean(), + skipFunctions: Joi.boolean(), + stripUnknown: [Joi.boolean(), Joi.object({ arrays: Joi.boolean(), objects: Joi.boolean() }).or('arrays', 'objects')], + language: Joi.object(), + presence: Joi.string().only('required', 'optional', 'forbidden', 'ignore'), + context: Joi.object(), + noDefaults: Joi.boolean(), + escapeHtml: Joi.boolean() +}).strict(); diff --git a/node_modules/@hapi/joi/lib/set.js b/node_modules/@hapi/joi/lib/set.js new file mode 100644 index 0000000..3a8c213 --- /dev/null +++ b/node_modules/@hapi/joi/lib/set.js @@ -0,0 +1,191 @@ +'use strict'; + +const Ref = require('./ref'); + + +const internals = {}; + + +internals.extendedCheckForValue = function (value, insensitive) { + + const valueType = typeof value; + + if (valueType === 'object') { + if (value instanceof Date) { + return (item) => { + + return item instanceof Date && value.getTime() === item.getTime(); + }; + } + + if (Buffer.isBuffer(value)) { + return (item) => { + + return Buffer.isBuffer(item) && value.length === item.length && value.toString('binary') === item.toString('binary'); + }; + } + } + else if (insensitive && valueType === 'string') { + const lowercaseValue = value.toLowerCase(); + return (item) => { + + return typeof item === 'string' && lowercaseValue === item.toLowerCase(); + }; + } + + return null; +}; + + +module.exports = class InternalSet { + + constructor(from) { + + this._set = new Set(from); + this._hasRef = false; + } + + add(value, refs) { + + const isRef = Ref.isRef(value); + if (!isRef && this.has(value, null, null, false)) { + + return this; + } + + if (refs !== undefined) { // If it's a merge, we don't have any refs + Ref.push(refs, value); + } + + this._set.add(value); + + this._hasRef |= isRef; + + return this; + } + + merge(add, remove) { + + for (const item of add._set) { + this.add(item); + } + + for (const item of remove._set) { + this.remove(item); + } + + return this; + } + + remove(value) { + + this._set.delete(value); + return this; + } + + has(value, state, options, insensitive) { + + return !!this.get(value, state, options, insensitive); + } + + get(value, state, options, insensitive) { + + if (!this._set.size) { + return false; + } + + const hasValue = this._set.has(value); + if (hasValue) { + return { value }; + } + + const extendedCheck = internals.extendedCheckForValue(value, insensitive); + if (!extendedCheck) { + if (state && this._hasRef) { + for (let item of this._set) { + if (Ref.isRef(item)) { + item = [].concat(item(state.reference || state.parent, options)); + const found = item.indexOf(value); + if (found >= 0) { + return { value: item[found] }; + } + } + } + } + + return false; + } + + return this._has(value, state, options, extendedCheck); + } + + _has(value, state, options, check) { + + const checkRef = !!(state && this._hasRef); + + const isReallyEqual = function (item) { + + if (value === item) { + return true; + } + + return check(item); + }; + + for (let item of this._set) { + if (checkRef && Ref.isRef(item)) { // Only resolve references if there is a state, otherwise it's a merge + item = item(state.reference || state.parent, options); + + if (Array.isArray(item)) { + const found = item.findIndex(isReallyEqual); + if (found >= 0) { + return { + value: item[found] + }; + } + + continue; + } + } + + if (isReallyEqual(item)) { + return { + value: item + }; + } + } + + return false; + } + + values(options) { + + if (options && options.stripUndefined) { + const values = []; + + for (const item of this._set) { + if (item !== undefined) { + values.push(item); + } + } + + return values; + } + + return Array.from(this._set); + } + + slice() { + + const set = new InternalSet(this._set); + set._hasRef = this._hasRef; + return set; + } + + concat(source) { + + const set = new InternalSet([...this._set, ...source._set]); + set._hasRef = !!(this._hasRef | source._hasRef); + return set; + } +}; diff --git a/node_modules/@hapi/joi/lib/types/alternatives/index.js b/node_modules/@hapi/joi/lib/types/alternatives/index.js new file mode 100755 index 0000000..a820474 --- /dev/null +++ b/node_modules/@hapi/joi/lib/types/alternatives/index.js @@ -0,0 +1,215 @@ +'use strict'; + +const Hoek = require('@hapi/hoek'); + +const Any = require('../any'); +const Cast = require('../../cast'); +const Ref = require('../../ref'); + + +const internals = {}; + + +internals.Alternatives = class extends Any { + + constructor() { + + super(); + this._type = 'alternatives'; + this._invalids.remove(null); + this._inner.matches = []; + } + + _init(...args) { + + return args.length ? this.try(...args) : this; + } + + _base(value, state, options) { + + const errors = []; + const il = this._inner.matches.length; + const baseType = this._baseType; + + for (let i = 0; i < il; ++i) { + const item = this._inner.matches[i]; + if (!item.schema) { + const schema = item.peek || item.is; + const input = item.is ? item.ref(state.reference || state.parent, options) : value; + const failed = schema._validate(input, null, options, state.parent).errors; + + if (failed) { + if (item.otherwise) { + return item.otherwise._validate(value, state, options); + } + } + else if (item.then) { + return item.then._validate(value, state, options); + } + + if (i === (il - 1) && baseType) { + return baseType._validate(value, state, options); + } + + continue; + } + + const result = item.schema._validate(value, state, options); + if (!result.errors) { // Found a valid match + return result; + } + + errors.push(...result.errors); + } + + if (errors.length) { + return { errors: this.createError('alternatives.child', { reason: errors }, state, options) }; + } + + return { errors: this.createError('alternatives.base', null, state, options) }; + } + + try(...schemas) { + + schemas = Hoek.flatten(schemas); + Hoek.assert(schemas.length, 'Cannot add other alternatives without at least one schema'); + + const obj = this.clone(); + + for (let i = 0; i < schemas.length; ++i) { + const cast = Cast.schema(this._currentJoi, schemas[i]); + if (cast._refs.length) { + obj._refs.push(...cast._refs); + } + + obj._inner.matches.push({ schema: cast }); + } + + return obj; + } + + when(condition, options) { + + let schemaCondition = false; + Hoek.assert(Ref.isRef(condition) || typeof condition === 'string' || (schemaCondition = condition instanceof Any), 'Invalid condition:', condition); + Hoek.assert(options, 'Missing options'); + Hoek.assert(typeof options === 'object', 'Invalid options'); + if (schemaCondition) { + Hoek.assert(!options.hasOwnProperty('is'), '"is" can not be used with a schema condition'); + } + else { + Hoek.assert(options.hasOwnProperty('is'), 'Missing "is" directive'); + } + + Hoek.assert(options.then !== undefined || options.otherwise !== undefined, 'options must have at least one of "then" or "otherwise"'); + + const obj = this.clone(); + let is; + if (!schemaCondition) { + is = Cast.schema(this._currentJoi, options.is); + + if (options.is === null || !(Ref.isRef(options.is) || options.is instanceof Any)) { + + // Only apply required if this wasn't already a schema or a ref, we'll suppose people know what they're doing + is = is.required(); + } + } + + const item = { + ref: schemaCondition ? null : Cast.ref(condition), + peek: schemaCondition ? condition : null, + is, + then: options.then !== undefined ? Cast.schema(this._currentJoi, options.then) : undefined, + otherwise: options.otherwise !== undefined ? Cast.schema(this._currentJoi, options.otherwise) : undefined + }; + + if (obj._baseType) { + + item.then = item.then && obj._baseType.concat(item.then); + item.otherwise = item.otherwise && obj._baseType.concat(item.otherwise); + } + + if (!schemaCondition) { + Ref.push(obj._refs, item.ref); + obj._refs.push(...item.is._refs); + } + + if (item.then && item.then._refs.length) { + obj._refs.push(...item.then._refs); + } + + if (item.otherwise && item.otherwise._refs.length) { + obj._refs.push(...item.otherwise._refs); + } + + obj._inner.matches.push(item); + + return obj; + } + + label(name) { + + const obj = super.label(name); + obj._inner.matches = obj._inner.matches.map((match) => { + + if (match.schema) { + return { schema: match.schema.label(name) }; + } + + match = Object.assign({}, match); + if (match.then) { + match.then = match.then.label(name); + } + + if (match.otherwise) { + match.otherwise = match.otherwise.label(name); + } + + return match; + }); + return obj; + } + + describe() { + + const description = super.describe(); + const alternatives = []; + for (let i = 0; i < this._inner.matches.length; ++i) { + const item = this._inner.matches[i]; + if (item.schema) { + + // try() + + alternatives.push(item.schema.describe()); + } + else { + + // when() + + const when = item.is ? { + ref: item.ref.toString(), + is: item.is.describe() + } : { + peek: item.peek.describe() + }; + + if (item.then) { + when.then = item.then.describe(); + } + + if (item.otherwise) { + when.otherwise = item.otherwise.describe(); + } + + alternatives.push(when); + } + } + + description.alternatives = alternatives; + return description; + } + +}; + + +module.exports = new internals.Alternatives(); diff --git a/node_modules/@hapi/joi/lib/types/any/index.js b/node_modules/@hapi/joi/lib/types/any/index.js new file mode 100755 index 0000000..a53ef8a --- /dev/null +++ b/node_modules/@hapi/joi/lib/types/any/index.js @@ -0,0 +1,984 @@ +'use strict'; + +const Hoek = require('@hapi/hoek'); + +const Cast = require('../../cast'); +const Settings = require('./settings'); +const Ref = require('../../ref'); +const Errors = require('../../errors'); +const State = require('../state'); +const Symbols = require('../symbols'); + +const Pkg = require('../../../package.json'); + +let Alternatives = null; // Delay-loaded to prevent circular dependencies +let Schemas = null; + + +const internals = { + Set: require('../../set'), + symbol: Symbol.for('@hapi/joi/schema') +}; + + +internals.defaults = { + abortEarly: true, + convert: true, + allowUnknown: false, + skipFunctions: false, + stripUnknown: false, + language: {}, + presence: 'optional', + noDefaults: false, + escapeHtml: false + + // context: null +}; + + +module.exports = internals.Any = class { + + constructor() { + + this.isJoi = true; + this._type = 'any'; + this._settings = null; + this._valids = new internals.Set(); + this._invalids = new internals.Set(); + this._tests = []; + this._refs = []; + this._flags = { + /* + presence: 'optional', // optional, required, forbidden, ignore + allowOnly: false, + allowUnknown: undefined, + default: undefined, + forbidden: false, + encoding: undefined, + insensitive: false, + trim: false, + normalize: undefined, // NFC, NFD, NFKC, NFKD + case: undefined, // upper, lower + empty: undefined, + func: false, + raw: false + */ + }; + + this._description = null; + this._unit = null; + this._notes = []; + this._tags = []; + this._examples = []; + this._meta = []; + + this._inner = {}; // Hash of arrays of immutable objects + } + + _init() { + + return this; + } + + get schemaType() { + + return this._type; + } + + createError(type, context, state, options, flags = this._flags) { + + return Errors.create(type, context, state, options, flags); + } + + createOverrideError(type, context, state, options, message, template) { + + return Errors.create(type, context, state, options, this._flags, message, template); + } + + checkOptions(options) { + + Schemas = Schemas || require('../../schemas'); + + const result = Schemas.options.validate(options); + + if (result.error) { + throw new Error(result.error.details[0].message); + } + } + + clone() { + + const obj = Object.create(Object.getPrototypeOf(this)); + + obj.isJoi = true; + obj._currentJoi = this._currentJoi; + obj._type = this._type; + obj._settings = this._settings; + obj._baseType = this._baseType; + obj._valids = this._valids.slice(); + obj._invalids = this._invalids.slice(); + obj._tests = this._tests.slice(); + obj._refs = this._refs.slice(); + obj._flags = Hoek.clone(this._flags); + + obj._description = this._description; + obj._unit = this._unit; + obj._notes = this._notes.slice(); + obj._tags = this._tags.slice(); + obj._examples = this._examples.slice(); + obj._meta = this._meta.slice(); + + obj._inner = {}; + const inners = Object.keys(this._inner); + for (let i = 0; i < inners.length; ++i) { + const key = inners[i]; + obj._inner[key] = this._inner[key] ? this._inner[key].slice() : null; + } + + return obj; + } + + concat(schema) { + + Hoek.assert(schema instanceof internals.Any, 'Invalid schema object'); + Hoek.assert(this._type === 'any' || schema._type === 'any' || schema._type === this._type, 'Cannot merge type', this._type, 'with another type:', schema._type); + + let obj = this.clone(); + + if (this._type === 'any' && schema._type !== 'any') { + + // Reset values as if we were "this" + const tmpObj = schema.clone(); + const keysToRestore = ['_settings', '_valids', '_invalids', '_tests', '_refs', '_flags', '_description', '_unit', + '_notes', '_tags', '_examples', '_meta', '_inner']; + + for (let i = 0; i < keysToRestore.length; ++i) { + tmpObj[keysToRestore[i]] = obj[keysToRestore[i]]; + } + + obj = tmpObj; + } + + obj._settings = obj._settings ? Settings.concat(obj._settings, schema._settings) : schema._settings; + obj._valids.merge(schema._valids, schema._invalids); + obj._invalids.merge(schema._invalids, schema._valids); + obj._tests.push(...schema._tests); + obj._refs.push(...schema._refs); + if (obj._flags.empty && schema._flags.empty) { + obj._flags.empty = obj._flags.empty.concat(schema._flags.empty); + const flags = Object.assign({}, schema._flags); + delete flags.empty; + Hoek.merge(obj._flags, flags); + } + else if (schema._flags.empty) { + obj._flags.empty = schema._flags.empty; + const flags = Object.assign({}, schema._flags); + delete flags.empty; + Hoek.merge(obj._flags, flags); + } + else { + Hoek.merge(obj._flags, schema._flags); + } + + obj._description = schema._description || obj._description; + obj._unit = schema._unit || obj._unit; + obj._notes.push(...schema._notes); + obj._tags.push(...schema._tags); + obj._examples.push(...schema._examples); + obj._meta.push(...schema._meta); + + const inners = Object.keys(schema._inner); + const isObject = obj._type === 'object'; + for (let i = 0; i < inners.length; ++i) { + const key = inners[i]; + const source = schema._inner[key]; + if (source) { + const target = obj._inner[key]; + if (target) { + if (isObject && key === 'children') { + const keys = {}; + + for (let j = 0; j < target.length; ++j) { + keys[target[j].key] = j; + } + + for (let j = 0; j < source.length; ++j) { + const sourceKey = source[j].key; + if (keys[sourceKey] >= 0) { + target[keys[sourceKey]] = { + key: sourceKey, + schema: target[keys[sourceKey]].schema.concat(source[j].schema) + }; + } + else { + target.push(source[j]); + } + } + } + else { + obj._inner[key] = obj._inner[key].concat(source); + } + } + else { + obj._inner[key] = source.slice(); + } + } + } + + return obj; + } + + _test(name, arg, func, options) { + + const obj = this.clone(); + obj._tests.push({ func, name, arg, options }); + return obj; + } + + _testUnique(name, arg, func, options) { + + const obj = this.clone(); + obj._tests = obj._tests.filter((test) => test.name !== name); + obj._tests.push({ func, name, arg, options }); + return obj; + } + + options(options) { + + Hoek.assert(!options.context, 'Cannot override context'); + this.checkOptions(options); + + const obj = this.clone(); + obj._settings = Settings.concat(obj._settings, options); + return obj; + } + + strict(isStrict) { + + const obj = this.clone(); + + const convert = isStrict === undefined ? false : !isStrict; + obj._settings = Settings.concat(obj._settings, { convert }); + return obj; + } + + raw(isRaw) { + + const value = isRaw === undefined ? true : isRaw; + + if (this._flags.raw === value) { + return this; + } + + const obj = this.clone(); + obj._flags.raw = value; + return obj; + } + + error(err, options = { self: false }) { + + Hoek.assert(err && (err instanceof Error || typeof err === 'function'), 'Must provide a valid Error object or a function'); + + const unknownKeys = Object.keys(options).filter((k) => !['self'].includes(k)); + Hoek.assert(unknownKeys.length === 0, `Options ${unknownKeys} are unknown`); + + const obj = this.clone(); + obj._flags.error = err; + + if (options.self) { + obj._flags.selfError = true; + } + + return obj; + } + + allow(...values) { + + const obj = this.clone(); + values = Hoek.flatten(values); + for (let i = 0; i < values.length; ++i) { + const value = values[i]; + + Hoek.assert(value !== undefined, 'Cannot call allow/valid/invalid with undefined'); + obj._invalids.remove(value); + obj._valids.add(value, obj._refs); + } + + return obj; + } + + valid(...values) { + + const obj = this.allow(...values); + obj._flags.allowOnly = true; + return obj; + } + + invalid(...values) { + + const obj = this.clone(); + values = Hoek.flatten(values); + for (let i = 0; i < values.length; ++i) { + const value = values[i]; + + Hoek.assert(value !== undefined, 'Cannot call allow/valid/invalid with undefined'); + obj._valids.remove(value); + obj._invalids.add(value, obj._refs); + } + + return obj; + } + + required() { + + if (this._flags.presence === 'required') { + return this; + } + + const obj = this.clone(); + obj._flags.presence = 'required'; + return obj; + } + + optional() { + + if (this._flags.presence === 'optional') { + return this; + } + + const obj = this.clone(); + obj._flags.presence = 'optional'; + return obj; + } + + + forbidden() { + + if (this._flags.presence === 'forbidden') { + return this; + } + + const obj = this.clone(); + obj._flags.presence = 'forbidden'; + return obj; + } + + + strip() { + + if (this._flags.strip) { + return this; + } + + const obj = this.clone(); + obj._flags.strip = true; + return obj; + } + + applyFunctionToChildren(children, fn, args = [], root) { + + children = [].concat(children); + + if (children.length !== 1 || children[0] !== '') { + root = root ? (root + '.') : ''; + + const extraChildren = (children[0] === '' ? children.slice(1) : children).map((child) => { + + return root + child; + }); + + throw new Error('unknown key(s) ' + extraChildren.join(', ')); + } + + return this[fn](...args); + } + + default(value, description) { + + if (typeof value === 'function' && + !Ref.isRef(value)) { + + if (!value.description && + description) { + + value.description = description; + } + + if (!this._flags.func) { + Hoek.assert(typeof value.description === 'string' && value.description.length > 0, 'description must be provided when default value is a function'); + } + } + + const obj = this.clone(); + obj._flags.default = value; + Ref.push(obj._refs, value); + return obj; + } + + empty(schema) { + + const obj = this.clone(); + if (schema === undefined) { + delete obj._flags.empty; + } + else { + obj._flags.empty = Cast.schema(this._currentJoi, schema); + } + + return obj; + } + + when(condition, options) { + + Hoek.assert(options && typeof options === 'object', 'Invalid options'); + Hoek.assert(options.then !== undefined || options.otherwise !== undefined, 'options must have at least one of "then" or "otherwise"'); + + const then = options.hasOwnProperty('then') ? this.concat(Cast.schema(this._currentJoi, options.then)) : undefined; + const otherwise = options.hasOwnProperty('otherwise') ? this.concat(Cast.schema(this._currentJoi, options.otherwise)) : undefined; + + Alternatives = Alternatives || require('../alternatives'); + + const alternativeOptions = { then, otherwise }; + if (Object.prototype.hasOwnProperty.call(options, 'is')) { + alternativeOptions.is = options.is; + } + + const obj = Alternatives.when(condition, alternativeOptions); + obj._flags.presence = 'ignore'; + obj._baseType = this; + + return obj; + } + + description(desc) { + + Hoek.assert(desc && typeof desc === 'string', 'Description must be a non-empty string'); + + const obj = this.clone(); + obj._description = desc; + return obj; + } + + notes(notes) { + + Hoek.assert(notes && (typeof notes === 'string' || Array.isArray(notes)), 'Notes must be a non-empty string or array'); + + const obj = this.clone(); + obj._notes = obj._notes.concat(notes); + return obj; + } + + tags(tags) { + + Hoek.assert(tags && (typeof tags === 'string' || Array.isArray(tags)), 'Tags must be a non-empty string or array'); + + const obj = this.clone(); + obj._tags = obj._tags.concat(tags); + return obj; + } + + meta(meta) { + + Hoek.assert(meta !== undefined, 'Meta cannot be undefined'); + + const obj = this.clone(); + obj._meta = obj._meta.concat(meta); + return obj; + } + + example(...examples) { + + Hoek.assert(examples.length > 0, 'Missing examples'); + + const processed = []; + for (let i = 0; i < examples.length; ++i) { + const example = [].concat(examples[i]); + Hoek.assert(example.length <= 2, `Bad example format at index ${i}`); + + const value = example[0]; + let options = example[1]; + if (options !== undefined) { + Hoek.assert(options && typeof options === 'object', `Options for example at index ${i} must be an object`); + const unknownOptions = Object.keys(options).filter((option) => !['parent', 'context'].includes(option)); + Hoek.assert(unknownOptions.length === 0, `Unknown example options ${unknownOptions} at index ${i}`); + } + else { + options = {}; + } + + const localState = new State('', [], options.parent || null); + const result = this._validate(value, localState, Settings.concat(internals.defaults, options.context ? { context: options.context } : null)); + Hoek.assert(!result.errors, `Bad example at index ${i}:`, result.errors && Errors.process(result.errors, value)); + + const ex = { value }; + if (Object.keys(options).length) { + ex.options = options; + } + + processed.push(ex); + } + + const obj = this.clone(); + obj._examples = processed; + return obj; + } + + unit(name) { + + Hoek.assert(name && typeof name === 'string', 'Unit name must be a non-empty string'); + + const obj = this.clone(); + obj._unit = name; + return obj; + } + + _prepareEmptyValue(value) { + + if (typeof value === 'string' && this._flags.trim) { + return value.trim(); + } + + return value; + } + + _validate(value, state, options, reference) { + + const originalValue = value; + + // Setup state and settings + + state = state || new State('', [], null, reference); + + if (this._settings) { + const isDefaultOptions = options === internals.defaults; + if (isDefaultOptions && this._settings[Symbols.settingsCache]) { + options = this._settings[Symbols.settingsCache]; + } + else { + options = Settings.concat(this._language ? Settings.concat({ language: this._language }, options) : options, this._settings); + if (isDefaultOptions) { + this._settings[Symbols.settingsCache] = options; + } + } + } + else if (this._language) { + options = Settings.concat({ language: this._language }, options); + } + + let errors = []; + + if (this._coerce) { + const coerced = this._coerce(value, state, options); + if (coerced.errors) { + value = coerced.value; + errors = errors.concat(coerced.errors); + return this._finalizeValue(value, originalValue, errors, state, options); // Coerced error always aborts early + } + + value = coerced.value; + } + + if (this._flags.empty && !this._flags.empty._validate(this._prepareEmptyValue(value), null, internals.defaults).errors) { + value = undefined; + } + + // Check presence requirements + + const presence = this._flags.presence || options.presence; + if (presence === 'optional') { + if (value === undefined) { + const isDeepDefault = this._flags.hasOwnProperty('default') && this._flags.default === undefined; + if (isDeepDefault && this._type === 'object') { + value = {}; + } + else { + return this._finalizeValue(value, originalValue, errors, state, options); + } + } + } + else if (presence === 'required' && + value === undefined) { + + errors.push(this.createError('any.required', null, state, options)); + return this._finalizeValue(value, originalValue, errors, state, options); + } + else if (presence === 'forbidden') { + if (value === undefined) { + return this._finalizeValue(value, originalValue, errors, state, options); + } + + errors.push(this.createError('any.unknown', null, state, options)); + return this._finalizeValue(value, originalValue, errors, state, options); + } + + // Check allowed and denied values using the original value + + let match = this._valids.get(value, state, options, this._flags.insensitive); + if (match) { + if (options.convert) { + value = match.value; + } + + return this._finalizeValue(value, originalValue, errors, state, options); + } + + if (this._invalids.has(value, state, options, this._flags.insensitive)) { + errors.push(this.createError(value === '' ? 'any.empty' : 'any.invalid', { value, invalids: this._invalids.values({ stripUndefined: true }) }, state, options)); + if (options.abortEarly) { + + return this._finalizeValue(value, originalValue, errors, state, options); + } + } + + // Convert value and validate type + + if (this._base) { + const base = this._base(value, state, options); + if (base.errors) { + value = base.value; + errors = errors.concat(base.errors); + return this._finalizeValue(value, originalValue, errors, state, options); // Base error always aborts early + } + + if (base.value !== value) { + value = base.value; + + // Check allowed and denied values using the converted value + + match = this._valids.get(value, state, options, this._flags.insensitive); + if (match) { + value = match.value; + return this._finalizeValue(value, originalValue, errors, state, options); + } + + if (this._invalids.has(value, state, options, this._flags.insensitive)) { + errors.push(this.createError(value === '' ? 'any.empty' : 'any.invalid', { value, invalids: this._invalids.values({ stripUndefined: true }) }, state, options)); + if (options.abortEarly) { + return this._finalizeValue(value, originalValue, errors, state, options); + } + } + } + } + + // Required values did not match + + if (this._flags.allowOnly) { + errors.push(this.createError('any.allowOnly', { value, valids: this._valids.values({ stripUndefined: true }) }, state, options)); + if (options.abortEarly) { + return this._finalizeValue(value, originalValue, errors, state, options); + } + } + + // Validate tests + + for (let i = 0; i < this._tests.length; ++i) { + const test = this._tests[i]; + const ret = test.func.call(this, value, state, options); + if (ret instanceof Errors.Err) { + errors.push(ret); + if (options.abortEarly) { + return this._finalizeValue(value, originalValue, errors, state, options); + } + } + else { + value = ret; + } + } + + return this._finalizeValue(value, originalValue, errors, state, options); + } + + _finalizeValue(value, originalValue, errors, state, options) { + + let finalValue; + + if (value !== undefined) { + finalValue = this._flags.raw ? originalValue : value; + } + else if (options.noDefaults) { + finalValue = value; + } + else if (Ref.isRef(this._flags.default)) { + finalValue = this._flags.default(state.parent, options); + } + else if (typeof this._flags.default === 'function' && + !(this._flags.func && !this._flags.default.description)) { + + let args; + + if (state.parent !== null && + this._flags.default.length > 0) { + + args = [Hoek.clone(state.parent), options]; + } + + const defaultValue = internals._try(this._flags.default, args); + finalValue = defaultValue.value; + if (defaultValue.error) { + errors.push(this.createError('any.default', { error: defaultValue.error }, state, options)); + } + } + else { + finalValue = Hoek.clone(this._flags.default); + } + + if (errors.length && + typeof this._flags.error === 'function' && + ( + !this._flags.selfError || + errors.some((e) => state.path.length === e.path.length) + ) + ) { + const change = this._flags.error.call(this, errors); + + if (typeof change === 'string') { + errors = [this.createOverrideError('override', { reason: errors }, state, options, change)]; + } + else { + errors = [].concat(change) + .map((err) => { + + return err instanceof Error ? + err : + this.createOverrideError(err.type || 'override', err.context, state, options, err.message, err.template); + }); + } + } + + return { + value: this._flags.strip ? undefined : finalValue, + finalValue, + errors: errors.length ? errors : null + }; + } + + _validateWithOptions(value, options, callback) { + + if (options) { + this.checkOptions(options); + } + + const settings = Settings.concat(internals.defaults, options); + const result = this._validate(value, null, settings); + const errors = Errors.process(result.errors, value); + + if (callback) { + return callback(errors, result.value); + } + + return { + error: errors, + value: result.value, + then(resolve, reject) { + + if (errors) { + return Promise.reject(errors).catch(reject); + } + + return Promise.resolve(result.value).then(resolve); + }, + catch(reject) { + + if (errors) { + return Promise.reject(errors).catch(reject); + } + + return Promise.resolve(result.value); + } + }; + } + + validate(value, options, callback) { + + if (typeof options === 'function') { + return this._validateWithOptions(value, null, options); + } + + return this._validateWithOptions(value, options, callback); + } + + describe() { + + const description = { + type: this._type + }; + + const flags = Object.keys(this._flags); + if (flags.length) { + if (['empty', 'default', 'lazy', 'label'].some((flag) => this._flags.hasOwnProperty(flag))) { + description.flags = {}; + for (let i = 0; i < flags.length; ++i) { + const flag = flags[i]; + if (flag === 'empty') { + description.flags[flag] = this._flags[flag].describe(); + } + else if (flag === 'default') { + if (Ref.isRef(this._flags[flag])) { + description.flags[flag] = this._flags[flag].toString(); + } + else if (typeof this._flags[flag] === 'function') { + description.flags[flag] = { + description: this._flags[flag].description, + function : this._flags[flag] + }; + } + else { + description.flags[flag] = this._flags[flag]; + } + } + else if (flag === 'lazy' || flag === 'label') { + // We don't want it in the description + } + else { + description.flags[flag] = this._flags[flag]; + } + } + } + else { + description.flags = this._flags; + } + } + + if (this._settings) { + description.options = Hoek.clone(this._settings); + } + + if (this._baseType) { + description.base = this._baseType.describe(); + } + + if (this._description) { + description.description = this._description; + } + + if (this._notes.length) { + description.notes = this._notes; + } + + if (this._tags.length) { + description.tags = this._tags; + } + + if (this._meta.length) { + description.meta = this._meta; + } + + if (this._examples.length) { + description.examples = this._examples; + } + + if (this._unit) { + description.unit = this._unit; + } + + const valids = this._valids.values(); + if (valids.length) { + description.valids = valids.map((v) => { + + return Ref.isRef(v) ? v.toString() : v; + }); + } + + const invalids = this._invalids.values(); + if (invalids.length) { + description.invalids = invalids.map((v) => { + + return Ref.isRef(v) ? v.toString() : v; + }); + } + + description.rules = []; + + for (let i = 0; i < this._tests.length; ++i) { + const validator = this._tests[i]; + const item = { name: validator.name }; + + if (validator.arg !== void 0) { + item.arg = Ref.isRef(validator.arg) ? validator.arg.toString() : validator.arg; + } + + const options = validator.options; + if (options) { + if (options.hasRef) { + item.arg = {}; + const keys = Object.keys(validator.arg); + for (let j = 0; j < keys.length; ++j) { + const key = keys[j]; + const value = validator.arg[key]; + item.arg[key] = Ref.isRef(value) ? value.toString() : value; + } + } + + if (typeof options.description === 'string') { + item.description = options.description; + } + else if (typeof options.description === 'function') { + item.description = options.description(item.arg); + } + } + + description.rules.push(item); + } + + if (!description.rules.length) { + delete description.rules; + } + + const label = this._getLabel(); + if (label) { + description.label = label; + } + + return description; + } + + label(name) { + + Hoek.assert(name && typeof name === 'string', 'Label name must be a non-empty string'); + + const obj = this.clone(); + obj._flags.label = name; + return obj; + } + + _getLabel(def) { + + return this._flags.label || def; + } + +}; + + +internals.Any.prototype.isImmutable = true; // Prevents Hoek from deep cloning schema objects + +// Aliases + +internals.Any.prototype.only = internals.Any.prototype.equal = internals.Any.prototype.valid; +internals.Any.prototype.disallow = internals.Any.prototype.not = internals.Any.prototype.invalid; +internals.Any.prototype.exist = internals.Any.prototype.required; + + +internals.Any.prototype[internals.symbol] = { + version: Pkg.version, + compile: Cast.schema, + root: '_currentJoi' +}; + + +internals._try = function (fn, args = []) { + + let err; + let result; + + try { + result = fn(...args); + } + catch (e) { + err = e; + } + + return { + value: result, + error: err + }; +}; diff --git a/node_modules/@hapi/joi/lib/types/any/settings.js b/node_modules/@hapi/joi/lib/types/any/settings.js new file mode 100755 index 0000000..2888242 --- /dev/null +++ b/node_modules/@hapi/joi/lib/types/any/settings.js @@ -0,0 +1,32 @@ +'use strict'; + +const Hoek = require('@hapi/hoek'); + +const Symbols = require('../symbols'); + + +const internals = {}; + + +exports.concat = function (target, source) { + + if (!source) { + return target; + } + + const obj = Object.assign({}, target); + + const language = source.language; + + Object.assign(obj, source); + + if (language && target && target.language) { + obj.language = Hoek.applyToDefaults(target.language, language); + } + + if (obj[Symbols.settingsCache]) { + delete obj[Symbols.settingsCache]; + } + + return obj; +}; diff --git a/node_modules/@hapi/joi/lib/types/array/index.js b/node_modules/@hapi/joi/lib/types/array/index.js new file mode 100755 index 0000000..2664aaa --- /dev/null +++ b/node_modules/@hapi/joi/lib/types/array/index.js @@ -0,0 +1,699 @@ +'use strict'; + +const Bourne = require('@hapi/bourne'); +const Hoek = require('@hapi/hoek'); + +const Any = require('../any'); +const Cast = require('../../cast'); +const Ref = require('../../ref'); +const State = require('../state'); + + +const internals = {}; + + +internals.fastSplice = function (arr, i) { + + let pos = i; + while (pos < arr.length) { + arr[pos++] = arr[pos]; + } + + --arr.length; +}; + + +internals.Array = class extends Any { + + constructor() { + + super(); + this._type = 'array'; + this._inner.items = []; + this._inner.ordereds = []; + this._inner.inclusions = []; + this._inner.exclusions = []; + this._inner.requireds = []; + this._flags.sparse = false; + } + + _base(value, state, options) { + + const result = { + value + }; + + if (typeof value === 'string' && + options.convert) { + + if (value.length > 1 && + (value[0] === '[' || /^\s*\[/.test(value))) { + + try { + result.value = Bourne.parse(value); + } + catch (e) { } + } + } + + let isArray = Array.isArray(result.value); + const wasArray = isArray; + if (options.convert && this._flags.single && !isArray) { + result.value = [result.value]; + isArray = true; + } + + if (!isArray) { + result.errors = this.createError('array.base', null, state, options); + return result; + } + + if (this._inner.inclusions.length || + this._inner.exclusions.length || + this._inner.requireds.length || + this._inner.ordereds.length || + !this._flags.sparse) { + + // Clone the array so that we don't modify the original + if (wasArray) { + result.value = result.value.slice(0); + } + + result.errors = this._checkItems(result.value, wasArray, state, options); + + if (result.errors && wasArray && options.convert && this._flags.single) { + + // Attempt a 2nd pass by putting the array inside one. + const previousErrors = result.errors; + + result.value = [result.value]; + result.errors = this._checkItems(result.value, wasArray, state, options); + + if (result.errors) { + + // Restore previous errors and value since this didn't validate either. + result.errors = previousErrors; + result.value = result.value[0]; + } + } + } + + return result; + } + + _checkItems(items, wasArray, state, options) { + + const errors = []; + let errored; + + const requireds = this._inner.requireds.slice(); + const ordereds = this._inner.ordereds.slice(); + const inclusions = [...this._inner.inclusions, ...requireds]; + + let il = items.length; + for (let i = 0; i < il; ++i) { + errored = false; + const item = items[i]; + let isValid = false; + const key = wasArray ? i : state.key; + const path = wasArray ? [...state.path, i] : state.path; + const localState = new State(key, path, state.parent, state.reference); + let res; + + // Sparse + + if (!this._flags.sparse && item === undefined) { + errors.push(this.createError('array.sparse', null, { key: state.key, path: localState.path, pos: i }, options)); + + if (options.abortEarly) { + return errors; + } + + ordereds.shift(); + + continue; + } + + // Exclusions + + for (let j = 0; j < this._inner.exclusions.length; ++j) { + res = this._inner.exclusions[j]._validate(item, localState, {}); // Not passing options to use defaults + + if (!res.errors) { + errors.push(this.createError(wasArray ? 'array.excludes' : 'array.excludesSingle', { pos: i, value: item }, { key: state.key, path: localState.path }, options)); + errored = true; + + if (options.abortEarly) { + return errors; + } + + ordereds.shift(); + + break; + } + } + + if (errored) { + continue; + } + + // Ordered + if (this._inner.ordereds.length) { + if (ordereds.length > 0) { + const ordered = ordereds.shift(); + res = ordered._validate(item, localState, options); + if (!res.errors) { + if (ordered._flags.strip) { + internals.fastSplice(items, i); + --i; + --il; + } + else if (!this._flags.sparse && res.value === undefined) { + errors.push(this.createError('array.sparse', null, { key: state.key, path: localState.path, pos: i }, options)); + + if (options.abortEarly) { + return errors; + } + + continue; + } + else { + items[i] = res.value; + } + } + else { + errors.push(this.createError('array.ordered', { pos: i, reason: res.errors, value: item }, { key: state.key, path: localState.path }, options)); + if (options.abortEarly) { + return errors; + } + } + + continue; + } + else if (!this._inner.items.length) { + errors.push(this.createError('array.orderedLength', { pos: i, limit: this._inner.ordereds.length }, { key: state.key, path: localState.path }, options)); + if (options.abortEarly) { + return errors; + } + + continue; + } + } + + // Requireds + + const requiredChecks = []; + let jl = requireds.length; + for (let j = 0; j < jl; ++j) { + res = requiredChecks[j] = requireds[j]._validate(item, localState, options); + if (!res.errors) { + items[i] = res.value; + isValid = true; + internals.fastSplice(requireds, j); + --j; + --jl; + + if (!this._flags.sparse && res.value === undefined) { + errors.push(this.createError('array.sparse', null, { key: state.key, path: localState.path, pos: i }, options)); + + if (options.abortEarly) { + return errors; + } + } + + break; + } + } + + if (isValid) { + continue; + } + + // Inclusions + + const stripUnknown = options.stripUnknown && !!options.stripUnknown.arrays || false; + + jl = inclusions.length; + for (let j = 0; j < jl; ++j) { + const inclusion = inclusions[j]; + + // Avoid re-running requireds that already didn't match in the previous loop + const previousCheck = requireds.indexOf(inclusion); + if (previousCheck !== -1) { + res = requiredChecks[previousCheck]; + } + else { + res = inclusion._validate(item, localState, options); + + if (!res.errors) { + if (inclusion._flags.strip) { + internals.fastSplice(items, i); + --i; + --il; + } + else if (!this._flags.sparse && res.value === undefined) { + errors.push(this.createError('array.sparse', null, { key: state.key, path: localState.path, pos: i }, options)); + errored = true; + } + else { + items[i] = res.value; + } + + isValid = true; + break; + } + } + + // Return the actual error if only one inclusion defined + if (jl === 1) { + if (stripUnknown) { + internals.fastSplice(items, i); + --i; + --il; + isValid = true; + break; + } + + errors.push(this.createError(wasArray ? 'array.includesOne' : 'array.includesOneSingle', { pos: i, reason: res.errors, value: item }, { key: state.key, path: localState.path }, options)); + errored = true; + + if (options.abortEarly) { + return errors; + } + + break; + } + } + + if (errored) { + continue; + } + + if (this._inner.inclusions.length && !isValid) { + if (stripUnknown) { + internals.fastSplice(items, i); + --i; + --il; + continue; + } + + errors.push(this.createError(wasArray ? 'array.includes' : 'array.includesSingle', { pos: i, value: item }, { key: state.key, path: localState.path }, options)); + + if (options.abortEarly) { + return errors; + } + } + } + + if (requireds.length) { + this._fillMissedErrors(errors, requireds, state, options); + } + + if (ordereds.length) { + this._fillOrderedErrors(errors, ordereds, state, options); + } + + return errors.length ? errors : null; + } + + describe() { + + const description = super.describe(); + + if (this._inner.ordereds.length) { + description.orderedItems = []; + + for (let i = 0; i < this._inner.ordereds.length; ++i) { + description.orderedItems.push(this._inner.ordereds[i].describe()); + } + } + + if (this._inner.items.length) { + description.items = []; + + for (let i = 0; i < this._inner.items.length; ++i) { + description.items.push(this._inner.items[i].describe()); + } + } + + if (description.rules) { + for (let i = 0; i < description.rules.length; ++i) { + const rule = description.rules[i]; + if (rule.name === 'has') { + rule.arg = rule.arg.describe(); + } + } + } + + return description; + } + + items(...schemas) { + + const obj = this.clone(); + + Hoek.flatten(schemas).forEach((type, index) => { + + try { + type = Cast.schema(this._currentJoi, type); + } + catch (castErr) { + if (castErr.hasOwnProperty('path')) { + castErr.path = index + '.' + castErr.path; + } + else { + castErr.path = index; + } + + castErr.message = `${castErr.message}(${castErr.path})`; + throw castErr; + } + + obj._inner.items.push(type); + + if (type._flags.presence === 'required') { + obj._inner.requireds.push(type); + } + else if (type._flags.presence === 'forbidden') { + obj._inner.exclusions.push(type.optional()); + } + else { + obj._inner.inclusions.push(type); + } + }); + + return obj; + } + + ordered(...schemas) { + + const obj = this.clone(); + + Hoek.flatten(schemas).forEach((type, index) => { + + try { + type = Cast.schema(this._currentJoi, type); + } + catch (castErr) { + if (castErr.hasOwnProperty('path')) { + castErr.path = index + '.' + castErr.path; + } + else { + castErr.path = index; + } + + castErr.message = `${castErr.message}(${castErr.path})`; + throw castErr; + } + + obj._inner.ordereds.push(type); + }); + + return obj; + } + + min(limit) { + + const isRef = Ref.isRef(limit); + + Hoek.assert((Number.isSafeInteger(limit) && limit >= 0) || isRef, 'limit must be a positive integer or reference'); + + return this._testUnique('min', limit, function (value, state, options) { + + let compareTo; + if (isRef) { + compareTo = limit(state.reference || state.parent, options); + + if (!(Number.isSafeInteger(compareTo) && compareTo >= 0)) { + return this.createError('array.ref', { ref: limit, value: compareTo }, state, options); + } + } + else { + compareTo = limit; + } + + if (value.length >= compareTo) { + return value; + } + + return this.createError('array.min', { limit, value }, state, options); + }); + } + + max(limit) { + + const isRef = Ref.isRef(limit); + + Hoek.assert((Number.isSafeInteger(limit) && limit >= 0) || isRef, 'limit must be a positive integer or reference'); + + return this._testUnique('max', limit, function (value, state, options) { + + let compareTo; + if (isRef) { + compareTo = limit(state.reference || state.parent, options); + + if (!(Number.isSafeInteger(compareTo) && compareTo >= 0)) { + return this.createError('array.ref', { ref: limit.key }, state, options); + } + } + else { + compareTo = limit; + } + + if (value.length <= compareTo) { + return value; + } + + return this.createError('array.max', { limit, value }, state, options); + }); + } + + length(limit) { + + const isRef = Ref.isRef(limit); + + Hoek.assert((Number.isSafeInteger(limit) && limit >= 0) || isRef, 'limit must be a positive integer or reference'); + + return this._testUnique('length', limit, function (value, state, options) { + + let compareTo; + if (isRef) { + compareTo = limit(state.reference || state.parent, options); + + if (!(Number.isSafeInteger(compareTo) && compareTo >= 0)) { + return this.createError('array.ref', { ref: limit.key }, state, options); + } + } + else { + compareTo = limit; + } + + if (value.length === compareTo) { + return value; + } + + return this.createError('array.length', { limit, value }, state, options); + }); + } + + has(schema) { + + try { + schema = Cast.schema(this._currentJoi, schema); + } + catch (castErr) { + if (castErr.hasOwnProperty('path')) { + castErr.message = `${castErr.message}(${castErr.path})`; + } + + throw castErr; + } + + return this._test('has', schema, function (value, state, options) { + + const isValid = value.some((item, idx) => { + + const localState = new State(idx, [...state.path, idx], state.key, state.reference); + return !schema._validate(item, localState, options).errors; + }); + + if (isValid) { + return value; + } + + const patternLabel = schema._getLabel(); + if (patternLabel) { + return this.createError('array.hasKnown', { patternLabel }, state, options); + } + + return this.createError('array.hasUnknown', null, state, options); + }); + } + + unique(comparator, configs) { + + Hoek.assert(comparator === undefined || + typeof comparator === 'function' || + typeof comparator === 'string', 'comparator must be a function or a string'); + + Hoek.assert(configs === undefined || + typeof configs === 'object', 'configs must be an object'); + + const settings = { + ignoreUndefined: (configs && configs.ignoreUndefined) || false + }; + + + if (typeof comparator === 'string') { + settings.path = comparator; + } + else if (typeof comparator === 'function') { + settings.comparator = comparator; + } + + return this._test('unique', settings, function (value, state, options) { + + const found = { + string: Object.create(null), + number: Object.create(null), + undefined: Object.create(null), + boolean: Object.create(null), + object: new Map(), + function: new Map(), + custom: new Map() + }; + + const compare = settings.comparator || Hoek.deepEqual; + const ignoreUndefined = settings.ignoreUndefined; + + for (let i = 0; i < value.length; ++i) { + const item = settings.path ? Hoek.reach(value[i], settings.path) : value[i]; + const records = settings.comparator ? found.custom : found[typeof item]; + + // All available types are supported, so it's not possible to reach 100% coverage without ignoring this line. + // I still want to keep the test for future js versions with new types (eg. Symbol). + if (/* $lab:coverage:off$ */ records /* $lab:coverage:on$ */) { + if (records instanceof Map) { + const entries = records.entries(); + let current; + while (!(current = entries.next()).done) { + if (compare(current.value[0], item)) { + const localState = new State(state.key, [...state.path, i], state.parent, state.reference); + const context = { + pos: i, + value: value[i], + dupePos: current.value[1], + dupeValue: value[current.value[1]] + }; + + if (settings.path) { + context.path = settings.path; + } + + return this.createError('array.unique', context, localState, options); + } + } + + records.set(item, i); + } + else { + if ((!ignoreUndefined || item !== undefined) && records[item] !== undefined) { + const localState = new State(state.key, [...state.path, i], state.parent, state.reference); + + const context = { + pos: i, + value: value[i], + dupePos: records[item], + dupeValue: value[records[item]] + }; + + if (settings.path) { + context.path = settings.path; + } + + return this.createError('array.unique', context, localState, options); + } + + records[item] = i; + } + } + } + + return value; + }); + } + + sparse(enabled) { + + const value = enabled === undefined ? true : !!enabled; + + if (this._flags.sparse === value) { + return this; + } + + const obj = this.clone(); + obj._flags.sparse = value; + return obj; + } + + single(enabled) { + + const value = enabled === undefined ? true : !!enabled; + + if (this._flags.single === value) { + return this; + } + + const obj = this.clone(); + obj._flags.single = value; + return obj; + } + + _fillMissedErrors(errors, requireds, state, options) { + + const knownMisses = []; + let unknownMisses = 0; + for (let i = 0; i < requireds.length; ++i) { + const label = requireds[i]._getLabel(); + if (label) { + knownMisses.push(label); + } + else { + ++unknownMisses; + } + } + + if (knownMisses.length) { + if (unknownMisses) { + errors.push(this.createError('array.includesRequiredBoth', { knownMisses, unknownMisses }, { key: state.key, path: state.path }, options)); + } + else { + errors.push(this.createError('array.includesRequiredKnowns', { knownMisses }, { key: state.key, path: state.path }, options)); + } + } + else { + errors.push(this.createError('array.includesRequiredUnknowns', { unknownMisses }, { key: state.key, path: state.path }, options)); + } + } + + + _fillOrderedErrors(errors, ordereds, state, options) { + + const requiredOrdereds = []; + + for (let i = 0; i < ordereds.length; ++i) { + const presence = Hoek.reach(ordereds[i], '_flags.presence'); + if (presence === 'required') { + requiredOrdereds.push(ordereds[i]); + } + } + + if (requiredOrdereds.length) { + this._fillMissedErrors(errors, requiredOrdereds, state, options); + } + } + +}; + + +module.exports = new internals.Array(); diff --git a/node_modules/@hapi/joi/lib/types/binary/index.js b/node_modules/@hapi/joi/lib/types/binary/index.js new file mode 100755 index 0000000..bda50c3 --- /dev/null +++ b/node_modules/@hapi/joi/lib/types/binary/index.js @@ -0,0 +1,96 @@ +'use strict'; + +const Hoek = require('@hapi/hoek'); + +const Any = require('../any'); + + +const internals = {}; + + +internals.Binary = class extends Any { + + constructor() { + + super(); + this._type = 'binary'; + } + + _base(value, state, options) { + + const result = { + value + }; + + if (typeof value === 'string' && + options.convert) { + + try { + result.value = Buffer.from(value, this._flags.encoding); + } + catch (e) { } + } + + result.errors = Buffer.isBuffer(result.value) ? null : this.createError('binary.base', null, state, options); + return result; + } + + encoding(encoding) { + + Hoek.assert(Buffer.isEncoding(encoding), 'Invalid encoding:', encoding); + + if (this._flags.encoding === encoding) { + return this; + } + + const obj = this.clone(); + obj._flags.encoding = encoding; + return obj; + } + + min(limit) { + + Hoek.assert(Number.isSafeInteger(limit) && limit >= 0, 'limit must be a positive integer'); + + return this._test('min', limit, function (value, state, options) { + + if (value.length >= limit) { + return value; + } + + return this.createError('binary.min', { limit, value }, state, options); + }); + } + + max(limit) { + + Hoek.assert(Number.isSafeInteger(limit) && limit >= 0, 'limit must be a positive integer'); + + return this._test('max', limit, function (value, state, options) { + + if (value.length <= limit) { + return value; + } + + return this.createError('binary.max', { limit, value }, state, options); + }); + } + + length(limit) { + + Hoek.assert(Number.isSafeInteger(limit) && limit >= 0, 'limit must be a positive integer'); + + return this._test('length', limit, function (value, state, options) { + + if (value.length === limit) { + return value; + } + + return this.createError('binary.length', { limit, value }, state, options); + }); + } + +}; + + +module.exports = new internals.Binary(); diff --git a/node_modules/@hapi/joi/lib/types/boolean/index.js b/node_modules/@hapi/joi/lib/types/boolean/index.js new file mode 100755 index 0000000..ada74ae --- /dev/null +++ b/node_modules/@hapi/joi/lib/types/boolean/index.js @@ -0,0 +1,97 @@ +'use strict'; + +const Hoek = require('@hapi/hoek'); + +const Any = require('../any'); + + +const internals = { + Set: require('../../set') +}; + + +internals.Boolean = class extends Any { + constructor() { + + super(); + this._type = 'boolean'; + this._flags.insensitive = true; + this._inner.truthySet = new internals.Set(); + this._inner.falsySet = new internals.Set(); + } + + _base(value, state, options) { + + const result = { + value + }; + + if (typeof value === 'string' && + options.convert) { + + const normalized = this._flags.insensitive ? value.toLowerCase() : value; + result.value = (normalized === 'true' ? true + : (normalized === 'false' ? false : value)); + } + + if (typeof result.value !== 'boolean') { + result.value = (this._inner.truthySet.has(value, null, null, this._flags.insensitive) ? true + : (this._inner.falsySet.has(value, null, null, this._flags.insensitive) ? false : value)); + } + + result.errors = (typeof result.value === 'boolean') ? null : this.createError('boolean.base', { value }, state, options); + return result; + } + + truthy(...values) { + + const obj = this.clone(); + values = Hoek.flatten(values); + for (let i = 0; i < values.length; ++i) { + const value = values[i]; + + Hoek.assert(value !== undefined, 'Cannot call truthy with undefined'); + obj._inner.truthySet.add(value); + } + + return obj; + } + + falsy(...values) { + + const obj = this.clone(); + values = Hoek.flatten(values); + for (let i = 0; i < values.length; ++i) { + const value = values[i]; + + Hoek.assert(value !== undefined, 'Cannot call falsy with undefined'); + obj._inner.falsySet.add(value); + } + + return obj; + } + + insensitive(enabled) { + + const insensitive = enabled === undefined ? true : !!enabled; + + if (this._flags.insensitive === insensitive) { + return this; + } + + const obj = this.clone(); + obj._flags.insensitive = insensitive; + return obj; + } + + describe() { + + const description = super.describe(); + description.truthy = [true, ...this._inner.truthySet.values()]; + description.falsy = [false, ...this._inner.falsySet.values()]; + return description; + } +}; + + +module.exports = new internals.Boolean(); diff --git a/node_modules/@hapi/joi/lib/types/date/index.js b/node_modules/@hapi/joi/lib/types/date/index.js new file mode 100755 index 0000000..9754757 --- /dev/null +++ b/node_modules/@hapi/joi/lib/types/date/index.js @@ -0,0 +1,179 @@ +'use strict'; + +const Hoek = require('@hapi/hoek'); + +const Any = require('../any'); +const Ref = require('../../ref'); + + +const internals = {}; + +internals.isoDate = /^(?:[-+]\d{2})?(?:\d{4}(?!\d{2}\b))(?:(-?)(?:(?:0[1-9]|1[0-2])(?:\1(?:[12]\d|0[1-9]|3[01]))?|W(?:[0-4]\d|5[0-2])(?:-?[1-7])?|(?:00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[1-6])))(?![T]$|[T][\d]+Z$)(?:[T\s](?:(?:(?:[01]\d|2[0-3])(?:(:?)[0-5]\d)?|24\:?00)(?:[.,]\d+(?!:))?)(?:\2[0-5]\d(?:[.,]\d+)?)?(?:[Z]|(?:[+-])(?:[01]\d|2[0-3])(?::?[0-5]\d)?)?)?)?$/; +internals.invalidDate = new Date(''); +internals.isIsoDate = (() => { + + const isoString = internals.isoDate.toString(); + + return (date) => { + + return date && (date.toString() === isoString); + }; +})(); + +internals.Date = class extends Any { + + constructor() { + + super(); + this._type = 'date'; + } + + _base(value, state, options) { + + const result = { + value: (options.convert && internals.Date.toDate(value, this._flags.format, this._flags.timestamp, this._flags.multiplier)) || value + }; + + if (result.value instanceof Date && !isNaN(result.value.getTime())) { + result.errors = null; + } + else if (!options.convert) { + result.errors = this.createError('date.strict', { value }, state, options); + } + else { + let type; + if (internals.isIsoDate(this._flags.format)) { + type = 'isoDate'; + } + else if (this._flags.timestamp) { + type = `timestamp.${this._flags.timestamp}`; + } + else { + type = 'base'; + } + + result.errors = this.createError(`date.${type}`, { value }, state, options); + } + + return result; + } + + static toDate(value, format, timestamp, multiplier) { + + if (value instanceof Date) { + return value; + } + + if (typeof value === 'string' || + (typeof value === 'number' && !isNaN(value) && isFinite(value))) { + + const isIsoDate = format && internals.isIsoDate(format); + if (!isIsoDate && + typeof value === 'string' && + /^[+-]?\d+(\.\d+)?$/.test(value)) { + + value = parseFloat(value); + } + + let date; + if (isIsoDate) { + date = format.test(value) ? new Date(value.toString()) : internals.invalidDate; + } + else if (timestamp) { + date = /^\s*$/.test(value) ? internals.invalidDate : new Date(value * multiplier); + } + else { + date = new Date(value); + } + + if (!isNaN(date.getTime())) { + return date; + } + } + + return null; + } + + iso() { + + if (this._flags.format === internals.isoDate) { + return this; + } + + const obj = this.clone(); + obj._flags.format = internals.isoDate; + return obj; + } + + timestamp(type = 'javascript') { + + const allowed = ['javascript', 'unix']; + Hoek.assert(allowed.includes(type), '"type" must be one of "' + allowed.join('", "') + '"'); + + if (this._flags.timestamp === type) { + return this; + } + + const obj = this.clone(); + obj._flags.timestamp = type; + obj._flags.multiplier = type === 'unix' ? 1000 : 1; + return obj; + } + + _isIsoDate(value) { + + return internals.isoDate.test(value); + } + +}; + +internals.compare = function (type, compare) { + + return function (date) { + + const isNow = date === 'now'; + const isRef = Ref.isRef(date); + + if (!isNow && !isRef) { + date = internals.Date.toDate(date); + } + + Hoek.assert(date, 'Invalid date format'); + + return this._test(type, date, function (value, state, options) { + + let compareTo; + if (isNow) { + compareTo = Date.now(); + } + else if (isRef) { + const refValue = date(state.reference || state.parent, options); + compareTo = internals.Date.toDate(refValue); + + if (!compareTo) { + return this.createError('date.ref', { ref: date, value: refValue }, state, options); + } + + compareTo = compareTo.getTime(); + } + else { + compareTo = date.getTime(); + } + + if (compare(value.getTime(), compareTo)) { + return value; + } + + return this.createError('date.' + type, { limit: new Date(compareTo), value }, state, options); + }); + }; +}; + + +internals.Date.prototype.min = internals.compare('min', (value, date) => value >= date); +internals.Date.prototype.max = internals.compare('max', (value, date) => value <= date); +internals.Date.prototype.greater = internals.compare('greater', (value, date) => value > date); +internals.Date.prototype.less = internals.compare('less', (value, date) => value < date); + + +module.exports = new internals.Date(); diff --git a/node_modules/@hapi/joi/lib/types/func/index.js b/node_modules/@hapi/joi/lib/types/func/index.js new file mode 100755 index 0000000..2911348 --- /dev/null +++ b/node_modules/@hapi/joi/lib/types/func/index.js @@ -0,0 +1,87 @@ +'use strict'; + +const Hoek = require('@hapi/hoek'); + +const ObjectType = require('../object'); +const Ref = require('../../ref'); + + +const internals = {}; + + +internals.Func = class extends ObjectType.constructor { + + constructor() { + + super(); + this._flags.func = true; + } + + arity(n) { + + Hoek.assert(Number.isSafeInteger(n) && n >= 0, 'n must be a positive integer'); + + return this._test('arity', n, function (value, state, options) { + + if (value.length === n) { + return value; + } + + return this.createError('function.arity', { n }, state, options); + }); + } + + minArity(n) { + + Hoek.assert(Number.isSafeInteger(n) && n > 0, 'n must be a strict positive integer'); + + return this._test('minArity', n, function (value, state, options) { + + if (value.length >= n) { + return value; + } + + return this.createError('function.minArity', { n }, state, options); + }); + } + + maxArity(n) { + + Hoek.assert(Number.isSafeInteger(n) && n >= 0, 'n must be a positive integer'); + + return this._test('maxArity', n, function (value, state, options) { + + if (value.length <= n) { + return value; + } + + return this.createError('function.maxArity', { n }, state, options); + }); + } + + ref() { + + return this._test('ref', null, function (value, state, options) { + + if (Ref.isRef(value)) { + return value; + } + + return this.createError('function.ref', { value }, state, options); + }); + } + + class() { + + return this._test('class', null, function (value, state, options) { + + if ((/^\s*class\s/).test(value.toString())) { + return value; + } + + return this.createError('function.class', { value }, state, options); + }); + } +}; + +module.exports = new internals.Func(); diff --git a/node_modules/@hapi/joi/lib/types/lazy/index.js b/node_modules/@hapi/joi/lib/types/lazy/index.js new file mode 100755 index 0000000..4d4349f --- /dev/null +++ b/node_modules/@hapi/joi/lib/types/lazy/index.js @@ -0,0 +1,79 @@ +'use strict'; + +const Hoek = require('@hapi/hoek'); + +const Any = require('../any'); + + +const internals = {}; + + +internals.Lazy = class extends Any { + + constructor() { + + super(); + this._type = 'lazy'; + this._flags.once = true; + this._cache = null; + } + + _init(fn, options) { + + return this.set(fn, options); + } + + _base(value, state, options) { + + let schema; + if (this._cache) { + schema = this._cache; + } + else { + const result = { value }; + const lazy = this._flags.lazy; + + if (!lazy) { + result.errors = this.createError('lazy.base', null, state, options); + return result; + } + + schema = lazy(); + + if (!(schema instanceof Any)) { + result.errors = this.createError('lazy.schema', { schema }, state, options); + return result; + } + + if (this._flags.once) { + this._cache = schema; + } + } + + return schema._validate(value, state, options); + } + + set(fn, options) { + + Hoek.assert(typeof fn === 'function', 'You must provide a function as first argument'); + Hoek.assert(options === undefined || (options && typeof options === 'object' && !Array.isArray(options)), `Options must be an object`); + + if (options) { + const unknownOptions = Object.keys(options).filter((key) => !['once'].includes(key)); + Hoek.assert(unknownOptions.length === 0, `Options contain unknown keys: ${unknownOptions}`); + Hoek.assert(options.once === undefined || typeof options.once === 'boolean', 'Option "once" must be a boolean'); + } + + const obj = this.clone(); + obj._flags.lazy = fn; + + if (options && options.once !== obj._flags.once) { + obj._flags.once = options.once; + } + + return obj; + } + +}; + +module.exports = new internals.Lazy(); diff --git a/node_modules/@hapi/joi/lib/types/number/index.js b/node_modules/@hapi/joi/lib/types/number/index.js new file mode 100755 index 0000000..0636cb0 --- /dev/null +++ b/node_modules/@hapi/joi/lib/types/number/index.js @@ -0,0 +1,245 @@ +'use strict'; + +const Hoek = require('@hapi/hoek'); + +const Any = require('../any'); +const Ref = require('../../ref'); + + +const internals = { + precisionRx: /(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/, + normalizeExponent(str) { + + return str + .replace(/\.?0+e/, 'e') + .replace(/e\+/, 'e') + .replace(/^\+/, '') + .replace(/^(-?)0+([1-9])/, '$1$2'); + }, + normalizeDecimal(str) { + + str = str + .replace(/^\+/, '') + .replace(/\.0+$/, '') + .replace(/^(-?)0+([1-9])/, '$1$2'); + + if (str.includes('.') && str.endsWith('0')) { + str = str.replace(/0+$/, ''); + } + + return str; + } +}; + + +internals.Number = class extends Any { + + constructor() { + + super(); + this._type = 'number'; + this._flags.unsafe = false; + this._invalids.add(Infinity); + this._invalids.add(-Infinity); + } + + _base(value, state, options) { + + const result = { + errors: null, + value + }; + + if (typeof value === 'string' && + options.convert) { + + const matches = value.match(/^\s*[+-]?\d+(?:\.\d+)?(?:e([+-]?\d+))?\s*$/i); + if (matches) { + + value = value.trim(); + result.value = parseFloat(value); + + if (!this._flags.unsafe) { + if (value.includes('e')) { + if (internals.normalizeExponent(`${result.value / Math.pow(10, matches[1])}e${matches[1]}`) !== internals.normalizeExponent(value)) { + result.errors = this.createError('number.unsafe', { value }, state, options); + return result; + } + } + else { + if (result.value.toString() !== internals.normalizeDecimal(value)) { + result.errors = this.createError('number.unsafe', { value }, state, options); + return result; + } + } + } + } + } + + const isNumber = typeof result.value === 'number' && !isNaN(result.value); + + if (options.convert && 'precision' in this._flags && isNumber) { + + // This is conceptually equivalent to using toFixed but it should be much faster + const precision = Math.pow(10, this._flags.precision); + result.value = Math.round(result.value * precision) / precision; + } + + if (isNumber) { + if (!this._flags.unsafe && + (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER)) { + result.errors = this.createError('number.unsafe', { value }, state, options); + } + } + else { + result.errors = this.createError('number.base', { value }, state, options); + } + + return result; + } + + multiple(base) { + + const isRef = Ref.isRef(base); + + if (!isRef) { + Hoek.assert(typeof base === 'number' && isFinite(base), 'multiple must be a number'); + Hoek.assert(base > 0, 'multiple must be greater than 0'); + } + + return this._test('multiple', base, function (value, state, options) { + + const divisor = isRef ? base(state.reference || state.parent, options) : base; + + if (isRef && (typeof divisor !== 'number' || !isFinite(divisor))) { + return this.createError('number.ref', { ref: base.key }, state, options); + } + + if (value % divisor === 0) { + return value; + } + + return this.createError('number.multiple', { multiple: base, value }, state, options); + }); + } + + integer() { + + return this._test('integer', undefined, function (value, state, options) { + + return Math.trunc(value) - value === 0 ? value : this.createError('number.integer', { value }, state, options); + }); + } + + unsafe(enabled = true) { + + Hoek.assert(typeof enabled === 'boolean', 'enabled must be a boolean'); + + if (this._flags.unsafe === enabled) { + return this; + } + + const obj = this.clone(); + obj._flags.unsafe = enabled; + return obj; + } + + negative() { + + return this._test('negative', undefined, function (value, state, options) { + + if (value < 0) { + return value; + } + + return this.createError('number.negative', { value }, state, options); + }); + } + + positive() { + + return this._test('positive', undefined, function (value, state, options) { + + if (value > 0) { + return value; + } + + return this.createError('number.positive', { value }, state, options); + }); + } + + precision(limit) { + + Hoek.assert(Number.isSafeInteger(limit), 'limit must be an integer'); + Hoek.assert(!('precision' in this._flags), 'precision already set'); + + const obj = this._test('precision', limit, function (value, state, options) { + + const places = value.toString().match(internals.precisionRx); + const decimals = Math.max((places[1] ? places[1].length : 0) - (places[2] ? parseInt(places[2], 10) : 0), 0); + if (decimals <= limit) { + return value; + } + + return this.createError('number.precision', { limit, value }, state, options); + }); + + obj._flags.precision = limit; + return obj; + } + + port() { + + return this._test('port', undefined, function (value, state, options) { + + if (!Number.isSafeInteger(value) || value < 0 || value > 65535) { + return this.createError('number.port', { value }, state, options); + } + + return value; + }); + } + +}; + + +internals.compare = function (type, compare) { + + return function (limit) { + + const isRef = Ref.isRef(limit); + const isNumber = typeof limit === 'number' && !isNaN(limit); + + Hoek.assert(isNumber || isRef, 'limit must be a number or reference'); + + return this._test(type, limit, function (value, state, options) { + + let compareTo; + if (isRef) { + compareTo = limit(state.reference || state.parent, options); + + if (!(typeof compareTo === 'number' && !isNaN(compareTo))) { + return this.createError('number.ref', { ref: limit.key }, state, options); + } + } + else { + compareTo = limit; + } + + if (compare(value, compareTo)) { + return value; + } + + return this.createError('number.' + type, { limit: compareTo, value }, state, options); + }); + }; +}; + + +internals.Number.prototype.min = internals.compare('min', (value, limit) => value >= limit); +internals.Number.prototype.max = internals.compare('max', (value, limit) => value <= limit); +internals.Number.prototype.greater = internals.compare('greater', (value, limit) => value > limit); +internals.Number.prototype.less = internals.compare('less', (value, limit) => value < limit); + + +module.exports = new internals.Number(); diff --git a/node_modules/@hapi/joi/lib/types/object/index.js b/node_modules/@hapi/joi/lib/types/object/index.js new file mode 100755 index 0000000..df2fc05 --- /dev/null +++ b/node_modules/@hapi/joi/lib/types/object/index.js @@ -0,0 +1,952 @@ +'use strict'; + +const Bourne = require('@hapi/bourne'); +const Hoek = require('@hapi/hoek'); +const Topo = require('@hapi/topo'); + +const Any = require('../any'); +const Errors = require('../../errors'); +const Cast = require('../../cast'); +const State = require('../state'); + + +const internals = {}; + + +internals.Object = class extends Any { + + constructor() { + + super(); + this._type = 'object'; + this._inner.children = null; + this._inner.renames = []; + this._inner.dependencies = []; + this._inner.patterns = []; + } + + _init(...args) { + + return args.length ? this.keys(...args) : this; + } + + _base(value, state, options) { + + let target = value; + const errors = []; + const finish = () => { + + return { + value: target, + errors: errors.length ? errors : null + }; + }; + + if (typeof value === 'string' && + options.convert) { + + if (value.length > 1 && + (value[0] === '{' || /^\s*\{/.test(value))) { + + try { + value = Bourne.parse(value); + } + catch (e) { } + } + } + + const type = this._flags.func ? 'function' : 'object'; + if (!value || + typeof value !== type || + Array.isArray(value)) { + + errors.push(this.createError(type + '.base', { value }, state, options)); + return finish(); + } + + // Skip if there are no other rules to test + + if (!this._inner.renames.length && + !this._inner.dependencies.length && + !this._inner.children && // null allows any keys + !this._inner.patterns.length) { + + target = value; + return finish(); + } + + // Ensure target is a local copy (parsed) or shallow copy + + if (target === value) { + if (type === 'object') { + target = Object.create(Object.getPrototypeOf(value)); + } + else { + target = function (...args) { + + return value.apply(this, args); + }; + + target.prototype = Hoek.clone(value.prototype); + } + + const valueKeys = Object.keys(value); + for (let i = 0; i < valueKeys.length; ++i) { + target[valueKeys[i]] = value[valueKeys[i]]; + } + } + else { + target = value; + } + + // Rename keys + + const renamed = {}; + for (let i = 0; i < this._inner.renames.length; ++i) { + const rename = this._inner.renames[i]; + + if (rename.isRegExp) { + const targetKeys = Object.keys(target); + const matchedTargetKeys = []; + + for (let j = 0; j < targetKeys.length; ++j) { + if (rename.from.test(targetKeys[j])) { + matchedTargetKeys.push(targetKeys[j]); + } + } + + const allUndefined = matchedTargetKeys.every((key) => target[key] === undefined); + if (rename.options.ignoreUndefined && allUndefined) { + continue; + } + + if (!rename.options.multiple && + renamed[rename.to]) { + + errors.push(this.createError('object.rename.regex.multiple', { from: matchedTargetKeys, to: rename.to }, state, options)); + if (options.abortEarly) { + return finish(); + } + } + + if (Object.prototype.hasOwnProperty.call(target, rename.to) && + !rename.options.override && + !renamed[rename.to]) { + + errors.push(this.createError('object.rename.regex.override', { from: matchedTargetKeys, to: rename.to }, state, options)); + if (options.abortEarly) { + return finish(); + } + } + + if (allUndefined) { + delete target[rename.to]; + } + else { + target[rename.to] = target[matchedTargetKeys[matchedTargetKeys.length - 1]]; + } + + renamed[rename.to] = true; + + if (!rename.options.alias) { + for (let j = 0; j < matchedTargetKeys.length; ++j) { + delete target[matchedTargetKeys[j]]; + } + } + } + else { + if (rename.options.ignoreUndefined && target[rename.from] === undefined) { + continue; + } + + if (!rename.options.multiple && + renamed[rename.to]) { + + errors.push(this.createError('object.rename.multiple', { from: rename.from, to: rename.to }, state, options)); + if (options.abortEarly) { + return finish(); + } + } + + if (Object.prototype.hasOwnProperty.call(target, rename.to) && + !rename.options.override && + !renamed[rename.to]) { + + errors.push(this.createError('object.rename.override', { from: rename.from, to: rename.to }, state, options)); + if (options.abortEarly) { + return finish(); + } + } + + if (target[rename.from] === undefined) { + delete target[rename.to]; + } + else { + target[rename.to] = target[rename.from]; + } + + renamed[rename.to] = true; + + if (!rename.options.alias) { + delete target[rename.from]; + } + } + } + + // Validate schema + + if (!this._inner.children && // null allows any keys + !this._inner.patterns.length && + !this._inner.dependencies.length) { + + return finish(); + } + + const unprocessed = new Set(Object.keys(target)); + + if (this._inner.children) { + const stripProps = []; + + for (let i = 0; i < this._inner.children.length; ++i) { + const child = this._inner.children[i]; + const key = child.key; + const item = target[key]; + + unprocessed.delete(key); + + const localState = new State(key, [...state.path, key], target, state.reference); + const result = child.schema._validate(item, localState, options); + if (result.errors) { + errors.push(this.createError('object.child', { key, child: child.schema._getLabel(key), reason: result.errors }, localState, options)); + + if (options.abortEarly) { + return finish(); + } + } + else { + if (child.schema._flags.strip || (result.value === undefined && result.value !== item)) { + stripProps.push(key); + target[key] = result.finalValue; + } + else if (result.value !== undefined) { + target[key] = result.value; + } + } + } + + for (let i = 0; i < stripProps.length; ++i) { + delete target[stripProps[i]]; + } + } + + // Unknown keys + + if (unprocessed.size && this._inner.patterns.length) { + + for (const key of unprocessed) { + const localState = new State(key, [...state.path, key], target, state.reference); + const item = target[key]; + + for (let i = 0; i < this._inner.patterns.length; ++i) { + const pattern = this._inner.patterns[i]; + + if (pattern.regex ? + pattern.regex.test(key) : + !pattern.schema._validate(key, state, { ...options, abortEarly:true }).errors) { + + unprocessed.delete(key); + + const result = pattern.rule._validate(item, localState, options); + if (result.errors) { + errors.push(this.createError('object.child', { + key, + child: pattern.rule._getLabel(key), + reason: result.errors + }, localState, options)); + + if (options.abortEarly) { + return finish(); + } + } + + target[key] = result.value; + } + } + } + } + + if (unprocessed.size && (this._inner.children || this._inner.patterns.length)) { + if ((options.stripUnknown && this._flags.allowUnknown !== true) || + options.skipFunctions) { + + const stripUnknown = options.stripUnknown + ? (options.stripUnknown === true ? true : !!options.stripUnknown.objects) + : false; + + + for (const key of unprocessed) { + if (stripUnknown) { + delete target[key]; + unprocessed.delete(key); + } + else if (typeof target[key] === 'function') { + unprocessed.delete(key); + } + } + } + + if ((this._flags.allowUnknown !== undefined ? !this._flags.allowUnknown : !options.allowUnknown)) { + + for (const unprocessedKey of unprocessed) { + errors.push(this.createError('object.allowUnknown', { child: unprocessedKey, value: target[unprocessedKey] }, { + key: unprocessedKey, + path: [...state.path, unprocessedKey] + }, options, {})); + } + } + } + + // Validate dependencies + + for (let i = 0; i < this._inner.dependencies.length; ++i) { + const dep = this._inner.dependencies[i]; + const hasKey = dep.key !== null; + const splitKey = hasKey && dep.key.split('.'); + const localState = hasKey ? new State(splitKey[splitKey.length - 1], [...state.path, ...splitKey]) : new State(null, state.path); + const err = internals[dep.type].call(this, dep.key, hasKey && Hoek.reach(target, dep.key, { functions: true }), dep.peers, target, localState, options); + if (err instanceof Errors.Err) { + errors.push(err); + if (options.abortEarly) { + return finish(); + } + } + } + + return finish(); + } + + keys(schema) { + + Hoek.assert(schema === null || schema === undefined || typeof schema === 'object', 'Object schema must be a valid object'); + Hoek.assert(!schema || !(schema instanceof Any), 'Object schema cannot be a joi schema'); + + const obj = this.clone(); + + if (!schema) { + obj._inner.children = null; + return obj; + } + + const children = Object.keys(schema); + + if (!children.length) { + obj._inner.children = []; + return obj; + } + + const topo = new Topo(); + if (obj._inner.children) { + for (let i = 0; i < obj._inner.children.length; ++i) { + const child = obj._inner.children[i]; + + // Only add the key if we are not going to replace it later + if (!children.includes(child.key)) { + topo.add(child, { after: child._refs, group: child.key }); + } + } + } + + for (let i = 0; i < children.length; ++i) { + const key = children[i]; + const child = schema[key]; + try { + const cast = Cast.schema(this._currentJoi, child); + topo.add({ key, schema: cast }, { after: cast._refs, group: key }); + } + catch (castErr) { + if (castErr.hasOwnProperty('path')) { + castErr.path = key + '.' + castErr.path; + } + else { + castErr.path = key; + } + + throw castErr; + } + } + + obj._inner.children = topo.nodes; + + return obj; + } + + append(schema) { + // Skip any changes + if (schema === null || schema === undefined || Object.keys(schema).length === 0) { + return this; + } + + return this.keys(schema); + } + + unknown(allow) { + + const value = allow !== false; + + if (this._flags.allowUnknown === value) { + return this; + } + + const obj = this.clone(); + obj._flags.allowUnknown = value; + return obj; + } + + length(limit) { + + Hoek.assert(Number.isSafeInteger(limit) && limit >= 0, 'limit must be a positive integer'); + + return this._test('length', limit, function (value, state, options) { + + if (Object.keys(value).length === limit) { + return value; + } + + return this.createError('object.length', { limit, value }, state, options); + }); + } + + min(limit) { + + Hoek.assert(Number.isSafeInteger(limit) && limit >= 0, 'limit must be a positive integer'); + + return this._test('min', limit, function (value, state, options) { + + if (Object.keys(value).length >= limit) { + return value; + } + + return this.createError('object.min', { limit, value }, state, options); + }); + } + + max(limit) { + + Hoek.assert(Number.isSafeInteger(limit) && limit >= 0, 'limit must be a positive integer'); + + return this._test('max', limit, function (value, state, options) { + + if (Object.keys(value).length <= limit) { + return value; + } + + return this.createError('object.max', { limit, value }, state, options); + }); + } + + pattern(pattern, schema) { + + const isRegExp = pattern instanceof RegExp; + Hoek.assert(isRegExp || pattern instanceof Any, 'pattern must be a regex or schema'); + Hoek.assert(schema !== undefined, 'Invalid rule'); + + if (isRegExp) { + Hoek.assert(!pattern.flags.includes('g') && !pattern.flags.includes('y'), 'pattern should not use global or sticky mode'); + } + + try { + schema = Cast.schema(this._currentJoi, schema); + } + catch (castErr) { + if (castErr.hasOwnProperty('path')) { + castErr.message = `${castErr.message}(${castErr.path})`; + } + + throw castErr; + } + + const obj = this.clone(); + if (isRegExp) { + obj._inner.patterns.push({ regex: pattern, rule: schema }); + } + else { + obj._inner.patterns.push({ schema: pattern, rule: schema }); + } + + return obj; + } + + schema() { + + return this._test('schema', null, function (value, state, options) { + + if (value instanceof Any) { + return value; + } + + return this.createError('object.schema', null, state, options); + }); + } + + with(key, peers) { + + Hoek.assert(arguments.length === 2, 'Invalid number of arguments, expected 2.'); + + return this._dependency('with', key, peers); + } + + without(key, peers) { + + Hoek.assert(arguments.length === 2, 'Invalid number of arguments, expected 2.'); + + return this._dependency('without', key, peers); + } + + xor(...peers) { + + peers = Hoek.flatten(peers); + return this._dependency('xor', null, peers); + } + + oxor(...peers) { + + return this._dependency('oxor', null, peers); + } + + or(...peers) { + + peers = Hoek.flatten(peers); + return this._dependency('or', null, peers); + } + + and(...peers) { + + peers = Hoek.flatten(peers); + return this._dependency('and', null, peers); + } + + nand(...peers) { + + peers = Hoek.flatten(peers); + return this._dependency('nand', null, peers); + } + + requiredKeys(...children) { + + children = Hoek.flatten(children); + return this.applyFunctionToChildren(children, 'required'); + } + + optionalKeys(...children) { + + children = Hoek.flatten(children); + return this.applyFunctionToChildren(children, 'optional'); + } + + forbiddenKeys(...children) { + + children = Hoek.flatten(children); + return this.applyFunctionToChildren(children, 'forbidden'); + } + + rename(from, to, options) { + + Hoek.assert(typeof from === 'string' || from instanceof RegExp, 'Rename missing the from argument'); + Hoek.assert(typeof to === 'string', 'Rename missing the to argument'); + Hoek.assert(to !== from, 'Cannot rename key to same name:', from); + + for (let i = 0; i < this._inner.renames.length; ++i) { + Hoek.assert(this._inner.renames[i].from !== from, 'Cannot rename the same key multiple times'); + } + + const obj = this.clone(); + + obj._inner.renames.push({ + from, + to, + options: Hoek.applyToDefaults(internals.renameDefaults, options || {}), + isRegExp: from instanceof RegExp + }); + + return obj; + } + + applyFunctionToChildren(children, fn, args = [], root) { + + children = [].concat(children); + Hoek.assert(children.length > 0, 'expected at least one children'); + + const groupedChildren = internals.groupChildren(children); + let obj; + + if ('' in groupedChildren) { + obj = this[fn](...args); + delete groupedChildren['']; + } + else { + obj = this.clone(); + } + + if (obj._inner.children) { + root = root ? (root + '.') : ''; + + for (let i = 0; i < obj._inner.children.length; ++i) { + const child = obj._inner.children[i]; + const group = groupedChildren[child.key]; + + if (group) { + obj._inner.children[i] = { + key: child.key, + _refs: child._refs, + schema: child.schema.applyFunctionToChildren(group, fn, args, root + child.key) + }; + + delete groupedChildren[child.key]; + } + } + } + + const remaining = Object.keys(groupedChildren); + Hoek.assert(remaining.length === 0, 'unknown key(s)', remaining.join(', ')); + + return obj; + } + + _dependency(type, key, peers) { + + peers = [].concat(peers); + for (let i = 0; i < peers.length; ++i) { + Hoek.assert(typeof peers[i] === 'string', type, 'peers must be a string or array of strings'); + } + + const obj = this.clone(); + obj._inner.dependencies.push({ type, key, peers }); + return obj; + } + + describe(shallow) { + + const description = super.describe(); + + if (description.rules) { + for (let i = 0; i < description.rules.length; ++i) { + const rule = description.rules[i]; + // Coverage off for future-proof descriptions, only object().assert() is use right now + if (/* $lab:coverage:off$ */rule.arg && + typeof rule.arg === 'object' && + rule.arg.schema && + rule.arg.ref /* $lab:coverage:on$ */) { + rule.arg = { + schema: rule.arg.schema.describe(), + ref: rule.arg.ref.toString() + }; + } + } + } + + if (this._inner.children && + !shallow) { + + description.children = {}; + for (let i = 0; i < this._inner.children.length; ++i) { + const child = this._inner.children[i]; + description.children[child.key] = child.schema.describe(); + } + } + + if (this._inner.dependencies.length) { + description.dependencies = Hoek.clone(this._inner.dependencies); + } + + if (this._inner.patterns.length) { + description.patterns = []; + + for (let i = 0; i < this._inner.patterns.length; ++i) { + const pattern = this._inner.patterns[i]; + if (pattern.regex) { + description.patterns.push({ regex: pattern.regex.toString(), rule: pattern.rule.describe() }); + } + else { + description.patterns.push({ schema: pattern.schema.describe(), rule: pattern.rule.describe() }); + } + } + } + + if (this._inner.renames.length > 0) { + description.renames = Hoek.clone(this._inner.renames); + } + + return description; + } + + assert(ref, schema, message) { + + ref = Cast.ref(ref); + Hoek.assert(ref.isContext || ref.depth > 1, 'Cannot use assertions for root level references - use direct key rules instead'); + message = message || 'pass the assertion test'; + Hoek.assert(typeof message === 'string', 'Message must be a string'); + + try { + schema = Cast.schema(this._currentJoi, schema); + } + catch (castErr) { + if (castErr.hasOwnProperty('path')) { + castErr.message = `${castErr.message}(${castErr.path})`; + } + + throw castErr; + } + + const key = ref.path[ref.path.length - 1]; + const path = ref.path.join('.'); + + return this._test('assert', { schema, ref }, function (value, state, options) { + + const result = schema._validate(ref(value), null, options, value); + if (!result.errors) { + return value; + } + + const localState = new State(key, ref.path, state.parent, state.reference); + return this.createError('object.assert', { ref: path, message }, localState, options); + }); + } + + type(constructor, name = constructor.name) { + + Hoek.assert(typeof constructor === 'function', 'type must be a constructor function'); + const typeData = { + name, + ctor: constructor + }; + + return this._test('type', typeData, function (value, state, options) { + + if (value instanceof constructor) { + return value; + } + + return this.createError('object.type', { type: typeData.name, value }, state, options); + }); + } +}; + + +internals.renameDefaults = { + alias: false, // Keep old value in place + multiple: false, // Allow renaming multiple keys into the same target + override: false // Overrides an existing key +}; + + +internals.groupChildren = function (children) { + + children.sort(); + + const grouped = {}; + + for (let i = 0; i < children.length; ++i) { + const child = children[i]; + Hoek.assert(typeof child === 'string', 'children must be strings'); + const group = child.split('.')[0]; + const childGroup = grouped[group] = (grouped[group] || []); + childGroup.push(child.substring(group.length + 1)); + } + + return grouped; +}; + + +internals.keysToLabels = function (schema, keys) { + + const children = schema._inner.children; + + if (!children) { + return keys; + } + + const findLabel = function (key) { + + const matchingChild = schema._currentJoi.reach(schema, key); + return matchingChild ? matchingChild._getLabel(key) : key; + }; + + if (Array.isArray(keys)) { + return keys.map(findLabel); + } + + return findLabel(keys); +}; + + +internals.with = function (key, value, peers, parent, state, options) { + + if (value === undefined) { + return; + } + + for (let i = 0; i < peers.length; ++i) { + + const peer = peers[i]; + const keysExist = Hoek.reach(parent, peer, { functions: true }); + if (keysExist === undefined) { + + return this.createError('object.with', { + main: key, + mainWithLabel: internals.keysToLabels(this, key), + peer, + peerWithLabel: internals.keysToLabels(this, peer) + }, state, options); + } + } +}; + + +internals.without = function (key, value, peers, parent, state, options) { + + if (value === undefined) { + return; + } + + for (let i = 0; i < peers.length; ++i) { + const peer = peers[i]; + const keysExist = Hoek.reach(parent, peer, { functions: true }); + if (keysExist !== undefined) { + + return this.createError('object.without', { + main: key, + mainWithLabel: internals.keysToLabels(this, key), + peer, + peerWithLabel: internals.keysToLabels(this, peer) + }, state, options); + } + } +}; + + +internals.xor = function (key, value, peers, parent, state, options) { + + const present = []; + for (let i = 0; i < peers.length; ++i) { + const peer = peers[i]; + const keysExist = Hoek.reach(parent, peer, { functions: true }); + if (keysExist !== undefined) { + present.push(peer); + } + } + + if (present.length === 1) { + return; + } + + const context = { peers, peersWithLabels: internals.keysToLabels(this, peers) }; + + if (present.length === 0) { + return this.createError('object.missing', context, state, options); + } + + context.present = present; + context.presentWithLabels = internals.keysToLabels(this, present); + + return this.createError('object.xor', context, state, options); +}; + + +internals.oxor = function (key, value, peers, parent, state, options) { + + const present = []; + for (let i = 0; i < peers.length; ++i) { + const peer = peers[i]; + const keysExist = Hoek.reach(parent, peer, { functions: true }); + if (keysExist !== undefined) { + present.push(peer); + } + } + + if (!present.length || + present.length === 1) { + + return; + } + + const context = { peers, peersWithLabels: internals.keysToLabels(this, peers) }; + context.present = present; + context.presentWithLabels = internals.keysToLabels(this, present); + + return this.createError('object.oxor', context, state, options); +}; + + +internals.or = function (key, value, peers, parent, state, options) { + + for (let i = 0; i < peers.length; ++i) { + const peer = peers[i]; + const keysExist = Hoek.reach(parent, peer, { functions: true }); + if (keysExist !== undefined) { + return; + } + } + + return this.createError('object.missing', { + peers, + peersWithLabels: internals.keysToLabels(this, peers) + }, state, options); +}; + + +internals.and = function (key, value, peers, parent, state, options) { + + const missing = []; + const present = []; + const count = peers.length; + for (let i = 0; i < count; ++i) { + const peer = peers[i]; + const keysExist = Hoek.reach(parent, peer, { functions: true }); + if (keysExist === undefined) { + + missing.push(peer); + } + else { + present.push(peer); + } + } + + const aon = (missing.length === count || present.length === count); + + if (!aon) { + + return this.createError('object.and', { + present, + presentWithLabels: internals.keysToLabels(this, present), + missing, + missingWithLabels: internals.keysToLabels(this, missing) + }, state, options); + } +}; + + +internals.nand = function (key, value, peers, parent, state, options) { + + const present = []; + for (let i = 0; i < peers.length; ++i) { + const peer = peers[i]; + const keysExist = Hoek.reach(parent, peer, { functions: true }); + if (keysExist !== undefined) { + + present.push(peer); + } + } + + const main = peers[0]; + const values = peers.slice(1); + const allPresent = (present.length === peers.length); + return allPresent ? this.createError('object.nand', { + main, + mainWithLabel: internals.keysToLabels(this, main), + peers: values, + peersWithLabels: internals.keysToLabels(this, values) + }, state, options) : null; +}; + + +module.exports = new internals.Object(); diff --git a/node_modules/@hapi/joi/lib/types/state.js b/node_modules/@hapi/joi/lib/types/state.js new file mode 100755 index 0000000..04b8283 --- /dev/null +++ b/node_modules/@hapi/joi/lib/types/state.js @@ -0,0 +1,14 @@ +'use strict'; + +const internals = {}; + + +module.exports = class { + constructor(key, path, parent, reference) { + + this.key = key; + this.path = path; + this.parent = parent; + this.reference = reference; + } +}; diff --git a/node_modules/@hapi/joi/lib/types/string/index.js b/node_modules/@hapi/joi/lib/types/string/index.js new file mode 100755 index 0000000..8c5cb38 --- /dev/null +++ b/node_modules/@hapi/joi/lib/types/string/index.js @@ -0,0 +1,724 @@ +'use strict'; + +const Net = require('net'); + +const Address = require('@hapi/address'); +const Hoek = require('@hapi/hoek'); + +const Any = require('../any'); +const Ref = require('../../ref'); +const JoiDate = require('../date'); + +const Uri = require('./uri'); +const Ip = require('./ip'); + + +const internals = { + uriRegex: Uri.createUriRegex(), + ipRegex: Ip.createIpRegex(['ipv4', 'ipv6', 'ipvfuture'], 'optional'), + guidBrackets: { + '{': '}', '[': ']', '(': ')', '': '' + }, + guidVersions: { + uuidv1: '1', + uuidv2: '2', + uuidv3: '3', + uuidv4: '4', + uuidv5: '5' + }, + cidrPresences: ['required', 'optional', 'forbidden'], + normalizationForms: ['NFC', 'NFD', 'NFKC', 'NFKD'] +}; + + +internals.String = class extends Any { + + constructor() { + + super(); + this._type = 'string'; + this._invalids.add(''); + } + + _base(value, state, options) { + + if (typeof value === 'string' && + options.convert) { + + if (this._flags.normalize) { + value = value.normalize(this._flags.normalize); + } + + if (this._flags.case) { + value = (this._flags.case === 'upper' ? value.toLocaleUpperCase() : value.toLocaleLowerCase()); + } + + if (this._flags.trim) { + value = value.trim(); + } + + if (this._inner.replacements) { + + for (let i = 0; i < this._inner.replacements.length; ++i) { + const replacement = this._inner.replacements[i]; + value = value.replace(replacement.pattern, replacement.replacement); + } + } + + if (this._flags.truncate) { + for (let i = 0; i < this._tests.length; ++i) { + const test = this._tests[i]; + if (test.name === 'max') { + value = value.slice(0, test.arg); + break; + } + } + } + + if (this._flags.byteAligned && value.length % 2 !== 0) { + value = `0${value}`; + } + } + + return { + value, + errors: (typeof value === 'string') ? null : this.createError('string.base', { value }, state, options) + }; + } + + insensitive() { + + if (this._flags.insensitive) { + return this; + } + + const obj = this.clone(); + obj._flags.insensitive = true; + return obj; + } + + creditCard() { + + return this._test('creditCard', undefined, function (value, state, options) { + + let i = value.length; + let sum = 0; + let mul = 1; + + while (i--) { + const char = value.charAt(i) * mul; + sum = sum + (char - (char > 9) * 9); + mul = mul ^ 3; + } + + const check = (sum % 10 === 0) && (sum > 0); + return check ? value : this.createError('string.creditCard', { value }, state, options); + }); + } + + regex(pattern, patternOptions) { + + Hoek.assert(pattern instanceof RegExp, 'pattern must be a RegExp'); + Hoek.assert(!pattern.flags.includes('g') && !pattern.flags.includes('y'), 'pattern should not use global or sticky mode'); + + const patternObject = { pattern }; + + if (typeof patternOptions === 'string') { + patternObject.name = patternOptions; + } + else if (typeof patternOptions === 'object') { + patternObject.invert = !!patternOptions.invert; + + if (patternOptions.name) { + patternObject.name = patternOptions.name; + } + } + + const errorCode = ['string.regex', patternObject.invert ? '.invert' : '', patternObject.name ? '.name' : '.base'].join(''); + + return this._test('regex', patternObject, function (value, state, options) { + + const patternMatch = patternObject.pattern.test(value); + + if (patternMatch ^ patternObject.invert) { + return value; + } + + return this.createError(errorCode, { name: patternObject.name, pattern: patternObject.pattern, value }, state, options); + }); + } + + alphanum() { + + return this._test('alphanum', undefined, function (value, state, options) { + + if (/^[a-zA-Z0-9]+$/.test(value)) { + return value; + } + + return this.createError('string.alphanum', { value }, state, options); + }); + } + + token() { + + return this._test('token', undefined, function (value, state, options) { + + if (/^\w+$/.test(value)) { + return value; + } + + return this.createError('string.token', { value }, state, options); + }); + } + + email(validationOptions) { + + if (validationOptions) { + Hoek.assert(typeof validationOptions === 'object', 'email options must be an object'); + + // Migration validation for unsupported options + + Hoek.assert(validationOptions.checkDNS === undefined, 'checkDNS option is not supported'); + Hoek.assert(validationOptions.errorLevel === undefined, 'errorLevel option is not supported'); + Hoek.assert(validationOptions.minDomainAtoms === undefined, 'minDomainAtoms option is not supported, use minDomainSegments instead'); + Hoek.assert(validationOptions.tldBlacklist === undefined, 'tldBlacklist option is not supported, use tlds.deny instead'); + Hoek.assert(validationOptions.tldWhitelist === undefined, 'tldWhitelist option is not supported, use tlds.allow instead'); + + // Validate options + + if (validationOptions.tlds && + typeof validationOptions.tlds === 'object') { + + Hoek.assert(validationOptions.tlds.allow === undefined || + validationOptions.tlds.allow === false || + validationOptions.tlds.allow === true || + Array.isArray(validationOptions.tlds.allow) || + validationOptions.tlds.allow instanceof Set, 'tlds.allow must be an array, Set, or boolean'); + + Hoek.assert(validationOptions.tlds.deny === undefined || + Array.isArray(validationOptions.tlds.deny) || + validationOptions.tlds.deny instanceof Set, 'tlds.deny must be an array or Set'); + + const normalizeTable = (table) => { + + if (table === undefined || + typeof table === 'boolean' || + table instanceof Set) { + + return table; + } + + return new Set(table); + }; + + validationOptions = Object.assign({}, validationOptions); // Shallow cloned + validationOptions.tlds = { + allow: normalizeTable(validationOptions.tlds.allow), + deny: normalizeTable(validationOptions.tlds.deny) + }; + } + + Hoek.assert(validationOptions.minDomainSegments === undefined || + Number.isSafeInteger(validationOptions.minDomainSegments) && validationOptions.minDomainSegments > 0, 'minDomainSegments must be a positive integer'); + } + + return this._test('email', validationOptions, function (value, state, options) { + + if (Address.email.isValid(value, validationOptions)) { + return value; + } + + return this.createError('string.email', { value }, state, options); + }); + } + + ip(ipOptions = {}) { + + let regex = internals.ipRegex; + Hoek.assert(typeof ipOptions === 'object', 'options must be an object'); + + if (ipOptions.cidr) { + Hoek.assert(typeof ipOptions.cidr === 'string', 'cidr must be a string'); + ipOptions.cidr = ipOptions.cidr.toLowerCase(); + + Hoek.assert(Hoek.contain(internals.cidrPresences, ipOptions.cidr), 'cidr must be one of ' + internals.cidrPresences.join(', ')); + + // If we only received a `cidr` setting, create a regex for it. But we don't need to create one if `cidr` is "optional" since that is the default + if (!ipOptions.version && ipOptions.cidr !== 'optional') { + regex = Ip.createIpRegex(['ipv4', 'ipv6', 'ipvfuture'], ipOptions.cidr); + } + } + else { + + // Set our default cidr strategy + ipOptions.cidr = 'optional'; + } + + let versions; + if (ipOptions.version) { + if (!Array.isArray(ipOptions.version)) { + ipOptions.version = [ipOptions.version]; + } + + Hoek.assert(ipOptions.version.length >= 1, 'version must have at least 1 version specified'); + + versions = []; + for (let i = 0; i < ipOptions.version.length; ++i) { + let version = ipOptions.version[i]; + Hoek.assert(typeof version === 'string', 'version at position ' + i + ' must be a string'); + version = version.toLowerCase(); + Hoek.assert(Ip.versions[version], 'version at position ' + i + ' must be one of ' + Object.keys(Ip.versions).join(', ')); + versions.push(version); + } + + // Make sure we have a set of versions + versions = Array.from(new Set(versions)); + + regex = Ip.createIpRegex(versions, ipOptions.cidr); + } + + return this._test('ip', ipOptions, function (value, state, options) { + + if (regex.test(value)) { + return value; + } + + if (versions) { + return this.createError('string.ipVersion', { value, cidr: ipOptions.cidr, version: versions }, state, options); + } + + return this.createError('string.ip', { value, cidr: ipOptions.cidr }, state, options); + }); + } + + uri(uriOptions) { + + let customScheme = ''; + let allowRelative = false; + let relativeOnly = false; + let allowQuerySquareBrackets = false; + let regex = internals.uriRegex; + + if (uriOptions) { + Hoek.assert(typeof uriOptions === 'object', 'options must be an object'); + + const unknownOptions = Object.keys(uriOptions).filter((key) => !['scheme', 'allowRelative', 'relativeOnly', 'allowQuerySquareBrackets'].includes(key)); + Hoek.assert(unknownOptions.length === 0, `options contain unknown keys: ${unknownOptions}`); + + if (uriOptions.scheme) { + Hoek.assert(uriOptions.scheme instanceof RegExp || typeof uriOptions.scheme === 'string' || Array.isArray(uriOptions.scheme), 'scheme must be a RegExp, String, or Array'); + + if (!Array.isArray(uriOptions.scheme)) { + uriOptions.scheme = [uriOptions.scheme]; + } + + Hoek.assert(uriOptions.scheme.length >= 1, 'scheme must have at least 1 scheme specified'); + + // Flatten the array into a string to be used to match the schemes. + for (let i = 0; i < uriOptions.scheme.length; ++i) { + const scheme = uriOptions.scheme[i]; + Hoek.assert(scheme instanceof RegExp || typeof scheme === 'string', 'scheme at position ' + i + ' must be a RegExp or String'); + + // Add OR separators if a value already exists + customScheme = customScheme + (customScheme ? '|' : ''); + + // If someone wants to match HTTP or HTTPS for example then we need to support both RegExp and String so we don't escape their pattern unknowingly. + if (scheme instanceof RegExp) { + customScheme = customScheme + scheme.source; + } + else { + Hoek.assert(/[a-zA-Z][a-zA-Z0-9+-\.]*/.test(scheme), 'scheme at position ' + i + ' must be a valid scheme'); + customScheme = customScheme + Hoek.escapeRegex(scheme); + } + } + } + + if (uriOptions.allowRelative) { + allowRelative = true; + } + + if (uriOptions.relativeOnly) { + relativeOnly = true; + } + + if (uriOptions.allowQuerySquareBrackets) { + allowQuerySquareBrackets = true; + } + } + + if (customScheme || allowRelative || relativeOnly || allowQuerySquareBrackets) { + regex = Uri.createUriRegex(customScheme, allowRelative, relativeOnly, allowQuerySquareBrackets); + } + + return this._test('uri', uriOptions, function (value, state, options) { + + if (regex.test(value)) { + return value; + } + + if (relativeOnly) { + return this.createError('string.uriRelativeOnly', { value }, state, options); + } + + if (customScheme) { + return this.createError('string.uriCustomScheme', { scheme: customScheme, value }, state, options); + } + + return this.createError('string.uri', { value }, state, options); + }); + } + + isoDate() { + + return this._test('isoDate', undefined, function (value, state, options) { + + if (JoiDate._isIsoDate(value)) { + if (!options.convert) { + return value; + } + + const d = new Date(value); + if (!isNaN(d.getTime())) { + return d.toISOString(); + } + } + + return this.createError('string.isoDate', { value }, state, options); + }); + } + + guid(guidOptions) { + + let versionNumbers = ''; + + if (guidOptions && guidOptions.version) { + if (!Array.isArray(guidOptions.version)) { + guidOptions.version = [guidOptions.version]; + } + + Hoek.assert(guidOptions.version.length >= 1, 'version must have at least 1 valid version specified'); + const versions = new Set(); + + for (let i = 0; i < guidOptions.version.length; ++i) { + let version = guidOptions.version[i]; + Hoek.assert(typeof version === 'string', 'version at position ' + i + ' must be a string'); + version = version.toLowerCase(); + const versionNumber = internals.guidVersions[version]; + Hoek.assert(versionNumber, 'version at position ' + i + ' must be one of ' + Object.keys(internals.guidVersions).join(', ')); + Hoek.assert(!(versions.has(versionNumber)), 'version at position ' + i + ' must not be a duplicate.'); + + versionNumbers += versionNumber; + versions.add(versionNumber); + } + } + + const guidRegex = new RegExp(`^([\\[{\\(]?)[0-9A-F]{8}([:-]?)[0-9A-F]{4}\\2?[${versionNumbers || '0-9A-F'}][0-9A-F]{3}\\2?[${versionNumbers ? '89AB' : '0-9A-F'}][0-9A-F]{3}\\2?[0-9A-F]{12}([\\]}\\)]?)$`, 'i'); + + return this._test('guid', guidOptions, function (value, state, options) { + + const results = guidRegex.exec(value); + + if (!results) { + return this.createError('string.guid', { value }, state, options); + } + + // Matching braces + if (internals.guidBrackets[results[1]] !== results[results.length - 1]) { + return this.createError('string.guid', { value }, state, options); + } + + return value; + }); + } + + hex(hexOptions = {}) { + + Hoek.assert(typeof hexOptions === 'object', 'hex options must be an object'); + Hoek.assert(typeof hexOptions.byteAligned === 'undefined' || typeof hexOptions.byteAligned === 'boolean', + 'byteAligned must be boolean'); + + const byteAligned = hexOptions.byteAligned === true; + const regex = /^[a-f0-9]+$/i; + + const obj = this._test('hex', regex, function (value, state, options) { + + if (regex.test(value)) { + if (byteAligned && value.length % 2 !== 0) { + return this.createError('string.hexAlign', { value }, state, options); + } + + return value; + } + + return this.createError('string.hex', { value }, state, options); + }); + + if (byteAligned) { + obj._flags.byteAligned = true; + } + + return obj; + } + + base64(base64Options = {}) { + + // Validation. + Hoek.assert(typeof base64Options === 'object', 'base64 options must be an object'); + Hoek.assert(typeof base64Options.paddingRequired === 'undefined' || typeof base64Options.paddingRequired === 'boolean', + 'paddingRequired must be boolean'); + + // Determine if padding is required. + const paddingRequired = base64Options.paddingRequired === false ? + base64Options.paddingRequired + : base64Options.paddingRequired || true; + + // Set validation based on preference. + const regex = paddingRequired ? + // Padding is required. + /^(?:[A-Za-z0-9+\/]{2}[A-Za-z0-9+\/]{2})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/ + // Padding is optional. + : /^(?:[A-Za-z0-9+\/]{2}[A-Za-z0-9+\/]{2})*(?:[A-Za-z0-9+\/]{2}(==)?|[A-Za-z0-9+\/]{3}=?)?$/; + + return this._test('base64', regex, function (value, state, options) { + + if (regex.test(value)) { + return value; + } + + return this.createError('string.base64', { value }, state, options); + }); + } + + dataUri(dataUriOptions = {}) { + + const regex = /^data:[\w+.-]+\/[\w+.-]+;((charset=[\w-]+|base64),)?(.*)$/; + + // Determine if padding is required. + const paddingRequired = dataUriOptions.paddingRequired === false ? + dataUriOptions.paddingRequired + : dataUriOptions.paddingRequired || true; + + const base64regex = paddingRequired ? + /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/ + : /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}(==)?|[A-Za-z0-9+\/]{3}=?)?$/; + + return this._test('dataUri', regex, function (value, state, options) { + + const matches = value.match(regex); + + if (matches) { + if (!matches[2]) { + return value; + } + + if (matches[2] !== 'base64') { + return value; + } + + if (base64regex.test(matches[3])) { + return value; + } + } + + return this.createError('string.dataUri', { value }, state, options); + }); + } + + hostname() { + + const regex = /^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$/; + + return this._test('hostname', undefined, function (value, state, options) { + + if ((value.length <= 255 && regex.test(value)) || + Net.isIPv6(value)) { + + return value; + } + + return this.createError('string.hostname', { value }, state, options); + }); + } + + normalize(form = 'NFC') { + + Hoek.assert(Hoek.contain(internals.normalizationForms, form), 'normalization form must be one of ' + internals.normalizationForms.join(', ')); + + const obj = this._test('normalize', form, function (value, state, options) { + + if (options.convert || + value === value.normalize(form)) { + + return value; + } + + return this.createError('string.normalize', { value, form }, state, options); + }); + + obj._flags.normalize = form; + return obj; + } + + lowercase() { + + const obj = this._test('lowercase', undefined, function (value, state, options) { + + if (options.convert || + value === value.toLocaleLowerCase()) { + + return value; + } + + return this.createError('string.lowercase', { value }, state, options); + }); + + obj._flags.case = 'lower'; + return obj; + } + + uppercase() { + + const obj = this._test('uppercase', undefined, function (value, state, options) { + + if (options.convert || + value === value.toLocaleUpperCase()) { + + return value; + } + + return this.createError('string.uppercase', { value }, state, options); + }); + + obj._flags.case = 'upper'; + return obj; + } + + trim(enabled = true) { + + Hoek.assert(typeof enabled === 'boolean', 'option must be a boolean'); + + if ((this._flags.trim && enabled) || (!this._flags.trim && !enabled)) { + return this; + } + + let obj; + if (enabled) { + obj = this._test('trim', undefined, function (value, state, options) { + + if (options.convert || + value === value.trim()) { + + return value; + } + + return this.createError('string.trim', { value }, state, options); + }); + } + else { + obj = this.clone(); + obj._tests = obj._tests.filter((test) => test.name !== 'trim'); + } + + obj._flags.trim = enabled; + return obj; + } + + replace(pattern, replacement) { + + if (typeof pattern === 'string') { + pattern = new RegExp(Hoek.escapeRegex(pattern), 'g'); + } + + Hoek.assert(pattern instanceof RegExp, 'pattern must be a RegExp'); + Hoek.assert(typeof replacement === 'string', 'replacement must be a String'); + + // This can not be considere a test like trim, we can't "reject" + // anything from this rule, so just clone the current object + const obj = this.clone(); + + if (!obj._inner.replacements) { + obj._inner.replacements = []; + } + + obj._inner.replacements.push({ + pattern, + replacement + }); + + return obj; + } + + truncate(enabled) { + + const value = enabled === undefined ? true : !!enabled; + + if (this._flags.truncate === value) { + return this; + } + + const obj = this.clone(); + obj._flags.truncate = value; + return obj; + } + +}; + +internals.compare = function (type, compare) { + + return function (limit, encoding) { + + const isRef = Ref.isRef(limit); + + Hoek.assert((Number.isSafeInteger(limit) && limit >= 0) || isRef, 'limit must be a positive integer or reference'); + Hoek.assert(!encoding || Buffer.isEncoding(encoding), 'Invalid encoding:', encoding); + + return this._test(type, limit, function (value, state, options) { + + let compareTo; + if (isRef) { + compareTo = limit(state.reference || state.parent, options); + + if (!Number.isSafeInteger(compareTo)) { + return this.createError('string.ref', { ref: limit, value: compareTo }, state, options); + } + } + else { + compareTo = limit; + } + + if (compare(value, compareTo, encoding)) { + return value; + } + + return this.createError('string.' + type, { limit: compareTo, value, encoding }, state, options); + }); + }; +}; + + +internals.String.prototype.min = internals.compare('min', (value, limit, encoding) => { + + const length = encoding ? Buffer.byteLength(value, encoding) : value.length; + return length >= limit; +}); + + +internals.String.prototype.max = internals.compare('max', (value, limit, encoding) => { + + const length = encoding ? Buffer.byteLength(value, encoding) : value.length; + return length <= limit; +}); + + +internals.String.prototype.length = internals.compare('length', (value, limit, encoding) => { + + const length = encoding ? Buffer.byteLength(value, encoding) : value.length; + return length === limit; +}); + +// Aliases + +internals.String.prototype.uuid = internals.String.prototype.guid; + +module.exports = new internals.String(); diff --git a/node_modules/@hapi/joi/lib/types/string/ip.js b/node_modules/@hapi/joi/lib/types/string/ip.js new file mode 100755 index 0000000..5b658a2 --- /dev/null +++ b/node_modules/@hapi/joi/lib/types/string/ip.js @@ -0,0 +1,50 @@ +'use strict'; + +const RFC3986 = require('./rfc3986'); + + +const internals = { + Ip: { + cidrs: { + ipv4: { + required: '\\/(?:' + RFC3986.ipv4Cidr + ')', + optional: '(?:\\/(?:' + RFC3986.ipv4Cidr + '))?', + forbidden: '' + }, + ipv6: { + required: '\\/' + RFC3986.ipv6Cidr, + optional: '(?:\\/' + RFC3986.ipv6Cidr + ')?', + forbidden: '' + }, + ipvfuture: { + required: '\\/' + RFC3986.ipv6Cidr, + optional: '(?:\\/' + RFC3986.ipv6Cidr + ')?', + forbidden: '' + } + }, + versions: { + ipv4: RFC3986.IPv4address, + ipv6: RFC3986.IPv6address, + ipvfuture: RFC3986.IPvFuture + } + } +}; + + +internals.Ip.createIpRegex = function (versions, cidr) { + + let regex; + for (let i = 0; i < versions.length; ++i) { + const version = versions[i]; + if (!regex) { + regex = '^(?:' + internals.Ip.versions[version] + internals.Ip.cidrs[version][cidr]; + } + else { + regex += '|' + internals.Ip.versions[version] + internals.Ip.cidrs[version][cidr]; + } + } + + return new RegExp(regex + ')$'); +}; + +module.exports = internals.Ip; diff --git a/node_modules/@hapi/joi/lib/types/string/rfc3986.js b/node_modules/@hapi/joi/lib/types/string/rfc3986.js new file mode 100755 index 0000000..5113c1e --- /dev/null +++ b/node_modules/@hapi/joi/lib/types/string/rfc3986.js @@ -0,0 +1,214 @@ +'use strict'; + +const internals = { + rfc3986: {} +}; + + +internals.generate = function () { + + /** + * elements separated by forward slash ("/") are alternatives. + */ + const or = '|'; + + /** + * Rule to support zero-padded addresses. + */ + const zeroPad = '0?'; + + /** + * DIGIT = %x30-39 ; 0-9 + */ + const digit = '0-9'; + const digitOnly = '[' + digit + ']'; + + /** + * ALPHA = %x41-5A / %x61-7A ; A-Z / a-z + */ + const alpha = 'a-zA-Z'; + const alphaOnly = '[' + alpha + ']'; + + /** + * IPv4 + * cidr = DIGIT ; 0-9 + * / %x31-32 DIGIT ; 10-29 + * / "3" %x30-32 ; 30-32 + */ + internals.rfc3986.ipv4Cidr = digitOnly + or + '[1-2]' + digitOnly + or + '3' + '[0-2]'; + + /** + * IPv6 + * cidr = DIGIT ; 0-9 + * / %x31-39 DIGIT ; 10-99 + * / "1" %x0-1 DIGIT ; 100-119 + * / "12" %x0-8 ; 120-128 + */ + internals.rfc3986.ipv6Cidr = '(?:' + zeroPad + zeroPad + digitOnly + or + zeroPad + '[1-9]' + digitOnly + or + '1' + '[01]' + digitOnly + or + '12[0-8])'; + + /** + * HEXDIG = DIGIT / "A" / "B" / "C" / "D" / "E" / "F" + */ + const hexDigit = digit + 'A-Fa-f'; + const hexDigitOnly = '[' + hexDigit + ']'; + + /** + * unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" + */ + const unreserved = alpha + digit + '-\\._~'; + + /** + * sub-delims = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "=" + */ + const subDelims = '!\\$&\'\\(\\)\\*\\+,;='; + + /** + * pct-encoded = "%" HEXDIG HEXDIG + */ + const pctEncoded = '%' + hexDigit; + + /** + * pchar = unreserved / pct-encoded / sub-delims / ":" / "@" + */ + const pchar = unreserved + pctEncoded + subDelims + ':@'; + const pcharOnly = '[' + pchar + ']'; + + /** + * squareBrackets example: [] + */ + const squareBrackets = '\\[\\]'; + + /** + * dec-octet = DIGIT ; 0-9 + * / %x31-39 DIGIT ; 10-99 + * / "1" 2DIGIT ; 100-199 + * / "2" %x30-34 DIGIT ; 200-249 + * / "25" %x30-35 ; 250-255 + */ + const decOctect = '(?:' + zeroPad + zeroPad + digitOnly + or + zeroPad + '[1-9]' + digitOnly + or + '1' + digitOnly + digitOnly + or + '2' + '[0-4]' + digitOnly + or + '25' + '[0-5])'; + + /** + * IPv4address = dec-octet "." dec-octet "." dec-octet "." dec-octet + */ + internals.rfc3986.IPv4address = '(?:' + decOctect + '\\.){3}' + decOctect; + + /** + * h16 = 1*4HEXDIG ; 16 bits of address represented in hexadecimal + * ls32 = ( h16 ":" h16 ) / IPv4address ; least-significant 32 bits of address + * IPv6address = 6( h16 ":" ) ls32 + * / "::" 5( h16 ":" ) ls32 + * / [ h16 ] "::" 4( h16 ":" ) ls32 + * / [ *1( h16 ":" ) h16 ] "::" 3( h16 ":" ) ls32 + * / [ *2( h16 ":" ) h16 ] "::" 2( h16 ":" ) ls32 + * / [ *3( h16 ":" ) h16 ] "::" h16 ":" ls32 + * / [ *4( h16 ":" ) h16 ] "::" ls32 + * / [ *5( h16 ":" ) h16 ] "::" h16 + * / [ *6( h16 ":" ) h16 ] "::" + */ + const h16 = hexDigitOnly + '{1,4}'; + const ls32 = '(?:' + h16 + ':' + h16 + '|' + internals.rfc3986.IPv4address + ')'; + const IPv6SixHex = '(?:' + h16 + ':){6}' + ls32; + const IPv6FiveHex = '::(?:' + h16 + ':){5}' + ls32; + const IPv6FourHex = '(?:' + h16 + ')?::(?:' + h16 + ':){4}' + ls32; + const IPv6ThreeHex = '(?:(?:' + h16 + ':){0,1}' + h16 + ')?::(?:' + h16 + ':){3}' + ls32; + const IPv6TwoHex = '(?:(?:' + h16 + ':){0,2}' + h16 + ')?::(?:' + h16 + ':){2}' + ls32; + const IPv6OneHex = '(?:(?:' + h16 + ':){0,3}' + h16 + ')?::' + h16 + ':' + ls32; + const IPv6NoneHex = '(?:(?:' + h16 + ':){0,4}' + h16 + ')?::' + ls32; + const IPv6NoneHex2 = '(?:(?:' + h16 + ':){0,5}' + h16 + ')?::' + h16; + const IPv6NoneHex3 = '(?:(?:' + h16 + ':){0,6}' + h16 + ')?::'; + internals.rfc3986.IPv6address = '(?:' + IPv6SixHex + or + IPv6FiveHex + or + IPv6FourHex + or + IPv6ThreeHex + or + IPv6TwoHex + or + IPv6OneHex + or + IPv6NoneHex + or + IPv6NoneHex2 + or + IPv6NoneHex3 + ')'; + + /** + * IPvFuture = "v" 1*HEXDIG "." 1*( unreserved / sub-delims / ":" ) + */ + internals.rfc3986.IPvFuture = 'v' + hexDigitOnly + '+\\.[' + unreserved + subDelims + ':]+'; + + /** + * scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." ) + */ + internals.rfc3986.scheme = alphaOnly + '[' + alpha + digit + '+-\\.]*'; + + /** + * userinfo = *( unreserved / pct-encoded / sub-delims / ":" ) + */ + const userinfo = '[' + unreserved + pctEncoded + subDelims + ':]*'; + + /** + * IP-literal = "[" ( IPv6address / IPvFuture ) "]" + */ + const IPLiteral = '\\[(?:' + internals.rfc3986.IPv6address + or + internals.rfc3986.IPvFuture + ')\\]'; + + /** + * reg-name = *( unreserved / pct-encoded / sub-delims ) + */ + const regName = '[' + unreserved + pctEncoded + subDelims + ']{0,255}'; + + /** + * host = IP-literal / IPv4address / reg-name + */ + const host = '(?:' + IPLiteral + or + internals.rfc3986.IPv4address + or + regName + ')'; + + /** + * port = *DIGIT + */ + const port = digitOnly + '*'; + + /** + * authority = [ userinfo "@" ] host [ ":" port ] + */ + const authority = '(?:' + userinfo + '@)?' + host + '(?::' + port + ')?'; + + /** + * segment = *pchar + * segment-nz = 1*pchar + * path = path-abempty ; begins with "/" or is empty + * / path-absolute ; begins with "/" but not "//" + * / path-noscheme ; begins with a non-colon segment + * / path-rootless ; begins with a segment + * / path-empty ; zero characters + * path-abempty = *( "/" segment ) + * path-absolute = "/" [ segment-nz *( "/" segment ) ] + * path-rootless = segment-nz *( "/" segment ) + */ + const segment = pcharOnly + '*'; + const segmentNz = pcharOnly + '+'; + const segmentNzNc = '[' + unreserved + pctEncoded + subDelims + '@' + ']+'; + const pathEmpty = ''; + const pathAbEmpty = '(?:\\/' + segment + ')*'; + const pathAbsolute = '\\/(?:' + segmentNz + pathAbEmpty + ')?'; + const pathRootless = segmentNz + pathAbEmpty; + const pathNoScheme = segmentNzNc + pathAbEmpty; + + /** + * hier-part = "//" authority path + */ + internals.rfc3986.hierPart = '(?:' + '(?:\\/\\/' + authority + pathAbEmpty + ')' + or + pathAbsolute + or + pathRootless + ')'; + + /** + * relative-part = "//" authority path-abempty + * / path-absolute + * / path-noscheme + * / path-empty + */ + internals.rfc3986.relativeRef = '(?:' + '(?:\\/\\/' + authority + pathAbEmpty + ')' + or + pathAbsolute + or + pathNoScheme + or + pathEmpty + ')'; + + /** + * query = *( pchar / "/" / "?" ) + */ + internals.rfc3986.query = '[' + pchar + '\\/\\?]*(?=#|$)'; //Finish matching either at the fragment part or end of the line. + + /** + * query = *( pchar / "[" / "]" / "/" / "?" ) + */ + internals.rfc3986.queryWithSquareBrackets = '[' + pchar + squareBrackets + '\\/\\?]*(?=#|$)'; //Finish matching either at the fragment part or end of the line. + + /** + * fragment = *( pchar / "/" / "?" ) + */ + internals.rfc3986.fragment = '[' + pchar + '\\/\\?]*'; +}; + + +internals.generate(); + +module.exports = internals.rfc3986; diff --git a/node_modules/@hapi/joi/lib/types/string/uri.js b/node_modules/@hapi/joi/lib/types/string/uri.js new file mode 100755 index 0000000..67904f0 --- /dev/null +++ b/node_modules/@hapi/joi/lib/types/string/uri.js @@ -0,0 +1,41 @@ +'use strict'; + +const RFC3986 = require('./rfc3986'); + + +const internals = { + Uri: { + createUriRegex: function (optionalScheme, allowRelative, relativeOnly, allowQuerySquareBrackets) { + + let scheme = RFC3986.scheme; + let prefix; + + if (relativeOnly) { + prefix = '(?:' + RFC3986.relativeRef + ')'; + } + else { + // If we were passed a scheme, use it instead of the generic one + if (optionalScheme) { + + // Have to put this in a non-capturing group to handle the OR statements + scheme = '(?:' + optionalScheme + ')'; + } + + const withScheme = '(?:' + scheme + ':' + RFC3986.hierPart + ')'; + + prefix = allowRelative ? '(?:' + withScheme + '|' + RFC3986.relativeRef + ')' : withScheme; + } + + /** + * URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ] + * + * OR + * + * relative-ref = relative-part [ "?" query ] [ "#" fragment ] + */ + return new RegExp('^' + prefix + '(?:\\?' + (allowQuerySquareBrackets ? RFC3986.queryWithSquareBrackets : RFC3986.query) + ')?' + '(?:#' + RFC3986.fragment + ')?$'); + } + } +}; + +module.exports = internals.Uri; diff --git a/node_modules/@hapi/joi/lib/types/symbol/index.js b/node_modules/@hapi/joi/lib/types/symbol/index.js new file mode 100755 index 0000000..23bdf62 --- /dev/null +++ b/node_modules/@hapi/joi/lib/types/symbol/index.js @@ -0,0 +1,90 @@ +'use strict'; + +const Util = require('util'); + +const Hoek = require('@hapi/hoek'); + +const Any = require('../any'); + + +const internals = {}; + + +internals.Map = class extends Map { + + slice() { + + return new internals.Map(this); + } + + toString() { + + return Util.inspect(this); + } +}; + + +internals.Symbol = class extends Any { + + constructor() { + + super(); + this._type = 'symbol'; + this._inner.map = new internals.Map(); + } + + _base(value, state, options) { + + if (options.convert) { + const lookup = this._inner.map.get(value); + if (lookup) { + value = lookup; + } + + if (this._flags.allowOnly) { + return { + value, + errors: (typeof value === 'symbol') ? null : this.createError('symbol.map', { value, map: this._inner.map }, state, options) + }; + } + } + + return { + value, + errors: (typeof value === 'symbol') ? null : this.createError('symbol.base', { value }, state, options) + }; + } + + map(iterable) { + + if (iterable && !iterable[Symbol.iterator] && typeof iterable === 'object') { + iterable = Object.entries(iterable); + } + + Hoek.assert(iterable && iterable[Symbol.iterator], 'Iterable must be an iterable or object'); + const obj = this.clone(); + + const symbols = []; + for (const entry of iterable) { + Hoek.assert(entry && entry[Symbol.iterator], 'Entry must be an iterable'); + const [key, value] = entry; + + Hoek.assert(typeof key !== 'object' && typeof key !== 'function' && typeof key !== 'symbol', 'Key must not be an object, function, or Symbol'); + Hoek.assert(typeof value === 'symbol', 'Value must be a Symbol'); + obj._inner.map.set(key, value); + symbols.push(value); + } + + return obj.valid(...symbols); + } + + describe() { + + const description = super.describe(); + description.map = new Map(this._inner.map); + return description; + } +}; + + +module.exports = new internals.Symbol(); diff --git a/node_modules/@hapi/joi/lib/types/symbols.js b/node_modules/@hapi/joi/lib/types/symbols.js new file mode 100755 index 0000000..0486cfe --- /dev/null +++ b/node_modules/@hapi/joi/lib/types/symbols.js @@ -0,0 +1,8 @@ +'use strict'; + +const internals = {}; + + +module.exports = { + settingsCache: Symbol('settingsCache') +}; diff --git a/node_modules/@hapi/joi/node_modules/@hapi/hoek/CHANGELOG.md b/node_modules/@hapi/joi/node_modules/@hapi/hoek/CHANGELOG.md new file mode 100644 index 0000000..1d03ddb --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/hoek/CHANGELOG.md @@ -0,0 +1,3 @@ +Breaking changes are documented using GitHub issues, see [issues labeled "release notes"](https://github.com/hapijs/hoek/issues?q=is%3Aissue+label%3A%22release+notes%22). + +If you want changes of a specific minor or patch release, you can browse the [GitHub milestones](https://github.com/hapijs/hoek/milestones?state=closed&direction=asc&sort=due_date). diff --git a/node_modules/@hapi/joi/node_modules/@hapi/hoek/LICENSE.md b/node_modules/@hapi/joi/node_modules/@hapi/hoek/LICENSE.md new file mode 100755 index 0000000..0ed3051 --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/hoek/LICENSE.md @@ -0,0 +1,12 @@ +Copyright (c) 2011-2019, Sideway Inc, and project contributors +Copyright (c) 2011-2014, Walmart +Copyright (c) 2011, Yahoo 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: +* 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 OFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/@hapi/joi/node_modules/@hapi/hoek/README.md b/node_modules/@hapi/joi/node_modules/@hapi/hoek/README.md new file mode 100755 index 0000000..ea912d7 --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/hoek/README.md @@ -0,0 +1,18 @@ + + +# @hapi/hoek + +#### Utility methods for the hapi ecosystem. + +**hoek** is part of the **hapi** ecosystem and was designed to work seamlessly with the [hapi web framework](https://hapi.dev) and its other components (but works great on its own or with other frameworks). If you are using a different web framework and find this module useful, check out [hapi](https://hapi.dev) – they work even better together. + +This module is not intended to solve every problem for everyone, but rather as a central place to store hapi-specific methods. If you're looking for a general purpose utility module, check out [lodash](https://github.com/lodash/lodash). + +### Visit the [hapi.dev](https://hapi.dev) Developer Portal for tutorials, documentation, and support + +## Useful resources + +- [Documentation and API](https://hapi.dev/family/hoek/) +- [Version status](https://hapi.dev/resources/status/#hoek) (builds, dependencies, node versions, licenses, eol) +- [Project policies](https://hapi.dev/policies/) +- [Free and commercial support options](https://hapi.dev/support/) diff --git a/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/applyToDefaults.js b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/applyToDefaults.js new file mode 100755 index 0000000..79981a4 --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/applyToDefaults.js @@ -0,0 +1,55 @@ +'use strict'; + +const Assert = require('./assert'); +const Clone = require('./clone'); +const Merge = require('./merge'); +const Utils = require('./utils'); + + +const internals = {}; + + +module.exports = function (defaults, source, options = {}) { + + Assert(defaults && typeof defaults === 'object', 'Invalid defaults value: must be an object'); + Assert(!source || source === true || typeof source === 'object', 'Invalid source value: must be true, falsy or an object'); + Assert(typeof options === 'object', 'Invalid options: must be an object'); + + if (!source) { // If no source, return null + return null; + } + + if (options.shallow) { + return internals.applyToDefaultsWithShallow(defaults, source, options); + } + + const copy = Clone(defaults); + + if (source === true) { // If source is set to true, use defaults + return copy; + } + + const nullOverride = options.nullOverride !== undefined ? options.nullOverride : false; + return Merge(copy, source, { nullOverride, mergeArrays: false }); +}; + + +internals.applyToDefaultsWithShallow = function (defaults, source, options) { + + const keys = options.shallow; + Assert(Array.isArray(keys), 'Invalid keys'); + + options = Object.assign({}, options); + options.shallow = false; + + const copy = Clone(defaults, { shallow: keys }); + + if (source === true) { // If source is set to true, use defaults + return copy; + } + + const storage = Utils.store(source, keys); // Move shallow copy items to storage + Merge(copy, source, { mergeArrays: false, nullOverride: false }); // Deep copy the rest + Utils.restore(copy, source, storage); // Shallow copy the stored items and restore + return copy; +}; diff --git a/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/assert.js b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/assert.js new file mode 100755 index 0000000..6a11e93 --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/assert.js @@ -0,0 +1,21 @@ +'use strict'; + +const AssertError = require('./error'); + +const internals = {}; + + +module.exports = function (condition, ...args) { + + if (condition) { + return; + } + + if (args.length === 1 && + args[0] instanceof Error) { + + throw args[0]; + } + + throw new AssertError(args); +}; diff --git a/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/bench.js b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/bench.js new file mode 100755 index 0000000..26ee196 --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/bench.js @@ -0,0 +1,29 @@ +'use strict'; + +const internals = {}; + + +module.exports = internals.Bench = class { + + constructor() { + + this.ts = 0; + this.reset(); + } + + reset() { + + this.ts = internals.Bench.now(); + } + + elapsed() { + + return internals.Bench.now() - this.ts; + } + + static now() { + + const ts = process.hrtime(); + return (ts[0] * 1e3) + (ts[1] / 1e6); + } +}; diff --git a/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/block.js b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/block.js new file mode 100755 index 0000000..0b726b8 --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/block.js @@ -0,0 +1,12 @@ +'use strict'; + +const Ignore = require('./ignore'); + + +const internals = {}; + + +module.exports = function () { + + return new Promise(Ignore); // $lab:coverage:ignore$ +}; diff --git a/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/clone.js b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/clone.js new file mode 100755 index 0000000..57120df --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/clone.js @@ -0,0 +1,161 @@ +'use strict'; + +const Types = require('./types'); +const Utils = require('./utils'); + + +const internals = { + needsProtoHack: new Set([Types.set, Types.map, Types.weakSet, Types.weakMap]) +}; + + +module.exports = internals.clone = function (obj, options = {}, _seen = null) { + + if (typeof obj !== 'object' || + obj === null) { + + return obj; + } + + let clone = internals.clone; + let seen = _seen; + + if (options.shallow) { + if (options.shallow !== true) { + return internals.cloneWithShallow(obj, options); + } + + clone = (value) => value; + } + else { + seen = seen || new Map(); + + const lookup = seen.get(obj); + if (lookup) { + return lookup; + } + } + + // Built-in object types + + const baseProto = Types.getInternalProto(obj); + if (baseProto === Types.buffer) { + return Buffer && Buffer.from(obj); // $lab:coverage:ignore$ + } + + if (baseProto === Types.date) { + return new Date(obj.getTime()); + } + + if (baseProto === Types.regex) { + return new RegExp(obj); + } + + // Generic objects + + const newObj = internals.base(obj, baseProto, options); + if (newObj === obj) { + return obj; + } + + if (seen) { + seen.set(obj, newObj); // Set seen, since obj could recurse + } + + if (baseProto === Types.set) { + for (const value of obj) { + newObj.add(clone(value, options, seen)); + } + } + else if (baseProto === Types.map) { + for (const [key, value] of obj) { + newObj.set(key, clone(value, options, seen)); + } + } + + const keys = Utils.keys(obj, options); + for (const key of keys) { + if (key === '__proto__') { + continue; + } + + if (baseProto === Types.array && + key === 'length') { + + newObj.length = obj.length; + continue; + } + + const descriptor = Object.getOwnPropertyDescriptor(obj, key); + if (descriptor) { + if (descriptor.get || + descriptor.set) { + + Object.defineProperty(newObj, key, descriptor); + } + else if (descriptor.enumerable) { + newObj[key] = clone(obj[key], options, seen); + } + else { + Object.defineProperty(newObj, key, { enumerable: false, writable: true, configurable: true, value: clone(obj[key], options, seen) }); + } + } + else { + Object.defineProperty(newObj, key, { + enumerable: true, + writable: true, + configurable: true, + value: clone(obj[key], options, seen) + }); + } + } + + return newObj; +}; + + +internals.cloneWithShallow = function (source, options) { + + const keys = options.shallow; + options = Object.assign({}, options); + options.shallow = false; + + const storage = Utils.store(source, keys); // Move shallow copy items to storage + const copy = internals.clone(source, options); // Deep copy the rest + Utils.restore(copy, source, storage); // Shallow copy the stored items and restore + return copy; +}; + + +internals.base = function (obj, baseProto, options) { + + if (baseProto === Types.array) { + return []; + } + + if (options.prototype === false) { // Defaults to true + if (internals.needsProtoHack.has(baseProto)) { + return new baseProto.constructor(); + } + + return {}; + } + + const proto = Object.getPrototypeOf(obj); + if (proto && + proto.isImmutable) { + + return obj; + } + + if (internals.needsProtoHack.has(baseProto)) { + const newObj = new proto.constructor(); + if (proto !== baseProto) { + Object.setPrototypeOf(newObj, proto); + } + + return newObj; + } + + return Object.create(proto); +}; diff --git a/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/contain.js b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/contain.js new file mode 100755 index 0000000..920d9d4 --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/contain.js @@ -0,0 +1,305 @@ +'use strict'; + +const Assert = require('./assert'); +const DeepEqual = require('./deepEqual'); +const EscapeRegex = require('./escapeRegex'); +const Utils = require('./utils'); + + +const internals = {}; + + +module.exports = function (ref, values, options = {}) { // options: { deep, once, only, part, symbols } + + /* + string -> string(s) + array -> item(s) + object -> key(s) + object -> object (key:value) + */ + + if (typeof values !== 'object') { + values = [values]; + } + + Assert(!Array.isArray(values) || values.length, 'Values array cannot be empty'); + + // String + + if (typeof ref === 'string') { + return internals.string(ref, values, options); + } + + // Array + + if (Array.isArray(ref)) { + return internals.array(ref, values, options); + } + + // Object + + Assert(typeof ref === 'object', 'Reference must be string or an object'); + return internals.object(ref, values, options); +}; + + +internals.array = function (ref, values, options) { + + if (!Array.isArray(values)) { + values = [values]; + } + + if (!ref.length) { + return false; + } + + if (options.only && + options.once && + ref.length !== values.length) { + + return false; + } + + let compare; + + // Map values + + const map = new Map(); + for (const value of values) { + if (!options.deep || + !value || + typeof value !== 'object') { + + const existing = map.get(value); + if (existing) { + ++existing.allowed; + } + else { + map.set(value, { allowed: 1, hits: 0 }); + } + } + else { + compare = compare || internals.compare(options); + + let found = false; + for (const [key, existing] of map.entries()) { + if (compare(key, value)) { + ++existing.allowed; + found = true; + break; + } + } + + if (!found) { + map.set(value, { allowed: 1, hits: 0 }); + } + } + } + + // Lookup values + + let hits = 0; + for (const item of ref) { + let match; + if (!options.deep || + !item || + typeof item !== 'object') { + + match = map.get(item); + } + else { + for (const [key, existing] of map.entries()) { + if (compare(key, item)) { + match = existing; + break; + } + } + } + + if (match) { + ++match.hits; + ++hits; + + if (options.once && + match.hits > match.allowed) { + + return false; + } + } + } + + // Validate results + + if (options.only && + hits !== ref.length) { + + return false; + } + + for (const match of map.values()) { + if (match.hits === match.allowed) { + continue; + } + + if (match.hits < match.allowed && + !options.part) { + + return false; + } + } + + return !!hits; +}; + + +internals.object = function (ref, values, options) { + + Assert(options.once === undefined, 'Cannot use option once with object'); + + const keys = Utils.keys(ref, options); + if (!keys.length) { + return false; + } + + // Keys list + + if (Array.isArray(values)) { + return internals.array(keys, values, options); + } + + // Key value pairs + + const symbols = Object.getOwnPropertySymbols(values).filter((sym) => values.propertyIsEnumerable(sym)); + const targets = [...Object.keys(values), ...symbols]; + + const compare = internals.compare(options); + const set = new Set(targets); + + for (const key of keys) { + if (!set.has(key)) { + if (options.only) { + return false; + } + + continue; + } + + if (!compare(values[key], ref[key])) { + return false; + } + + set.delete(key); + } + + if (set.size) { + return options.part ? set.size < targets.length : false; + } + + return true; +}; + + +internals.string = function (ref, values, options) { + + // Empty string + + if (ref === '') { + return values.length === 1 && values[0] === '' || // '' contains '' + !options.once && !values.some((v) => v !== ''); // '' contains multiple '' if !once + } + + // Map values + + const map = new Map(); + const patterns = []; + + for (const value of values) { + Assert(typeof value === 'string', 'Cannot compare string reference to non-string value'); + + if (value) { + const existing = map.get(value); + if (existing) { + ++existing.allowed; + } + else { + map.set(value, { allowed: 1, hits: 0 }); + patterns.push(EscapeRegex(value)); + } + } + else if (options.once || + options.only) { + + return false; + } + } + + if (!patterns.length) { // Non-empty string contains unlimited empty string + return true; + } + + // Match patterns + + const regex = new RegExp(`(${patterns.join('|')})`, 'g'); + const leftovers = ref.replace(regex, ($0, $1) => { + + ++map.get($1).hits; + return ''; // Remove from string + }); + + // Validate results + + if (options.only && + leftovers) { + + return false; + } + + let any = false; + for (const match of map.values()) { + if (match.hits) { + any = true; + } + + if (match.hits === match.allowed) { + continue; + } + + if (match.hits < match.allowed && + !options.part) { + + return false; + } + + // match.hits > match.allowed + + if (options.once) { + return false; + } + } + + return !!any; +}; + + +internals.compare = function (options) { + + if (!options.deep) { + return internals.shallow; + } + + const hasOnly = options.only !== undefined; + const hasPart = options.part !== undefined; + + const flags = { + prototype: hasOnly ? options.only : hasPart ? !options.part : false, + part: hasOnly ? !options.only : hasPart ? options.part : false + }; + + return (a, b) => DeepEqual(a, b, flags); +}; + + +internals.shallow = function (a, b) { + + return a === b; +}; diff --git a/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/deepEqual.js b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/deepEqual.js new file mode 100755 index 0000000..aec9a12 --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/deepEqual.js @@ -0,0 +1,317 @@ +'use strict'; + +const Types = require('./types'); + + +const internals = { + mismatched: null +}; + + +module.exports = function (obj, ref, options) { + + options = Object.assign({ prototype: true }, options); + + return !!internals.isDeepEqual(obj, ref, options, []); +}; + + +internals.isDeepEqual = function (obj, ref, options, seen) { + + if (obj === ref) { // Copied from Deep-eql, copyright(c) 2013 Jake Luer, jake@alogicalparadox.com, MIT Licensed, https://github.com/chaijs/deep-eql + return obj !== 0 || 1 / obj === 1 / ref; + } + + const type = typeof obj; + + if (type !== typeof ref) { + return false; + } + + if (obj === null || + ref === null) { + + return false; + } + + if (type === 'function') { + if (!options.deepFunction || + obj.toString() !== ref.toString()) { + + return false; + } + + // Continue as object + } + else if (type !== 'object') { + return obj !== obj && ref !== ref; // NaN + } + + const instanceType = internals.getSharedType(obj, ref, !!options.prototype); + switch (instanceType) { + case Types.buffer: + return Buffer && Buffer.prototype.equals.call(obj, ref); // $lab:coverage:ignore$ + case Types.promise: + return obj === ref; + case Types.regex: + return obj.toString() === ref.toString(); + case internals.mismatched: + return false; + } + + for (let i = seen.length - 1; i >= 0; --i) { + if (seen[i].isSame(obj, ref)) { + return true; // If previous comparison failed, it would have stopped execution + } + } + + seen.push(new internals.SeenEntry(obj, ref)); + + try { + return !!internals.isDeepEqualObj(instanceType, obj, ref, options, seen); + } + finally { + seen.pop(); + } +}; + + +internals.getSharedType = function (obj, ref, checkPrototype) { + + if (checkPrototype) { + if (Object.getPrototypeOf(obj) !== Object.getPrototypeOf(ref)) { + return internals.mismatched; + } + + return Types.getInternalProto(obj); + } + + const type = Types.getInternalProto(obj); + if (type !== Types.getInternalProto(ref)) { + return internals.mismatched; + } + + return type; +}; + + +internals.valueOf = function (obj) { + + const objValueOf = obj.valueOf; + if (objValueOf === undefined) { + return obj; + } + + try { + return objValueOf.call(obj); + } + catch (err) { + return err; + } +}; + + +internals.hasOwnEnumerableProperty = function (obj, key) { + + return Object.prototype.propertyIsEnumerable.call(obj, key); +}; + + +internals.isSetSimpleEqual = function (obj, ref) { + + for (const entry of obj) { + if (!ref.has(entry)) { + return false; + } + } + + return true; +}; + + +internals.isDeepEqualObj = function (instanceType, obj, ref, options, seen) { + + const { isDeepEqual, valueOf, hasOwnEnumerableProperty } = internals; + const { keys, getOwnPropertySymbols } = Object; + + if (instanceType === Types.array) { + if (options.part) { + + // Check if any index match any other index + + for (const objValue of obj) { + for (const refValue of ref) { + if (isDeepEqual(objValue, refValue, options, seen)) { + return true; + } + } + } + } + else { + if (obj.length !== ref.length) { + return false; + } + + for (let i = 0; i < obj.length; ++i) { + if (!isDeepEqual(obj[i], ref[i], options, seen)) { + return false; + } + } + + return true; + } + } + else if (instanceType === Types.set) { + if (obj.size !== ref.size) { + return false; + } + + if (!internals.isSetSimpleEqual(obj, ref)) { + + // Check for deep equality + + const ref2 = new Set(ref); + for (const objEntry of obj) { + if (ref2.delete(objEntry)) { + continue; + } + + let found = false; + for (const refEntry of ref2) { + if (isDeepEqual(objEntry, refEntry, options, seen)) { + ref2.delete(refEntry); + found = true; + break; + } + } + + if (!found) { + return false; + } + } + } + } + else if (instanceType === Types.map) { + if (obj.size !== ref.size) { + return false; + } + + for (const [key, value] of obj) { + if (value === undefined && !ref.has(key)) { + return false; + } + + if (!isDeepEqual(value, ref.get(key), options, seen)) { + return false; + } + } + } + else if (instanceType === Types.error) { + + // Always check name and message + + if (obj.name !== ref.name || + obj.message !== ref.message) { + + return false; + } + } + + // Check .valueOf() + + const valueOfObj = valueOf(obj); + const valueOfRef = valueOf(ref); + if ((obj !== valueOfObj || ref !== valueOfRef) && + !isDeepEqual(valueOfObj, valueOfRef, options, seen)) { + + return false; + } + + // Check properties + + const objKeys = keys(obj); + if (!options.part && + objKeys.length !== keys(ref).length && + !options.skip) { + + return false; + } + + let skipped = 0; + for (const key of objKeys) { + if (options.skip && + options.skip.includes(key)) { + + if (ref[key] === undefined) { + ++skipped; + } + + continue; + } + + if (!hasOwnEnumerableProperty(ref, key)) { + return false; + } + + if (!isDeepEqual(obj[key], ref[key], options, seen)) { + return false; + } + } + + if (!options.part && + objKeys.length - skipped !== keys(ref).length) { + + return false; + } + + // Check symbols + + if (options.symbols !== false) { // Defaults to true + const objSymbols = getOwnPropertySymbols(obj); + const refSymbols = new Set(getOwnPropertySymbols(ref)); + + for (const key of objSymbols) { + if (!options.skip || + !options.skip.includes(key)) { + + if (hasOwnEnumerableProperty(obj, key)) { + if (!hasOwnEnumerableProperty(ref, key)) { + return false; + } + + if (!isDeepEqual(obj[key], ref[key], options, seen)) { + return false; + } + } + else if (hasOwnEnumerableProperty(ref, key)) { + return false; + } + } + + refSymbols.delete(key); + } + + for (const key of refSymbols) { + if (hasOwnEnumerableProperty(ref, key)) { + return false; + } + } + } + + return true; +}; + + +internals.SeenEntry = class { + + constructor(obj, ref) { + + this.obj = obj; + this.ref = ref; + } + + isSame(obj, ref) { + + return this.obj === obj && this.ref === ref; + } +}; diff --git a/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/error.js b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/error.js new file mode 100755 index 0000000..9fc4f5d --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/error.js @@ -0,0 +1,26 @@ +'use strict'; + +const Stringify = require('./stringify'); + + +const internals = {}; + + +module.exports = class extends Error { + + constructor(args) { + + const msgs = args + .filter((arg) => arg !== '') + .map((arg) => { + + return typeof arg === 'string' ? arg : arg instanceof Error ? arg.message : Stringify(arg); + }); + + super(msgs.join(' ') || 'Unknown error'); + + if (typeof Error.captureStackTrace === 'function') { // $lab:coverage:ignore$ + Error.captureStackTrace(this, exports.assert); + } + } +}; diff --git a/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/escapeHeaderAttribute.js b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/escapeHeaderAttribute.js new file mode 100755 index 0000000..a0a4dee --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/escapeHeaderAttribute.js @@ -0,0 +1,16 @@ +'use strict'; + +const Assert = require('./assert'); + + +const internals = {}; + + +module.exports = function (attribute) { + + // Allowed value characters: !#$%&'()*+,-./:;<=>?@[]^_`{|}~ and space, a-z, A-Z, 0-9, \, " + + Assert(/^[ \w\!#\$%&'\(\)\*\+,\-\.\/\:;<\=>\?@\[\]\^`\{\|\}~\"\\]*$/.test(attribute), 'Bad attribute value (' + attribute + ')'); + + return attribute.replace(/\\/g, '\\\\').replace(/\"/g, '\\"'); // Escape quotes and slash +}; diff --git a/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/escapeHtml.js b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/escapeHtml.js new file mode 100755 index 0000000..ddef2b6 --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/escapeHtml.js @@ -0,0 +1,87 @@ +'use strict'; + +const internals = {}; + + +module.exports = function (input) { + + if (!input) { + return ''; + } + + let escaped = ''; + + for (let i = 0; i < input.length; ++i) { + + const charCode = input.charCodeAt(i); + + if (internals.isSafe(charCode)) { + escaped += input[i]; + } + else { + escaped += internals.escapeHtmlChar(charCode); + } + } + + return escaped; +}; + + +internals.escapeHtmlChar = function (charCode) { + + const namedEscape = internals.namedHtml[charCode]; + if (typeof namedEscape !== 'undefined') { + return namedEscape; + } + + if (charCode >= 256) { + return '&#' + charCode + ';'; + } + + const hexValue = charCode.toString(16).padStart(2, '0'); + return `&#x${hexValue};`; +}; + + +internals.isSafe = function (charCode) { + + return (typeof internals.safeCharCodes[charCode] !== 'undefined'); +}; + + +internals.namedHtml = { + '38': '&', + '60': '<', + '62': '>', + '34': '"', + '160': ' ', + '162': '¢', + '163': '£', + '164': '¤', + '169': '©', + '174': '®' +}; + + +internals.safeCharCodes = (function () { + + const safe = {}; + + for (let i = 32; i < 123; ++i) { + + if ((i >= 97) || // a-z + (i >= 65 && i <= 90) || // A-Z + (i >= 48 && i <= 57) || // 0-9 + i === 32 || // space + i === 46 || // . + i === 44 || // , + i === 45 || // - + i === 58 || // : + i === 95) { // _ + + safe[i] = null; + } + } + + return safe; +}()); diff --git a/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/escapeJson.js b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/escapeJson.js new file mode 100755 index 0000000..e6e94b3 --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/escapeJson.js @@ -0,0 +1,41 @@ +'use strict'; + +const internals = {}; + + +module.exports = function (input) { + + if (!input) { + return ''; + } + + const lessThan = 0x3C; + const greaterThan = 0x3E; + const andSymbol = 0x26; + const lineSeperator = 0x2028; + + // replace method + let charCode; + return input.replace(/[<>&\u2028\u2029]/g, (match) => { + + charCode = match.charCodeAt(0); + + if (charCode === lessThan) { + return '\\u003c'; + } + + if (charCode === greaterThan) { + return '\\u003e'; + } + + if (charCode === andSymbol) { + return '\\u0026'; + } + + if (charCode === lineSeperator) { + return '\\u2028'; + } + + return '\\u2029'; + }); +}; diff --git a/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/escapeRegex.js b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/escapeRegex.js new file mode 100755 index 0000000..3272497 --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/escapeRegex.js @@ -0,0 +1,11 @@ +'use strict'; + +const internals = {}; + + +module.exports = function (string) { + + // Escape ^$.*+-?=!:|\/()[]{}, + + return string.replace(/[\^\$\.\*\+\-\?\=\!\:\|\\\/\(\)\[\]\{\}\,]/g, '\\$&'); +}; diff --git a/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/flatten.js b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/flatten.js new file mode 100755 index 0000000..726e231 --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/flatten.js @@ -0,0 +1,20 @@ +'use strict'; + +const internals = {}; + + +module.exports = internals.flatten = function (array, target) { + + const result = target || []; + + for (let i = 0; i < array.length; ++i) { + if (Array.isArray(array[i])) { + internals.flatten(array[i], result); + } + else { + result.push(array[i]); + } + } + + return result; +}; diff --git a/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/ignore.js b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/ignore.js new file mode 100755 index 0000000..21ad144 --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/ignore.js @@ -0,0 +1,6 @@ +'use strict'; + +const internals = {}; + + +module.exports = function () { }; diff --git a/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/index.d.ts b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/index.d.ts new file mode 100755 index 0000000..ae1106e --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/index.d.ts @@ -0,0 +1,470 @@ +/// + + +/** + * Performs a deep comparison of the two values including support for circular dependencies, prototype, and enumerable properties. + * + * @param obj - The value being compared. + * @param ref - The reference value used for comparison. + * + * @return true when the two values are equal, otherwise false. + */ +export function deepEqual(obj: any, ref: any, options?: deepEqual.Options): boolean; + +export namespace deepEqual { + + interface Options { + + /** + * Compare functions with difference references by comparing their internal code and properties. + * + * @default false + */ + readonly deepFunction?: boolean; + + /** + * Allow partial match. + * + * @default false + */ + readonly part?: boolean; + + /** + * Compare the objects' prototypes. + * + * @default true + */ + readonly prototype?: boolean; + + /** + * List of object keys to ignore different values of. + * + * @default null + */ + readonly skip?: (string | symbol)[]; + + /** + * Compare symbol properties. + * + * @default true + */ + readonly symbols?: boolean; + } +} + + +/** + * Clone any value, object, or array. + * + * @param obj - The value being cloned. + * @param options - Optional settings. + * + * @returns A deep clone of `obj`. + */ +export function clone(obj: T, options?: clone.Options): T; + +export namespace clone { + + interface Options { + + /** + * Clone the object's prototype. + * + * @default true + */ + readonly prototype?: boolean; + + /** + * Include symbol properties. + * + * @default true + */ + readonly symbols?: boolean; + + /** + * Shallow clone the specified keys. + * + * @default undefined + */ + readonly shallow?: string[] | string[][] | boolean; + } +} + + +/** + * Merge all the properties of source into target. + * + * @param target - The object being modified. + * @param source - The object used to copy properties from. + * @param options - Optional settings. + * + * @returns The `target` object. + */ +export function merge(target: T1, source: T2, options?: merge.Options): T1 & T2; + +export namespace merge { + + interface Options { + + /** + * When true, null value from `source` overrides existing value in `target`. + * + * @default true + */ + readonly nullOverride?: boolean; + + /** + * When true, array value from `source` is merged with the existing value in `target`. + * + * @default false + */ + readonly mergeArrays?: boolean; + + /** + * Compare symbol properties. + * + * @default true + */ + readonly symbols?: boolean; + } +} + + +/** + * Apply source to a copy of the defaults. + * + * @param defaults - An object with the default values to use of `options` does not contain the same keys. + * @param source - The source used to override the `defaults`. + * @param options - Optional settings. + * + * @returns A copy of `defaults` with `source` keys overriding any conflicts. + */ +export function applyToDefaults(defaults: Partial, source: Partial | boolean | null, options?: applyToDefaults.Options): Partial; + +export namespace applyToDefaults { + + interface Options { + + /** + * When true, null value from `source` overrides existing value in `target`. + * + * @default true + */ + readonly nullOverride?: boolean; + + /** + * Shallow clone the specified keys. + * + * @default undefined + */ + readonly shallow?: string[] | string[][]; + } +} + + +/** + * Find the common unique items in two arrays. + * + * @param array1 - The first array to compare. + * @param array2 - The second array to compare. + * @param options - Optional settings. + * + * @return - An array of the common items. If `justFirst` is true, returns the first common item. + */ +export function intersect(array1: intersect.Array, array2: intersect.Array, options?: intersect.Options): Array; +export function intersect(array1: intersect.Array, array2: intersect.Array, options?: intersect.Options): T1 | T2; + +export namespace intersect { + + type Array = ArrayLike | Set | null; + + interface Options { + + /** + * When true, return the first overlapping value. + * + * @default false + */ + readonly first?: boolean; + } +} + + +/** + * Checks if the reference value contains the provided values. + * + * @param ref - The reference string, array, or object. + * @param values - A single or array of values to find within `ref`. If `ref` is an object, `values` can be a key name, an array of key names, or an object with key-value pairs to compare. + * + * @return true if the value contains the provided values, otherwise false. + */ +export function contain(ref: string, values: string | string[], options?: contain.Options): boolean; +export function contain(ref: any[], values: any, options?: contain.Options): boolean; +export function contain(ref: object, values: string | string[] | object, options?: Omit): boolean; + +export namespace contain { + + interface Options { + + /** + * Perform a deep comparison. + * + * @default false + */ + readonly deep?: boolean; + + /** + * Allow only one occurrence of each value. + * + * @default false + */ + readonly once?: boolean; + + /** + * Allow only values explicitly listed. + * + * @default false + */ + readonly only?: boolean; + + /** + * Allow partial match. + * + * @default false + */ + readonly part?: boolean; + + /** + * Include symbol properties. + * + * @default true + */ + readonly symbols?: boolean; + } +} + + +/** + * Flatten an array with sub arrays + * + * @param array - an array of items or other arrays to flatten. + * @param target - if provided, an array to shallow copy the flattened `array` items to + * + * @return a flat array of the provided values (appended to `target` is provided). + */ +export function flatten(array: ArrayLike>, target?: ArrayLike>): T[]; + + +/** + * Convert an object key chain string to reference. + * + * @param obj - the object from which to look up the value. + * @param chain - the string path of the requested value. The chain string is split into key names using `options.separator`, or an array containing each individual key name. A chain including negative numbers will work like a negative index on an array. + * + * @return The value referenced by the chain if found, otherwise undefined. If chain is null, undefined, or false, the object itself will be returned. + */ +export function reach(obj: object | null, chain: string | (string | number)[] | false | null | undefined, options?: reach.Options): any; + +export namespace reach { + + interface Options { + + /** + * String to split chain path on. Defaults to '.'. + * + * @default false + */ + readonly separator?: string; + + /** + * Value to return if the path or value is not present. No default value. + * + * @default false + */ + readonly default?: any; + + /** + * If true, will throw an error on missing member in the chain. Default to false. + * + * @default false + */ + readonly strict?: boolean; + + /** + * If true, allows traversing functions for properties. false will throw an error if a function is part of the chain. + * + * @default true + */ + readonly functions?: boolean; + + /** + * If true, allows traversing Set and Map objects for properties. false will return undefined regardless of the Set or Map passed. + * + * @default false + */ + readonly iterables?: boolean; + } +} + + +/** + * Replace string parameters (using format "{path.to.key}") with their corresponding object key values using `Hoek.reach()`. + * + * @param obj - the object from which to look up the value. + * @param template - the string containing {} enclosed key paths to be replaced. + * + * @return The template string with the {} enclosed keys replaced with looked-up values. + */ +export function reachTemplate(obj: object | null, template: string, options?: reach.Options): string; + + +/** + * Throw an error if condition is falsy. + * + * @param condition - If `condition` is not truthy, an exception is thrown. + * @param error - The error thrown if the condition fails. + * + * @return Does not return a value but throws if the `condition` is falsy. + */ +export function assert(condition: any, error: Error): void; + + +/** + * Throw an error if condition is falsy. + * + * @param condition - If `condition` is not truthy, an exception is thrown. + * @param args - Any number of values, concatenated together (space separated) to create the error message. + * + * @return Does not return a value but throws if the `condition` is falsy. + */ +export function assert(condition: any, ...args: any): void; + + +/** + * A benchmarking timer, using the internal node clock for maximum accuracy. + */ +export class Bench { + + constructor(); + + /** The starting timestamp expressed in the number of milliseconds since the epoch. */ + ts: number; + + /** The time in milliseconds since the object was created. */ + elapsed(): number; + + /** Reset the `ts` value to now. */ + reset(): void; + + /** The current time in milliseconds since the epoch. */ + static now(): number; +} + + +/** + * Escape string for Regex construction by prefixing all reserved characters with a backslash. + * + * @param string - The string to be escaped. + * + * @return The escaped string. + */ +export function escapeRegex(string: string): string; + + +/** + * Escape string for usage as an attribute value in HTTP headers. + * + * @param attribute - The string to be escaped. + * + * @return The escaped string. Will throw on invalid characters that are not supported to be escaped. + */ +export function escapeHeaderAttribute(attribute: string): string; + + +/** + * Escape string for usage in HTML. + * + * @param string - The string to be escaped. + * + * @return The escaped string. + */ +export function escapeHtml(string: string): string; + + +/** + * Escape string for usage in JSON. + * + * @param string - The string to be escaped. + * + * @return The escaped string. + */ +export function escapeJson(string: string): string; + + +/** + * Wraps a function to ensure it can only execute once. + * + * @param method - The function to be wrapped. + * + * @return The wrapped function. + */ +export function once(method: T): T; + + +/** + * A reusable no-op function. + */ +export function ignore(...ignore: any): void; + + +/** + * Converts a JavaScript value to a JavaScript Object Notation (JSON) string with protection against thrown errors. + * + * @param value A JavaScript value, usually an object or array, to be converted. + * @param replacer The JSON.stringify() `replacer` argument. + * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read. + * + * @return The JSON string. If the operation fails, an error string value is returned (no exception thrown). + */ +export function stringify(value: any, replacer?: any, space?: string | number): string; + + +/** + * Returns a Promise that resolves after the requested timeout. + * + * @param timeout - The number of milliseconds to wait before resolving the Promise. + * + * @return A Promise. + */ +export function wait(timeout?: number): Promise; + + +/** + * Returns a Promise that never resolves. + */ +export function block(): Promise; + + +/** + * Determines if an object is a promise. + * + * @param promise - the object tested. + * + * @returns true if the object is a promise, otherwise false. + */ +export function isPromise(promise: any): boolean; + + +export namespace ts { + + /** + * Defines a type that can must be one of T or U but not both. + */ + type XOR = (T | U) extends object ? (internals.Without & U) | (internals.Without & T) : T | U; +} + + +declare namespace internals { + + type Without = { [P in Exclude]?: never }; +} diff --git a/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/index.js b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/index.js new file mode 100755 index 0000000..ea06269 --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/index.js @@ -0,0 +1,29 @@ +'use strict'; + +const internals = {}; + + +module.exports = { + applyToDefaults: require('./applyToDefaults'), + assert: require('./assert'), + Bench: require('./bench'), + block: require('./block'), + clone: require('./clone'), + contain: require('./contain'), + deepEqual: require('./deepEqual'), + Error: require('./error'), + escapeHeaderAttribute: require('./escapeHeaderAttribute'), + escapeHtml: require('./escapeHtml'), + escapeJson: require('./escapeJson'), + escapeRegex: require('./escapeRegex'), + flatten: require('./flatten'), + ignore: require('./ignore'), + intersect: require('./intersect'), + isPromise: require('./isPromise'), + merge: require('./merge'), + once: require('./once'), + reach: require('./reach'), + reachTemplate: require('./reachTemplate'), + stringify: require('./stringify'), + wait: require('./wait') +}; diff --git a/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/intersect.js b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/intersect.js new file mode 100755 index 0000000..59e6aaf --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/intersect.js @@ -0,0 +1,41 @@ +'use strict'; + +const internals = {}; + + +module.exports = function (array1, array2, options = {}) { + + if (!array1 || + !array2) { + + return (options.first ? null : []); + } + + const common = []; + const hash = (Array.isArray(array1) ? new Set(array1) : array1); + const found = new Set(); + for (const value of array2) { + if (internals.has(hash, value) && + !found.has(value)) { + + if (options.first) { + return value; + } + + common.push(value); + found.add(value); + } + } + + return (options.first ? null : common); +}; + + +internals.has = function (ref, key) { + + if (typeof ref.has === 'function') { + return ref.has(key); + } + + return ref[key] !== undefined; +}; diff --git a/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/isPromise.js b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/isPromise.js new file mode 100755 index 0000000..4029804 --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/isPromise.js @@ -0,0 +1,9 @@ +'use strict'; + +const internals = {}; + + +module.exports = function (promise) { + + return !!promise && typeof promise.then === 'function'; +}; diff --git a/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/merge.js b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/merge.js new file mode 100755 index 0000000..abce992 --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/merge.js @@ -0,0 +1,74 @@ +'use strict'; + +const Assert = require('./assert'); +const Clone = require('./clone'); +const Utils = require('./utils'); + + +const internals = {}; + + +module.exports = internals.merge = function (target, source, options) { + + Assert(target && typeof target === 'object', 'Invalid target value: must be an object'); + Assert(source === null || source === undefined || typeof source === 'object', 'Invalid source value: must be null, undefined, or an object'); + + if (!source) { + return target; + } + + options = Object.assign({ nullOverride: true, mergeArrays: true }, options); + + if (Array.isArray(source)) { + Assert(Array.isArray(target), 'Cannot merge array onto an object'); + if (!options.mergeArrays) { + target.length = 0; // Must not change target assignment + } + + for (let i = 0; i < source.length; ++i) { + target.push(Clone(source[i], { symbols: options.symbols })); + } + + return target; + } + + const keys = Utils.keys(source, options); + for (let i = 0; i < keys.length; ++i) { + const key = keys[i]; + if (key === '__proto__' || + !Object.prototype.propertyIsEnumerable.call(source, key)) { + + continue; + } + + const value = source[key]; + if (value && + typeof value === 'object') { + + if (!target[key] || + typeof target[key] !== 'object' || + (Array.isArray(target[key]) !== Array.isArray(value)) || + value instanceof Date || + (Buffer && Buffer.isBuffer(value)) || // $lab:coverage:ignore$ + value instanceof RegExp) { + + target[key] = Clone(value, { symbols: options.symbols }); + } + else { + internals.merge(target[key], value, options); + } + } + else { + if (value !== null && + value !== undefined) { // Explicit to preserve empty strings + + target[key] = value; + } + else if (options.nullOverride) { + target[key] = value; + } + } + } + + return target; +}; diff --git a/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/once.js b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/once.js new file mode 100755 index 0000000..de94ea0 --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/once.js @@ -0,0 +1,23 @@ +'use strict'; + +const internals = {}; + + +module.exports = function (method) { + + if (method._hoekOnce) { + return method; + } + + let once = false; + const wrapped = function (...args) { + + if (!once) { + once = true; + method(...args); + } + }; + + wrapped._hoekOnce = true; + return wrapped; +}; diff --git a/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/reach.js b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/reach.js new file mode 100755 index 0000000..3791b37 --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/reach.js @@ -0,0 +1,76 @@ +'use strict'; + +const Assert = require('./assert'); + + +const internals = {}; + + +module.exports = function (obj, chain, options) { + + if (chain === false || + chain === null || + chain === undefined) { + + return obj; + } + + options = options || {}; + if (typeof options === 'string') { + options = { separator: options }; + } + + const isChainArray = Array.isArray(chain); + + Assert(!isChainArray || !options.separator, 'Separator option no valid for array-based chain'); + + const path = isChainArray ? chain : chain.split(options.separator || '.'); + let ref = obj; + for (let i = 0; i < path.length; ++i) { + let key = path[i]; + const type = options.iterables && internals.iterables(ref); + + if (Array.isArray(ref) || + type === 'set') { + + const number = Number(key); + if (Number.isInteger(number)) { + key = number < 0 ? ref.length + number : number; + } + } + + if (!ref || + typeof ref === 'function' && options.functions === false || // Defaults to true + !type && ref[key] === undefined) { + + Assert(!options.strict || i + 1 === path.length, 'Missing segment', key, 'in reach path ', chain); + Assert(typeof ref === 'object' || options.functions === true || typeof ref !== 'function', 'Invalid segment', key, 'in reach path ', chain); + ref = options.default; + break; + } + + if (!type) { + ref = ref[key]; + } + else if (type === 'set') { + ref = [...ref][key]; + } + else { // type === 'map' + ref = ref.get(key); + } + } + + return ref; +}; + + +internals.iterables = function (ref) { + + if (ref instanceof Set) { + return 'set'; + } + + if (ref instanceof Map) { + return 'map'; + } +}; diff --git a/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/reachTemplate.js b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/reachTemplate.js new file mode 100755 index 0000000..e48ac40 --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/reachTemplate.js @@ -0,0 +1,16 @@ +'use strict'; + +const Reach = require('./reach'); + + +const internals = {}; + + +module.exports = function (obj, template, options) { + + return template.replace(/{([^}]+)}/g, ($0, chain) => { + + const value = Reach(obj, chain, options); + return (value === undefined || value === null ? '' : value); + }); +}; diff --git a/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/stringify.js b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/stringify.js new file mode 100755 index 0000000..88d0fc4 --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/stringify.js @@ -0,0 +1,14 @@ +'use strict'; + +const internals = {}; + + +module.exports = function (...args) { + + try { + return JSON.stringify.apply(null, args); + } + catch (err) { + return '[Cannot display object: ' + err.message + ']'; + } +}; diff --git a/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/types.js b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/types.js new file mode 100755 index 0000000..c291b65 --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/types.js @@ -0,0 +1,55 @@ +'use strict'; + +const internals = {}; + + +exports = module.exports = { + array: Array.prototype, + buffer: Buffer && Buffer.prototype, // $lab:coverage:ignore$ + date: Date.prototype, + error: Error.prototype, + generic: Object.prototype, + map: Map.prototype, + promise: Promise.prototype, + regex: RegExp.prototype, + set: Set.prototype, + weakMap: WeakMap.prototype, + weakSet: WeakSet.prototype +}; + + +internals.typeMap = new Map([ + ['[object Error]', exports.error], + ['[object Map]', exports.map], + ['[object Promise]', exports.promise], + ['[object Set]', exports.set], + ['[object WeakMap]', exports.weakMap], + ['[object WeakSet]', exports.weakSet] +]); + + +exports.getInternalProto = function (obj) { + + if (Array.isArray(obj)) { + return exports.array; + } + + if (Buffer && obj instanceof Buffer) { // $lab:coverage:ignore$ + return exports.buffer; + } + + if (obj instanceof Date) { + return exports.date; + } + + if (obj instanceof RegExp) { + return exports.regex; + } + + if (obj instanceof Error) { + return exports.error; + } + + const objName = Object.prototype.toString.call(obj); + return internals.typeMap.get(objName) || exports.generic; +}; diff --git a/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/utils.js b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/utils.js new file mode 100755 index 0000000..bf1758a --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/utils.js @@ -0,0 +1,54 @@ +'use strict'; + +const Reach = require('./reach'); + + +const internals = {}; + + +exports.keys = function (obj, options = {}) { + + return options.symbols !== false ? Reflect.ownKeys(obj) : Object.getOwnPropertyNames(obj); // Defaults to true +}; + + +exports.store = function (source, keys) { + + const storage = new Map(); + for (let i = 0; i < keys.length; ++i) { + const key = keys[i]; + const value = Reach(source, key); + if (typeof value === 'object' || + typeof value === 'function') { + + storage.set(key, value); + internals.reachSet(source, key, undefined); + } + } + + return storage; +}; + + +exports.restore = function (copy, source, storage) { + + for (const [key, value] of storage) { + internals.reachSet(copy, key, value); + internals.reachSet(source, key, value); + } +}; + + +internals.reachSet = function (obj, key, value) { + + const path = Array.isArray(key) ? key : key.split('.'); + let ref = obj; + for (let i = 0; i < path.length; ++i) { + const segment = path[i]; + if (i + 1 === path.length) { + ref[segment] = value; + } + + ref = ref[segment]; + } +}; diff --git a/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/wait.js b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/wait.js new file mode 100755 index 0000000..d85dd55 --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/hoek/lib/wait.js @@ -0,0 +1,9 @@ +'use strict'; + +const internals = {}; + + +module.exports = function (timeout) { + + return new Promise((resolve) => setTimeout(resolve, timeout)); +}; diff --git a/node_modules/@hapi/joi/node_modules/@hapi/hoek/package.json b/node_modules/@hapi/joi/node_modules/@hapi/hoek/package.json new file mode 100755 index 0000000..4524134 --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/hoek/package.json @@ -0,0 +1,58 @@ +{ + "_from": "@hapi/hoek@8.x.x", + "_id": "@hapi/hoek@8.5.1", + "_inBundle": false, + "_integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==", + "_location": "/@hapi/joi/@hapi/hoek", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "@hapi/hoek@8.x.x", + "name": "@hapi/hoek", + "escapedName": "@hapi%2fhoek", + "scope": "@hapi", + "rawSpec": "8.x.x", + "saveSpec": null, + "fetchSpec": "8.x.x" + }, + "_requiredBy": [ + "/@hapi/joi", + "/@hapi/joi/@hapi/topo" + ], + "_resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", + "_shasum": "fde96064ca446dec8c55a8c2f130957b070c6e06", + "_spec": "@hapi/hoek@8.x.x", + "_where": "/home/wyrihaximus/Projects/WyriHaximus/github-action-helm3/node_modules/@hapi/joi", + "bugs": { + "url": "https://github.com/hapijs/hoek/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": "This version has been deprecated and is no longer supported or maintained", + "description": "General purpose node utilities", + "devDependencies": { + "@hapi/code": "6.x.x", + "@hapi/lab": "20.x.x" + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/hapijs/hoek#readme", + "keywords": [ + "utilities" + ], + "license": "BSD-3-Clause", + "main": "lib/index.js", + "name": "@hapi/hoek", + "repository": { + "type": "git", + "url": "git://github.com/hapijs/hoek.git" + }, + "scripts": { + "test": "lab -a @hapi/code -t 100 -L -Y", + "test-cov-html": "lab -a @hapi/code -t 100 -L -r html -o coverage.html" + }, + "types": "lib/index.d.ts", + "version": "8.5.1" +} diff --git a/node_modules/@hapi/joi/node_modules/@hapi/topo/CHANGELOG.md b/node_modules/@hapi/joi/node_modules/@hapi/topo/CHANGELOG.md new file mode 100644 index 0000000..6f865be --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/topo/CHANGELOG.md @@ -0,0 +1,3 @@ +Breaking changes are documented using GitHub issues, see [issues labeled "release notes"](https://github.com/hapijs/topo/issues?q=is%3Aissue+label%3A%22release+notes%22). + +If you want changes of a specific minor or patch release, you can browse the [GitHub milestones](https://github.com/hapijs/topo/milestones?state=closed&direction=asc&sort=due_date). diff --git a/node_modules/@hapi/joi/node_modules/@hapi/topo/LICENSE.md b/node_modules/@hapi/joi/node_modules/@hapi/topo/LICENSE.md new file mode 100755 index 0000000..aa2404c --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/topo/LICENSE.md @@ -0,0 +1,10 @@ +Copyright (c) 2012-2019, Sideway Inc, and project contributors +Copyright (c) 2012-2014, Walmart. +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 OFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/@hapi/joi/node_modules/@hapi/topo/README.md b/node_modules/@hapi/joi/node_modules/@hapi/topo/README.md new file mode 100755 index 0000000..6a16826 --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/topo/README.md @@ -0,0 +1,29 @@ + + +# @hapi/topo + +Topological sorting with grouping support. + +[![Build Status](https://secure.travis-ci.org/hapijs/topo.svg?branch=master)](http://travis-ci.org/hapijs/topo) + +## Usage + +See the [API Reference](API.md) + +**Example** +```js +const Topo = require('topo'); + +const morning = new Topo(); + +morning.add('Nap', { after: ['breakfast', 'prep'] }); + +morning.add([ + 'Make toast', + 'Pour juice' +], { before: 'breakfast', group: 'prep' }); + +morning.add('Eat breakfast', { group: 'breakfast' }); + +morning.nodes; // ['Make toast', 'Pour juice', 'Eat breakfast', 'Nap'] +``` diff --git a/node_modules/@hapi/joi/node_modules/@hapi/topo/lib/index.js b/node_modules/@hapi/joi/node_modules/@hapi/topo/lib/index.js new file mode 100755 index 0000000..bd6e9ed --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/topo/lib/index.js @@ -0,0 +1,215 @@ +'use strict'; + +const Assert = require('@hapi/hoek/lib/assert'); + + +const internals = {}; + + +module.exports = class Topo { + + constructor() { + + this._items = []; + this.nodes = []; + } + + add(nodes, options) { + + options = options || {}; + + // Validate rules + + const before = [].concat(options.before || []); + const after = [].concat(options.after || []); + const group = options.group || '?'; + const sort = options.sort || 0; // Used for merging only + + Assert(!before.includes(group), `Item cannot come before itself: ${group}`); + Assert(!before.includes('?'), 'Item cannot come before unassociated items'); + Assert(!after.includes(group), `Item cannot come after itself: ${group}`); + Assert(!after.includes('?'), 'Item cannot come after unassociated items'); + + if (!Array.isArray(nodes)) { + nodes = [nodes]; + } + + for (const node of nodes) { + const item = { + seq: this._items.length, + sort, + before, + after, + group, + node + }; + + this._items.push(item); + } + + // Insert event + + const valid = this._sort(); + Assert(valid, 'item', group !== '?' ? `added into group ${group}` : '', 'created a dependencies error'); + + return this.nodes; + } + + merge(others) { + + if (!Array.isArray(others)) { + others = [others]; + } + + for (const other of others) { + if (other) { + for (const item of other._items) { + this._items.push(Object.assign({}, item)); // Shallow cloned + } + } + } + + // Sort items + + this._items.sort(internals.mergeSort); + for (let i = 0; i < this._items.length; ++i) { + this._items[i].seq = i; + } + + const valid = this._sort(); + Assert(valid, 'merge created a dependencies error'); + + return this.nodes; + } + + _sort() { + + // Construct graph + + const graph = {}; + const graphAfters = Object.create(null); // A prototype can bungle lookups w/ false positives + const groups = Object.create(null); + + for (const item of this._items) { + const seq = item.seq; // Unique across all items + const group = item.group; + + // Determine Groups + + groups[group] = groups[group] || []; + groups[group].push(seq); + + // Build intermediary graph using 'before' + + graph[seq] = item.before; + + // Build second intermediary graph with 'after' + + for (const after of item.after) { + graphAfters[after] = graphAfters[after] || []; + graphAfters[after].push(seq); + } + } + + // Expand intermediary graph + + for (const node in graph) { + const expandedGroups = []; + + for (const graphNodeItem in graph[node]) { + const group = graph[node][graphNodeItem]; + groups[group] = groups[group] || []; + expandedGroups.push(...groups[group]); + } + + graph[node] = expandedGroups; + } + + // Merge intermediary graph using graphAfters into final graph + + for (const group in graphAfters) { + if (groups[group]) { + for (const node of groups[group]) { + graph[node].push(...graphAfters[group]); + } + } + } + + // Compile ancestors + + const ancestors = {}; + for (const node in graph) { + const children = graph[node]; + for (const child of children) { + ancestors[child] = ancestors[child] || []; + ancestors[child].push(node); + } + } + + // Topo sort + + const visited = {}; + const sorted = []; + + for (let i = 0; i < this._items.length; ++i) { // Looping through item.seq values out of order + let next = i; + + if (ancestors[i]) { + next = null; + for (let j = 0; j < this._items.length; ++j) { // As above, these are item.seq values + if (visited[j] === true) { + continue; + } + + if (!ancestors[j]) { + ancestors[j] = []; + } + + const shouldSeeCount = ancestors[j].length; + let seenCount = 0; + for (let k = 0; k < shouldSeeCount; ++k) { + if (visited[ancestors[j][k]]) { + ++seenCount; + } + } + + if (seenCount === shouldSeeCount) { + next = j; + break; + } + } + } + + if (next !== null) { + visited[next] = true; + sorted.push(next); + } + } + + if (sorted.length !== this._items.length) { + return false; + } + + const seqIndex = {}; + for (const item of this._items) { + seqIndex[item.seq] = item; + } + + this._items = []; + this.nodes = []; + + for (const value of sorted) { + const sortedItem = seqIndex[value]; + this.nodes.push(sortedItem.node); + this._items.push(sortedItem); + } + + return true; + } +}; + + +internals.mergeSort = (a, b) => { + + return a.sort === b.sort ? 0 : (a.sort < b.sort ? -1 : 1); +}; diff --git a/node_modules/@hapi/joi/node_modules/@hapi/topo/package.json b/node_modules/@hapi/joi/node_modules/@hapi/topo/package.json new file mode 100755 index 0000000..accd913 --- /dev/null +++ b/node_modules/@hapi/joi/node_modules/@hapi/topo/package.json @@ -0,0 +1,61 @@ +{ + "_from": "@hapi/topo@3.x.x", + "_id": "@hapi/topo@3.1.6", + "_inBundle": false, + "_integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", + "_location": "/@hapi/joi/@hapi/topo", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "@hapi/topo@3.x.x", + "name": "@hapi/topo", + "escapedName": "@hapi%2ftopo", + "scope": "@hapi", + "rawSpec": "3.x.x", + "saveSpec": null, + "fetchSpec": "3.x.x" + }, + "_requiredBy": [ + "/@hapi/joi" + ], + "_resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", + "_shasum": "68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29", + "_spec": "@hapi/topo@3.x.x", + "_where": "/home/wyrihaximus/Projects/WyriHaximus/github-action-helm3/node_modules/@hapi/joi", + "bugs": { + "url": "https://github.com/hapijs/topo/issues" + }, + "bundleDependencies": false, + "dependencies": { + "@hapi/hoek": "^8.3.0" + }, + "deprecated": "This version has been deprecated and is no longer supported or maintained", + "description": "Topological sorting with grouping support", + "devDependencies": { + "@hapi/code": "6.x.x", + "@hapi/lab": "20.x.x" + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/hapijs/topo#readme", + "keywords": [ + "topological", + "sort", + "toposort", + "topsort" + ], + "license": "BSD-3-Clause", + "main": "lib/index.js", + "name": "@hapi/topo", + "repository": { + "type": "git", + "url": "git://github.com/hapijs/topo.git" + }, + "scripts": { + "test": "lab -a @hapi/code -t 100 -L", + "test-cov-html": "lab -a @hapi/code -t 100 -L -r html -o coverage.html" + }, + "version": "3.1.6" +} diff --git a/node_modules/@hapi/joi/package.json b/node_modules/@hapi/joi/package.json new file mode 100644 index 0000000..02f0bf6 --- /dev/null +++ b/node_modules/@hapi/joi/package.json @@ -0,0 +1,59 @@ +{ + "_from": "@hapi/joi@^15.1.0", + "_id": "@hapi/joi@15.1.1", + "_inBundle": false, + "_integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", + "_location": "/@hapi/joi", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "@hapi/joi@^15.1.0", + "name": "@hapi/joi", + "escapedName": "@hapi%2fjoi", + "scope": "@hapi", + "rawSpec": "^15.1.0", + "saveSpec": null, + "fetchSpec": "^15.1.0" + }, + "_requiredBy": [ + "/wait-file" + ], + "_resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", + "_shasum": "c675b8a71296f02833f8d6d243b34c57b8ce19d7", + "_spec": "@hapi/joi@^15.1.0", + "_where": "/home/wyrihaximus/Projects/WyriHaximus/github-action-helm3/node_modules/wait-file", + "bugs": { + "url": "https://github.com/hapijs/joi/issues" + }, + "bundleDependencies": false, + "dependencies": { + "@hapi/address": "2.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/topo": "3.x.x" + }, + "deprecated": "Switch to 'npm install joi'", + "description": "Object schema validation", + "devDependencies": { + "@hapi/code": "6.x.x", + "@hapi/lab": "20.x.x" + }, + "homepage": "https://github.com/hapijs/joi", + "keywords": [ + "schema", + "validation" + ], + "license": "BSD-3-Clause", + "main": "lib/index.js", + "name": "@hapi/joi", + "repository": { + "type": "git", + "url": "git://github.com/hapijs/joi.git" + }, + "scripts": { + "test": "lab -t 100 -a @hapi/code -L", + "test-cov-html": "lab -r html -o coverage.html -a @hapi/code" + }, + "version": "15.1.1" +} diff --git a/node_modules/@hapi/topo/LICENSE.md b/node_modules/@hapi/topo/LICENSE.md new file mode 100755 index 0000000..0d96bf8 --- /dev/null +++ b/node_modules/@hapi/topo/LICENSE.md @@ -0,0 +1,10 @@ +Copyright (c) 2012-2020, Sideway Inc, and project contributors +Copyright (c) 2012-2014, Walmart. +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 OFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/@hapi/topo/README.md b/node_modules/@hapi/topo/README.md new file mode 100755 index 0000000..118bacb --- /dev/null +++ b/node_modules/@hapi/topo/README.md @@ -0,0 +1,17 @@ + + +# @hapi/topo + +#### Topological sorting with grouping support. + +**topo** is part of the **hapi** ecosystem and was designed to work seamlessly with the [hapi web framework](https://hapi.dev) and its other components (but works great on its own or with other frameworks). If you are using a different web framework and find this module useful, check out [hapi](https://hapi.dev) – they work even better together. + +### Visit the [hapi.dev](https://hapi.dev) Developer Portal for tutorials, documentation, and support + +## Useful resources + +- [Documentation and API](https://hapi.dev/family/topo/) +- [Version status](https://hapi.dev/resources/status/#topo) (builds, dependencies, node versions, licenses, eol) +- [Changelog](https://hapi.dev/family/topo/changelog/) +- [Project policies](https://hapi.dev/policies/) +- [Free and commercial support options](https://hapi.dev/support/) diff --git a/node_modules/@hapi/topo/lib/index.d.ts b/node_modules/@hapi/topo/lib/index.d.ts new file mode 100755 index 0000000..475c71a --- /dev/null +++ b/node_modules/@hapi/topo/lib/index.d.ts @@ -0,0 +1,50 @@ +export class Sorter { + + /** + * An array of the topologically sorted nodes. This list is renewed upon each call to topo.add(). + */ + nodes: T[]; + + /** + * Adds a node or list of nodes to be added and topologically sorted + * + * @param nodes - A mixed value or array of mixed values to be added as nodes to the topologically sorted list. + * @param options - Optional sorting information about the nodes. + * + * @returns Returns an array of the topologically sorted nodes. + */ + add(nodes: T | T[], options?: Options): T[]; + + /** + * Merges another Sorter object into the current object. + * + * @param others - The other object or array of objects to be merged into the current one. + * + * @returns Returns an array of the topologically sorted nodes. + */ + merge(others: Sorter | Sorter[]): T[]; +} + + +export interface Options { + + /** + * The sorting group the added items belong to + */ + readonly group?: string; + + /** + * The group or groups the added items must come before + */ + readonly before?: string | string[]; + + /** + * The group or groups the added items must come after + */ + readonly after?: string | string[]; + + /** + * A number used to sort items with equal before/after requirements + */ + readonly sort?: number; +} diff --git a/node_modules/@hapi/topo/lib/index.js b/node_modules/@hapi/topo/lib/index.js new file mode 100755 index 0000000..d2c684c --- /dev/null +++ b/node_modules/@hapi/topo/lib/index.js @@ -0,0 +1,215 @@ +'use strict'; + +const Assert = require('@hapi/hoek/lib/assert'); + + +const internals = {}; + + +exports.Sorter = class { + + constructor() { + + this._items = []; + this.nodes = []; + } + + add(nodes, options) { + + options = options || {}; + + // Validate rules + + const before = [].concat(options.before || []); + const after = [].concat(options.after || []); + const group = options.group || '?'; + const sort = options.sort || 0; // Used for merging only + + Assert(!before.includes(group), `Item cannot come before itself: ${group}`); + Assert(!before.includes('?'), 'Item cannot come before unassociated items'); + Assert(!after.includes(group), `Item cannot come after itself: ${group}`); + Assert(!after.includes('?'), 'Item cannot come after unassociated items'); + + if (!Array.isArray(nodes)) { + nodes = [nodes]; + } + + for (const node of nodes) { + const item = { + seq: this._items.length, + sort, + before, + after, + group, + node + }; + + this._items.push(item); + } + + // Insert event + + const valid = this._sort(); + Assert(valid, 'item', group !== '?' ? `added into group ${group}` : '', 'created a dependencies error'); + + return this.nodes; + } + + merge(others) { + + if (!Array.isArray(others)) { + others = [others]; + } + + for (const other of others) { + if (other) { + for (const item of other._items) { + this._items.push(Object.assign({}, item)); // Shallow cloned + } + } + } + + // Sort items + + this._items.sort(internals.mergeSort); + for (let i = 0; i < this._items.length; ++i) { + this._items[i].seq = i; + } + + const valid = this._sort(); + Assert(valid, 'merge created a dependencies error'); + + return this.nodes; + } + + _sort() { + + // Construct graph + + const graph = {}; + const graphAfters = Object.create(null); // A prototype can bungle lookups w/ false positives + const groups = Object.create(null); + + for (const item of this._items) { + const seq = item.seq; // Unique across all items + const group = item.group; + + // Determine Groups + + groups[group] = groups[group] || []; + groups[group].push(seq); + + // Build intermediary graph using 'before' + + graph[seq] = item.before; + + // Build second intermediary graph with 'after' + + for (const after of item.after) { + graphAfters[after] = graphAfters[after] || []; + graphAfters[after].push(seq); + } + } + + // Expand intermediary graph + + for (const node in graph) { + const expandedGroups = []; + + for (const graphNodeItem in graph[node]) { + const group = graph[node][graphNodeItem]; + groups[group] = groups[group] || []; + expandedGroups.push(...groups[group]); + } + + graph[node] = expandedGroups; + } + + // Merge intermediary graph using graphAfters into final graph + + for (const group in graphAfters) { + if (groups[group]) { + for (const node of groups[group]) { + graph[node].push(...graphAfters[group]); + } + } + } + + // Compile ancestors + + const ancestors = {}; + for (const node in graph) { + const children = graph[node]; + for (const child of children) { + ancestors[child] = ancestors[child] || []; + ancestors[child].push(node); + } + } + + // Topo sort + + const visited = {}; + const sorted = []; + + for (let i = 0; i < this._items.length; ++i) { // Looping through item.seq values out of order + let next = i; + + if (ancestors[i]) { + next = null; + for (let j = 0; j < this._items.length; ++j) { // As above, these are item.seq values + if (visited[j] === true) { + continue; + } + + if (!ancestors[j]) { + ancestors[j] = []; + } + + const shouldSeeCount = ancestors[j].length; + let seenCount = 0; + for (let k = 0; k < shouldSeeCount; ++k) { + if (visited[ancestors[j][k]]) { + ++seenCount; + } + } + + if (seenCount === shouldSeeCount) { + next = j; + break; + } + } + } + + if (next !== null) { + visited[next] = true; + sorted.push(next); + } + } + + if (sorted.length !== this._items.length) { + return false; + } + + const seqIndex = {}; + for (const item of this._items) { + seqIndex[item.seq] = item; + } + + this._items = []; + this.nodes = []; + + for (const value of sorted) { + const sortedItem = seqIndex[value]; + this.nodes.push(sortedItem.node); + this._items.push(sortedItem); + } + + return true; + } +}; + + +internals.mergeSort = (a, b) => { + + return a.sort === b.sort ? 0 : (a.sort < b.sort ? -1 : 1); +}; diff --git a/node_modules/@hapi/topo/package.json b/node_modules/@hapi/topo/package.json new file mode 100755 index 0000000..d3a7a09 --- /dev/null +++ b/node_modules/@hapi/topo/package.json @@ -0,0 +1,62 @@ +{ + "_from": "@hapi/topo@^5.0.0", + "_id": "@hapi/topo@5.0.0", + "_inBundle": false, + "_integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", + "_location": "/@hapi/topo", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "@hapi/topo@^5.0.0", + "name": "@hapi/topo", + "escapedName": "@hapi%2ftopo", + "scope": "@hapi", + "rawSpec": "^5.0.0", + "saveSpec": null, + "fetchSpec": "^5.0.0" + }, + "_requiredBy": [ + "/joi" + ], + "_resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", + "_shasum": "c19af8577fa393a06e9c77b60995af959be721e7", + "_spec": "@hapi/topo@^5.0.0", + "_where": "/home/wyrihaximus/Projects/WyriHaximus/github-action-helm3/node_modules/joi", + "bugs": { + "url": "https://github.com/hapijs/topo/issues" + }, + "bundleDependencies": false, + "dependencies": { + "@hapi/hoek": "^9.0.0" + }, + "deprecated": false, + "description": "Topological sorting with grouping support", + "devDependencies": { + "@hapi/code": "8.x.x", + "@hapi/lab": "22.x.x" + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/hapijs/topo#readme", + "keywords": [ + "topological", + "sort", + "toposort", + "topsort" + ], + "license": "BSD-3-Clause", + "main": "lib/index.js", + "name": "@hapi/topo", + "repository": { + "type": "git", + "url": "git://github.com/hapijs/topo.git" + }, + "scripts": { + "test": "lab -a @hapi/code -t 100 -L -Y", + "test-cov-html": "lab -a @hapi/code -t 100 -L -r html -o coverage.html" + }, + "types": "lib/index.d.ts", + "version": "5.0.0" +} diff --git a/node_modules/@sideway/address/LICENSE.md b/node_modules/@sideway/address/LICENSE.md new file mode 100644 index 0000000..0c6e658 --- /dev/null +++ b/node_modules/@sideway/address/LICENSE.md @@ -0,0 +1,9 @@ +Copyright (c) 2019-2020, Sideway, Inc. and Project 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. diff --git a/node_modules/@sideway/address/README.md b/node_modules/@sideway/address/README.md new file mode 100755 index 0000000..c26895f --- /dev/null +++ b/node_modules/@sideway/address/README.md @@ -0,0 +1,14 @@ +# @sideway/address + +#### Validate email address and domain. + +**address** is part of the **joi** ecosystem. + +### Visit the [joi.dev](https://joi.dev) Developer Portal for tutorials, documentation, and support + +## Useful resources + +- [Documentation and API](https://joi.dev/module/address/) +- [Versions status](https://joi.dev/resources/status/#address) +- [Changelog](https://joi.dev/module/address/changelog/) +- [Project policies](https://joi.dev/policies/) diff --git a/node_modules/@sideway/address/lib/decode.js b/node_modules/@sideway/address/lib/decode.js new file mode 100755 index 0000000..06a1236 --- /dev/null +++ b/node_modules/@sideway/address/lib/decode.js @@ -0,0 +1,120 @@ +'use strict'; + +// Adapted from: +// Copyright (c) 2017-2019 Justin Ridgewell, MIT Licensed, https://github.com/jridgewell/safe-decode-string-component +// Copyright (c) 2008-2009 Bjoern Hoehrmann , MIT Licensed, http://bjoern.hoehrmann.de/utf-8/decoder/dfa/ + + +const internals = {}; + + +exports.decode = function (string) { + + let percentPos = string.indexOf('%'); + if (percentPos === -1) { + return string; + } + + let decoded = ''; + let last = 0; + let codepoint = 0; + let startOfOctets = percentPos; + let state = internals.utf8.accept; + + while (percentPos > -1 && + percentPos < string.length) { + + const high = internals.resolveHex(string[percentPos + 1], 4); + const low = internals.resolveHex(string[percentPos + 2], 0); + const byte = high | low; + const type = internals.utf8.data[byte]; + state = internals.utf8.data[256 + state + type]; + codepoint = (codepoint << 6) | (byte & internals.utf8.data[364 + type]); + + if (state === internals.utf8.accept) { + decoded += string.slice(last, startOfOctets); + decoded += codepoint <= 0xFFFF + ? String.fromCharCode(codepoint) + : String.fromCharCode(0xD7C0 + (codepoint >> 10), 0xDC00 + (codepoint & 0x3FF)); + + codepoint = 0; + last = percentPos + 3; + percentPos = string.indexOf('%', last); + startOfOctets = percentPos; + continue; + } + + if (state === internals.utf8.reject) { + return null; + } + + percentPos += 3; + + if (percentPos >= string.length || + string[percentPos] !== '%') { + + return null; + } + } + + return decoded + string.slice(last); +}; + + +internals.resolveHex = function (char, shift) { + + const i = internals.hex[char]; + return i === undefined ? 255 : i << shift; +}; + + +internals.hex = { + '0': 0, '1': 1, '2': 2, '3': 3, '4': 4, + '5': 5, '6': 6, '7': 7, '8': 8, '9': 9, + 'a': 10, 'A': 10, 'b': 11, 'B': 11, 'c': 12, + 'C': 12, 'd': 13, 'D': 13, 'e': 14, 'E': 14, + 'f': 15, 'F': 15 +}; + + +internals.utf8 = { + accept: 12, + reject: 0, + data: [ + + // Maps bytes to character to a transition + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 7, 7, + 10, 9, 9, 9, 11, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + + // Maps a state to a new state when adding a transition + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 0, 24, 36, 48, 60, 72, 84, 96, + 0, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 24, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + // Maps the current transition to a mask that needs to apply to the byte + + 0x7F, 0x3F, 0x3F, 0x3F, 0x00, 0x1F, 0x0F, 0x0F, 0x0F, 0x07, 0x07, 0x07 + ] +}; diff --git a/node_modules/@sideway/address/lib/domain.js b/node_modules/@sideway/address/lib/domain.js new file mode 100755 index 0000000..e96bf5e --- /dev/null +++ b/node_modules/@sideway/address/lib/domain.js @@ -0,0 +1,113 @@ +'use strict'; + +const Url = require('url'); + +const Errors = require('./errors'); + + +const internals = { + minDomainSegments: 2, + nonAsciiRx: /[^\x00-\x7f]/, + domainControlRx: /[\x00-\x20@\:\/]/, // Control + space + separators + tldSegmentRx: /^[a-zA-Z](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?$/, + domainSegmentRx: /^[a-zA-Z0-9](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?$/, + URL: Url.URL || URL // $lab:coverage:ignore$ +}; + + +exports.analyze = function (domain, options = {}) { + + if (typeof domain !== 'string') { + throw new Error('Invalid input: domain must be a string'); + } + + if (!domain) { + return Errors.code('DOMAIN_NON_EMPTY_STRING'); + } + + if (domain.length > 256) { + return Errors.code('DOMAIN_TOO_LONG'); + } + + const ascii = !internals.nonAsciiRx.test(domain); + if (!ascii) { + if (options.allowUnicode === false) { // Defaults to true + return Errors.code('DOMAIN_INVALID_UNICODE_CHARS'); + } + + domain = domain.normalize('NFC'); + } + + if (internals.domainControlRx.test(domain)) { + return Errors.code('DOMAIN_INVALID_CHARS'); + } + + domain = internals.punycode(domain); + + // https://tools.ietf.org/html/rfc1035 section 2.3.1 + + const minDomainSegments = options.minDomainSegments || internals.minDomainSegments; + + const segments = domain.split('.'); + if (segments.length < minDomainSegments) { + return Errors.code('DOMAIN_SEGMENTS_COUNT'); + } + + if (options.maxDomainSegments) { + if (segments.length > options.maxDomainSegments) { + return Errors.code('DOMAIN_SEGMENTS_COUNT_MAX'); + } + } + + const tlds = options.tlds; + if (tlds) { + const tld = segments[segments.length - 1].toLowerCase(); + if (tlds.deny && tlds.deny.has(tld) || + tlds.allow && !tlds.allow.has(tld)) { + + return Errors.code('DOMAIN_FORBIDDEN_TLDS'); + } + } + + for (let i = 0; i < segments.length; ++i) { + const segment = segments[i]; + + if (!segment.length) { + return Errors.code('DOMAIN_EMPTY_SEGMENT'); + } + + if (segment.length > 63) { + return Errors.code('DOMAIN_LONG_SEGMENT'); + } + + if (i < segments.length - 1) { + if (!internals.domainSegmentRx.test(segment)) { + return Errors.code('DOMAIN_INVALID_CHARS'); + } + } + else { + if (!internals.tldSegmentRx.test(segment)) { + return Errors.code('DOMAIN_INVALID_TLDS_CHARS'); + } + } + } + + return null; +}; + + +exports.isValid = function (domain, options) { + + return !exports.analyze(domain, options); +}; + + +internals.punycode = function (domain) { + + try { + return new internals.URL(`http://${domain}`).host; + } + catch (err) { + return domain; + } +}; diff --git a/node_modules/@sideway/address/lib/email.js b/node_modules/@sideway/address/lib/email.js new file mode 100755 index 0000000..8343ab7 --- /dev/null +++ b/node_modules/@sideway/address/lib/email.js @@ -0,0 +1,170 @@ +'use strict'; + +const Util = require('util'); + +const Domain = require('./domain'); +const Errors = require('./errors'); + + +const internals = { + nonAsciiRx: /[^\x00-\x7f]/, + encoder: new (Util.TextEncoder || TextEncoder)() // $lab:coverage:ignore$ +}; + + +exports.analyze = function (email, options) { + + return internals.email(email, options); +}; + + +exports.isValid = function (email, options) { + + return !internals.email(email, options); +}; + + +internals.email = function (email, options = {}) { + + if (typeof email !== 'string') { + throw new Error('Invalid input: email must be a string'); + } + + if (!email) { + return Errors.code('EMPTY_STRING'); + } + + // Unicode + + const ascii = !internals.nonAsciiRx.test(email); + if (!ascii) { + if (options.allowUnicode === false) { // Defaults to true + return Errors.code('FORBIDDEN_UNICODE'); + } + + email = email.normalize('NFC'); + } + + // Basic structure + + const parts = email.split('@'); + if (parts.length !== 2) { + return parts.length > 2 ? Errors.code('MULTIPLE_AT_CHAR') : Errors.code('MISSING_AT_CHAR'); + } + + const [local, domain] = parts; + + if (!local) { + return Errors.code('EMPTY_LOCAL'); + } + + if (!options.ignoreLength) { + if (email.length > 254) { // http://tools.ietf.org/html/rfc5321#section-4.5.3.1.3 + return Errors.code('ADDRESS_TOO_LONG'); + } + + if (internals.encoder.encode(local).length > 64) { // http://tools.ietf.org/html/rfc5321#section-4.5.3.1.1 + return Errors.code('LOCAL_TOO_LONG'); + } + } + + // Validate parts + + return internals.local(local, ascii) || Domain.analyze(domain, options); +}; + + +internals.local = function (local, ascii) { + + const segments = local.split('.'); + for (const segment of segments) { + if (!segment.length) { + return Errors.code('EMPTY_LOCAL_SEGMENT'); + } + + if (ascii) { + if (!internals.atextRx.test(segment)) { + return Errors.code('INVALID_LOCAL_CHARS'); + } + + continue; + } + + for (const char of segment) { + if (internals.atextRx.test(char)) { + continue; + } + + const binary = internals.binary(char); + if (!internals.atomRx.test(binary)) { + return Errors.code('INVALID_LOCAL_CHARS'); + } + } + } +}; + + +internals.binary = function (char) { + + return Array.from(internals.encoder.encode(char)).map((v) => String.fromCharCode(v)).join(''); +}; + + +/* + From RFC 5321: + + Mailbox = Local-part "@" ( Domain / address-literal ) + + Local-part = Dot-string / Quoted-string + Dot-string = Atom *("." Atom) + Atom = 1*atext + atext = ALPHA / DIGIT / "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" / "-" / "/" / "=" / "?" / "^" / "_" / "`" / "{" / "|" / "}" / "~" + + Domain = sub-domain *("." sub-domain) + sub-domain = Let-dig [Ldh-str] + Let-dig = ALPHA / DIGIT + Ldh-str = *( ALPHA / DIGIT / "-" ) Let-dig + + ALPHA = %x41-5A / %x61-7A ; a-z, A-Z + DIGIT = %x30-39 ; 0-9 + + From RFC 6531: + + sub-domain =/ U-label + atext =/ UTF8-non-ascii + + UTF8-non-ascii = UTF8-2 / UTF8-3 / UTF8-4 + + UTF8-2 = %xC2-DF UTF8-tail + UTF8-3 = %xE0 %xA0-BF UTF8-tail / + %xE1-EC 2( UTF8-tail ) / + %xED %x80-9F UTF8-tail / + %xEE-EF 2( UTF8-tail ) + UTF8-4 = %xF0 %x90-BF 2( UTF8-tail ) / + %xF1-F3 3( UTF8-tail ) / + %xF4 %x80-8F 2( UTF8-tail ) + + UTF8-tail = %x80-BF + + Note: The following are not supported: + + RFC 5321: address-literal, Quoted-string + RFC 5322: obs-*, CFWS +*/ + + +internals.atextRx = /^[\w!#\$%&'\*\+\-/=\?\^`\{\|\}~]+$/; // _ included in \w + + +internals.atomRx = new RegExp([ + + // %xC2-DF UTF8-tail + '(?:[\\xc2-\\xdf][\\x80-\\xbf])', + + // %xE0 %xA0-BF UTF8-tail %xE1-EC 2( UTF8-tail ) %xED %x80-9F UTF8-tail %xEE-EF 2( UTF8-tail ) + '(?:\\xe0[\\xa0-\\xbf][\\x80-\\xbf])|(?:[\\xe1-\\xec][\\x80-\\xbf]{2})|(?:\\xed[\\x80-\\x9f][\\x80-\\xbf])|(?:[\\xee-\\xef][\\x80-\\xbf]{2})', + + // %xF0 %x90-BF 2( UTF8-tail ) %xF1-F3 3( UTF8-tail ) %xF4 %x80-8F 2( UTF8-tail ) + '(?:\\xf0[\\x90-\\xbf][\\x80-\\xbf]{2})|(?:[\\xf1-\\xf3][\\x80-\\xbf]{3})|(?:\\xf4[\\x80-\\x8f][\\x80-\\xbf]{2})' + +].join('|')); diff --git a/node_modules/@sideway/address/lib/errors.js b/node_modules/@sideway/address/lib/errors.js new file mode 100755 index 0000000..001dd10 --- /dev/null +++ b/node_modules/@sideway/address/lib/errors.js @@ -0,0 +1,29 @@ +'use strict'; + +exports.codes = { + EMPTY_STRING: 'Address must be a non-empty string', + FORBIDDEN_UNICODE: 'Address contains forbidden Unicode characters', + MULTIPLE_AT_CHAR: 'Address cannot contain more than one @ character', + MISSING_AT_CHAR: 'Address must contain one @ character', + EMPTY_LOCAL: 'Address local part cannot be empty', + ADDRESS_TOO_LONG: 'Address too long', + LOCAL_TOO_LONG: 'Address local part too long', + EMPTY_LOCAL_SEGMENT: 'Address local part contains empty dot-separated segment', + INVALID_LOCAL_CHARS: 'Address local part contains invalid character', + DOMAIN_NON_EMPTY_STRING: 'Domain must be a non-empty string', + DOMAIN_TOO_LONG: 'Domain too long', + DOMAIN_INVALID_UNICODE_CHARS: 'Domain contains forbidden Unicode characters', + DOMAIN_INVALID_CHARS: 'Domain contains invalid character', + DOMAIN_INVALID_TLDS_CHARS: 'Domain contains invalid tld character', + DOMAIN_SEGMENTS_COUNT: 'Domain lacks the minimum required number of segments', + DOMAIN_SEGMENTS_COUNT_MAX: 'Domain contains too many segments', + DOMAIN_FORBIDDEN_TLDS: 'Domain uses forbidden TLD', + DOMAIN_EMPTY_SEGMENT: 'Domain contains empty dot-separated segment', + DOMAIN_LONG_SEGMENT: 'Domain contains dot-separated segment that is too long' +}; + + +exports.code = function (code) { + + return { code, error: exports.codes[code] }; +}; diff --git a/node_modules/@sideway/address/lib/index.d.ts b/node_modules/@sideway/address/lib/index.d.ts new file mode 100755 index 0000000..a533d73 --- /dev/null +++ b/node_modules/@sideway/address/lib/index.d.ts @@ -0,0 +1,255 @@ +/// + +import * as Hoek from '@hapi/hoek'; + + +export namespace domain { + + /** + * Analyzes a string to verify it is a valid domain name. + * + * @param domain - the domain name to validate. + * @param options - optional settings. + * + * @return - undefined when valid, otherwise an object with single error key with a string message value. + */ + function analyze(domain: string, options?: Options): Analysis | null; + + /** + * Analyzes a string to verify it is a valid domain name. + * + * @param domain - the domain name to validate. + * @param options - optional settings. + * + * @return - true when valid, otherwise false. + */ + function isValid(domain: string, options?: Options): boolean; + + interface Options { + + /** + * Determines whether Unicode characters are allowed. + * + * @default true + */ + readonly allowUnicode?: boolean; + + /** + * The minimum number of domain segments (e.g. `x.y.z` has 3 segments) required. + * + * @default 2 + */ + readonly minDomainSegments?: number; + + /** + * Top-level-domain options + * + * @default true + */ + readonly tlds?: Tlds.Allow | Tlds.Deny | boolean; + } + + namespace Tlds { + + interface Allow { + + readonly allow: Set | true; + } + + interface Deny { + + readonly deny: Set; + } + } +} + + +export namespace email { + + /** + * Analyzes a string to verify it is a valid email address. + * + * @param email - the email address to validate. + * @param options - optional settings. + * + * @return - undefined when valid, otherwise an object with single error key with a string message value. + */ + function analyze(email: string, options?: Options): Analysis | null; + + /** + * Analyzes a string to verify it is a valid email address. + * + * @param email - the email address to validate. + * @param options - optional settings. + * + * @return - true when valid, otherwise false. + */ + function isValid(email: string, options?: Options): boolean; + + interface Options extends domain.Options { + + /** + * Determines whether to ignore the standards maximum email length limit. + * + * @default false + */ + readonly ignoreLength?: boolean; + } +} + + +export interface Analysis { + + /** + * The reason validation failed. + */ + error: string; + + /** + * The error code. + */ + code: string; +} + + +export const errors: Record; + + +export namespace ip { + + /** + * Generates a regular expression used to validate IP addresses. + * + * @param options - optional settings. + * + * @returns an object with the regular expression and meta data. + */ + function regex(options?: Options): Expression; + + interface Options { + + /** + * The required CIDR mode. + * + * @default 'optional' + */ + readonly cidr?: Cidr; + + /** + * The allowed versions. + * + * @default ['ipv4', 'ipv6', 'ipvfuture'] + */ + readonly version?: Version | Version[]; + } + + type Cidr = 'optional' | 'required' | 'forbidden'; + type Version = 'ipv4' | 'ipv6' | 'ipvfuture'; + + interface Expression { + + /** + * The CIDR mode. + */ + cidr: Cidr; + + /** + * The raw regular expression string. + */ + raw: string; + + /** + * The regular expression. + */ + regex: RegExp; + + /** + * The array of versions allowed. + */ + versions: Version[]; + } +} + + +export namespace uri { + + /** + * Faster version of decodeURIComponent() that does not throw. + * + * @param string - the URL string to decode. + * + * @returns the decoded string or null if invalid. + */ + function decode(string: string): string | null; + + /** + * Generates a regular expression used to validate URI addresses. + * + * @param options - optional settings. + * + * @returns an object with the regular expression and meta data. + */ + function regex(options?: Options): Expression; + + type Options = Hoek.ts.XOR; + + namespace Options { + + interface Query { + + /** + * Allow the use of [] in query parameters. + * + * @default false + */ + readonly allowQuerySquareBrackets?: boolean; + } + + interface Relative extends Query { + + /** + * Requires the URI to be relative. + * + * @default false + */ + readonly relativeOnly?: boolean; + } + + interface Options extends Query { + + /** + * Allow relative URIs. + * + * @default false + */ + readonly allowRelative?: boolean; + + /** + * Capture domain segment ($1). + * + * @default false + */ + readonly domain?: boolean; + + /** + * The allowed URI schemes. + */ + readonly scheme?: Scheme | Scheme[]; + } + + type Scheme = string | RegExp; + } + + interface Expression { + + /** + * The raw regular expression string. + */ + raw: string; + + /** + * The regular expression. + */ + regex: RegExp; + } +} diff --git a/node_modules/@sideway/address/lib/index.js b/node_modules/@sideway/address/lib/index.js new file mode 100755 index 0000000..b93a9c5 --- /dev/null +++ b/node_modules/@sideway/address/lib/index.js @@ -0,0 +1,97 @@ +'use strict'; + +const Decode = require('./decode'); +const Domain = require('./domain'); +const Email = require('./email'); +const Errors = require('./errors'); +const Ip = require('./ip'); +const Tlds = require('./tlds'); +const Uri = require('./uri'); + + +const internals = { + defaultTlds: { allow: Tlds, deny: null } +}; + + +module.exports = { + errors: Errors.codes, + + domain: { + analyze(domain, options) { + + options = internals.options(options); + return Domain.analyze(domain, options); + }, + + isValid(domain, options) { + + options = internals.options(options); + return Domain.isValid(domain, options); + } + }, + email: { + analyze(email, options) { + + options = internals.options(options); + return Email.analyze(email, options); + }, + + isValid(email, options) { + + options = internals.options(options); + return Email.isValid(email, options); + } + }, + ip: { + regex: Ip.regex + }, + uri: { + decode: Decode.decode, + regex: Uri.regex + } +}; + + +internals.options = function (options) { + + if (!options) { + return { tlds: internals.defaultTlds }; + } + + if (options.tlds === false) { // Defaults to true + return options; + } + + if (!options.tlds || + options.tlds === true) { + + return Object.assign({}, options, { tlds: internals.defaultTlds }); + } + + if (typeof options.tlds !== 'object') { + throw new Error('Invalid options: tlds must be a boolean or an object'); + } + + if (options.tlds.deny) { + if (options.tlds.deny instanceof Set === false) { + throw new Error('Invalid options: tlds.deny must be a Set object'); + } + + if (options.tlds.allow) { + throw new Error('Invalid options: cannot specify both tlds.allow and tlds.deny lists'); + } + + return options; + } + + if (options.tlds.allow === true) { + return Object.assign({}, options, { tlds: internals.defaultTlds }); + } + + if (options.tlds.allow instanceof Set === false) { + throw new Error('Invalid options: tlds.allow must be a Set object or true'); + } + + return options; +}; diff --git a/node_modules/@sideway/address/lib/ip.js b/node_modules/@sideway/address/lib/ip.js new file mode 100755 index 0000000..541b72c --- /dev/null +++ b/node_modules/@sideway/address/lib/ip.js @@ -0,0 +1,63 @@ +'use strict'; + +const Assert = require('@hapi/hoek/lib/assert'); + +const Uri = require('./uri'); + + +const internals = {}; + + +exports.regex = function (options = {}) { + + // CIDR + + Assert(options.cidr === undefined || typeof options.cidr === 'string', 'options.cidr must be a string'); + const cidr = options.cidr ? options.cidr.toLowerCase() : 'optional'; + Assert(['required', 'optional', 'forbidden'].includes(cidr), 'options.cidr must be one of required, optional, forbidden'); + + // Versions + + Assert(options.version === undefined || typeof options.version === 'string' || Array.isArray(options.version), 'options.version must be a string or an array of string'); + let versions = options.version || ['ipv4', 'ipv6', 'ipvfuture']; + if (!Array.isArray(versions)) { + versions = [versions]; + } + + Assert(versions.length >= 1, 'options.version must have at least 1 version specified'); + + for (let i = 0; i < versions.length; ++i) { + Assert(typeof versions[i] === 'string', 'options.version must only contain strings'); + versions[i] = versions[i].toLowerCase(); + Assert(['ipv4', 'ipv6', 'ipvfuture'].includes(versions[i]), 'options.version contains unknown version ' + versions[i] + ' - must be one of ipv4, ipv6, ipvfuture'); + } + + versions = Array.from(new Set(versions)); + + // Regex + + const parts = versions.map((version) => { + + // Forbidden + + if (cidr === 'forbidden') { + return Uri.ip[version]; + } + + // Required + + const cidrpart = `\\/${version === 'ipv4' ? Uri.ip.v4Cidr : Uri.ip.v6Cidr}`; + + if (cidr === 'required') { + return `${Uri.ip[version]}${cidrpart}`; + } + + // Optional + + return `${Uri.ip[version]}(?:${cidrpart})?`; + }); + + const raw = `(?:${parts.join('|')})`; + const regex = new RegExp(`^${raw}$`); + return { cidr, versions, regex, raw }; +}; diff --git a/node_modules/@sideway/address/lib/tlds.js b/node_modules/@sideway/address/lib/tlds.js new file mode 100755 index 0000000..77a00e3 --- /dev/null +++ b/node_modules/@sideway/address/lib/tlds.js @@ -0,0 +1,1542 @@ +'use strict'; + +const internals = {}; + + +// http://data.iana.org/TLD/tlds-alpha-by-domain.txt +// # Version 2019091902, Last Updated Fri Sep 20 07: 07: 02 2019 UTC + + +internals.tlds = [ + 'AAA', + 'AARP', + 'ABARTH', + 'ABB', + 'ABBOTT', + 'ABBVIE', + 'ABC', + 'ABLE', + 'ABOGADO', + 'ABUDHABI', + 'AC', + 'ACADEMY', + 'ACCENTURE', + 'ACCOUNTANT', + 'ACCOUNTANTS', + 'ACO', + 'ACTOR', + 'AD', + 'ADAC', + 'ADS', + 'ADULT', + 'AE', + 'AEG', + 'AERO', + 'AETNA', + 'AF', + 'AFAMILYCOMPANY', + 'AFL', + 'AFRICA', + 'AG', + 'AGAKHAN', + 'AGENCY', + 'AI', + 'AIG', + 'AIGO', + 'AIRBUS', + 'AIRFORCE', + 'AIRTEL', + 'AKDN', + 'AL', + 'ALFAROMEO', + 'ALIBABA', + 'ALIPAY', + 'ALLFINANZ', + 'ALLSTATE', + 'ALLY', + 'ALSACE', + 'ALSTOM', + 'AM', + 'AMERICANEXPRESS', + 'AMERICANFAMILY', + 'AMEX', + 'AMFAM', + 'AMICA', + 'AMSTERDAM', + 'ANALYTICS', + 'ANDROID', + 'ANQUAN', + 'ANZ', + 'AO', + 'AOL', + 'APARTMENTS', + 'APP', + 'APPLE', + 'AQ', + 'AQUARELLE', + 'AR', + 'ARAB', + 'ARAMCO', + 'ARCHI', + 'ARMY', + 'ARPA', + 'ART', + 'ARTE', + 'AS', + 'ASDA', + 'ASIA', + 'ASSOCIATES', + 'AT', + 'ATHLETA', + 'ATTORNEY', + 'AU', + 'AUCTION', + 'AUDI', + 'AUDIBLE', + 'AUDIO', + 'AUSPOST', + 'AUTHOR', + 'AUTO', + 'AUTOS', + 'AVIANCA', + 'AW', + 'AWS', + 'AX', + 'AXA', + 'AZ', + 'AZURE', + 'BA', + 'BABY', + 'BAIDU', + 'BANAMEX', + 'BANANAREPUBLIC', + 'BAND', + 'BANK', + 'BAR', + 'BARCELONA', + 'BARCLAYCARD', + 'BARCLAYS', + 'BAREFOOT', + 'BARGAINS', + 'BASEBALL', + 'BASKETBALL', + 'BAUHAUS', + 'BAYERN', + 'BB', + 'BBC', + 'BBT', + 'BBVA', + 'BCG', + 'BCN', + 'BD', + 'BE', + 'BEATS', + 'BEAUTY', + 'BEER', + 'BENTLEY', + 'BERLIN', + 'BEST', + 'BESTBUY', + 'BET', + 'BF', + 'BG', + 'BH', + 'BHARTI', + 'BI', + 'BIBLE', + 'BID', + 'BIKE', + 'BING', + 'BINGO', + 'BIO', + 'BIZ', + 'BJ', + 'BLACK', + 'BLACKFRIDAY', + 'BLOCKBUSTER', + 'BLOG', + 'BLOOMBERG', + 'BLUE', + 'BM', + 'BMS', + 'BMW', + 'BN', + 'BNPPARIBAS', + 'BO', + 'BOATS', + 'BOEHRINGER', + 'BOFA', + 'BOM', + 'BOND', + 'BOO', + 'BOOK', + 'BOOKING', + 'BOSCH', + 'BOSTIK', + 'BOSTON', + 'BOT', + 'BOUTIQUE', + 'BOX', + 'BR', + 'BRADESCO', + 'BRIDGESTONE', + 'BROADWAY', + 'BROKER', + 'BROTHER', + 'BRUSSELS', + 'BS', + 'BT', + 'BUDAPEST', + 'BUGATTI', + 'BUILD', + 'BUILDERS', + 'BUSINESS', + 'BUY', + 'BUZZ', + 'BV', + 'BW', + 'BY', + 'BZ', + 'BZH', + 'CA', + 'CAB', + 'CAFE', + 'CAL', + 'CALL', + 'CALVINKLEIN', + 'CAM', + 'CAMERA', + 'CAMP', + 'CANCERRESEARCH', + 'CANON', + 'CAPETOWN', + 'CAPITAL', + 'CAPITALONE', + 'CAR', + 'CARAVAN', + 'CARDS', + 'CARE', + 'CAREER', + 'CAREERS', + 'CARS', + 'CARTIER', + 'CASA', + 'CASE', + 'CASEIH', + 'CASH', + 'CASINO', + 'CAT', + 'CATERING', + 'CATHOLIC', + 'CBA', + 'CBN', + 'CBRE', + 'CBS', + 'CC', + 'CD', + 'CEB', + 'CENTER', + 'CEO', + 'CERN', + 'CF', + 'CFA', + 'CFD', + 'CG', + 'CH', + 'CHANEL', + 'CHANNEL', + 'CHARITY', + 'CHASE', + 'CHAT', + 'CHEAP', + 'CHINTAI', + 'CHRISTMAS', + 'CHROME', + 'CHRYSLER', + 'CHURCH', + 'CI', + 'CIPRIANI', + 'CIRCLE', + 'CISCO', + 'CITADEL', + 'CITI', + 'CITIC', + 'CITY', + 'CITYEATS', + 'CK', + 'CL', + 'CLAIMS', + 'CLEANING', + 'CLICK', + 'CLINIC', + 'CLINIQUE', + 'CLOTHING', + 'CLOUD', + 'CLUB', + 'CLUBMED', + 'CM', + 'CN', + 'CO', + 'COACH', + 'CODES', + 'COFFEE', + 'COLLEGE', + 'COLOGNE', + 'COM', + 'COMCAST', + 'COMMBANK', + 'COMMUNITY', + 'COMPANY', + 'COMPARE', + 'COMPUTER', + 'COMSEC', + 'CONDOS', + 'CONSTRUCTION', + 'CONSULTING', + 'CONTACT', + 'CONTRACTORS', + 'COOKING', + 'COOKINGCHANNEL', + 'COOL', + 'COOP', + 'CORSICA', + 'COUNTRY', + 'COUPON', + 'COUPONS', + 'COURSES', + 'CR', + 'CREDIT', + 'CREDITCARD', + 'CREDITUNION', + 'CRICKET', + 'CROWN', + 'CRS', + 'CRUISE', + 'CRUISES', + 'CSC', + 'CU', + 'CUISINELLA', + 'CV', + 'CW', + 'CX', + 'CY', + 'CYMRU', + 'CYOU', + 'CZ', + 'DABUR', + 'DAD', + 'DANCE', + 'DATA', + 'DATE', + 'DATING', + 'DATSUN', + 'DAY', + 'DCLK', + 'DDS', + 'DE', + 'DEAL', + 'DEALER', + 'DEALS', + 'DEGREE', + 'DELIVERY', + 'DELL', + 'DELOITTE', + 'DELTA', + 'DEMOCRAT', + 'DENTAL', + 'DENTIST', + 'DESI', + 'DESIGN', + 'DEV', + 'DHL', + 'DIAMONDS', + 'DIET', + 'DIGITAL', + 'DIRECT', + 'DIRECTORY', + 'DISCOUNT', + 'DISCOVER', + 'DISH', + 'DIY', + 'DJ', + 'DK', + 'DM', + 'DNP', + 'DO', + 'DOCS', + 'DOCTOR', + 'DODGE', + 'DOG', + 'DOMAINS', + 'DOT', + 'DOWNLOAD', + 'DRIVE', + 'DTV', + 'DUBAI', + 'DUCK', + 'DUNLOP', + 'DUPONT', + 'DURBAN', + 'DVAG', + 'DVR', + 'DZ', + 'EARTH', + 'EAT', + 'EC', + 'ECO', + 'EDEKA', + 'EDU', + 'EDUCATION', + 'EE', + 'EG', + 'EMAIL', + 'EMERCK', + 'ENERGY', + 'ENGINEER', + 'ENGINEERING', + 'ENTERPRISES', + 'EPSON', + 'EQUIPMENT', + 'ER', + 'ERICSSON', + 'ERNI', + 'ES', + 'ESQ', + 'ESTATE', + 'ESURANCE', + 'ET', + 'ETISALAT', + 'EU', + 'EUROVISION', + 'EUS', + 'EVENTS', + 'EVERBANK', + 'EXCHANGE', + 'EXPERT', + 'EXPOSED', + 'EXPRESS', + 'EXTRASPACE', + 'FAGE', + 'FAIL', + 'FAIRWINDS', + 'FAITH', + 'FAMILY', + 'FAN', + 'FANS', + 'FARM', + 'FARMERS', + 'FASHION', + 'FAST', + 'FEDEX', + 'FEEDBACK', + 'FERRARI', + 'FERRERO', + 'FI', + 'FIAT', + 'FIDELITY', + 'FIDO', + 'FILM', + 'FINAL', + 'FINANCE', + 'FINANCIAL', + 'FIRE', + 'FIRESTONE', + 'FIRMDALE', + 'FISH', + 'FISHING', + 'FIT', + 'FITNESS', + 'FJ', + 'FK', + 'FLICKR', + 'FLIGHTS', + 'FLIR', + 'FLORIST', + 'FLOWERS', + 'FLY', + 'FM', + 'FO', + 'FOO', + 'FOOD', + 'FOODNETWORK', + 'FOOTBALL', + 'FORD', + 'FOREX', + 'FORSALE', + 'FORUM', + 'FOUNDATION', + 'FOX', + 'FR', + 'FREE', + 'FRESENIUS', + 'FRL', + 'FROGANS', + 'FRONTDOOR', + 'FRONTIER', + 'FTR', + 'FUJITSU', + 'FUJIXEROX', + 'FUN', + 'FUND', + 'FURNITURE', + 'FUTBOL', + 'FYI', + 'GA', + 'GAL', + 'GALLERY', + 'GALLO', + 'GALLUP', + 'GAME', + 'GAMES', + 'GAP', + 'GARDEN', + 'GAY', + 'GB', + 'GBIZ', + 'GD', + 'GDN', + 'GE', + 'GEA', + 'GENT', + 'GENTING', + 'GEORGE', + 'GF', + 'GG', + 'GGEE', + 'GH', + 'GI', + 'GIFT', + 'GIFTS', + 'GIVES', + 'GIVING', + 'GL', + 'GLADE', + 'GLASS', + 'GLE', + 'GLOBAL', + 'GLOBO', + 'GM', + 'GMAIL', + 'GMBH', + 'GMO', + 'GMX', + 'GN', + 'GODADDY', + 'GOLD', + 'GOLDPOINT', + 'GOLF', + 'GOO', + 'GOODYEAR', + 'GOOG', + 'GOOGLE', + 'GOP', + 'GOT', + 'GOV', + 'GP', + 'GQ', + 'GR', + 'GRAINGER', + 'GRAPHICS', + 'GRATIS', + 'GREEN', + 'GRIPE', + 'GROCERY', + 'GROUP', + 'GS', + 'GT', + 'GU', + 'GUARDIAN', + 'GUCCI', + 'GUGE', + 'GUIDE', + 'GUITARS', + 'GURU', + 'GW', + 'GY', + 'HAIR', + 'HAMBURG', + 'HANGOUT', + 'HAUS', + 'HBO', + 'HDFC', + 'HDFCBANK', + 'HEALTH', + 'HEALTHCARE', + 'HELP', + 'HELSINKI', + 'HERE', + 'HERMES', + 'HGTV', + 'HIPHOP', + 'HISAMITSU', + 'HITACHI', + 'HIV', + 'HK', + 'HKT', + 'HM', + 'HN', + 'HOCKEY', + 'HOLDINGS', + 'HOLIDAY', + 'HOMEDEPOT', + 'HOMEGOODS', + 'HOMES', + 'HOMESENSE', + 'HONDA', + 'HORSE', + 'HOSPITAL', + 'HOST', + 'HOSTING', + 'HOT', + 'HOTELES', + 'HOTELS', + 'HOTMAIL', + 'HOUSE', + 'HOW', + 'HR', + 'HSBC', + 'HT', + 'HU', + 'HUGHES', + 'HYATT', + 'HYUNDAI', + 'IBM', + 'ICBC', + 'ICE', + 'ICU', + 'ID', + 'IE', + 'IEEE', + 'IFM', + 'IKANO', + 'IL', + 'IM', + 'IMAMAT', + 'IMDB', + 'IMMO', + 'IMMOBILIEN', + 'IN', + 'INC', + 'INDUSTRIES', + 'INFINITI', + 'INFO', + 'ING', + 'INK', + 'INSTITUTE', + 'INSURANCE', + 'INSURE', + 'INT', + 'INTEL', + 'INTERNATIONAL', + 'INTUIT', + 'INVESTMENTS', + 'IO', + 'IPIRANGA', + 'IQ', + 'IR', + 'IRISH', + 'IS', + 'ISMAILI', + 'IST', + 'ISTANBUL', + 'IT', + 'ITAU', + 'ITV', + 'IVECO', + 'JAGUAR', + 'JAVA', + 'JCB', + 'JCP', + 'JE', + 'JEEP', + 'JETZT', + 'JEWELRY', + 'JIO', + 'JLL', + 'JM', + 'JMP', + 'JNJ', + 'JO', + 'JOBS', + 'JOBURG', + 'JOT', + 'JOY', + 'JP', + 'JPMORGAN', + 'JPRS', + 'JUEGOS', + 'JUNIPER', + 'KAUFEN', + 'KDDI', + 'KE', + 'KERRYHOTELS', + 'KERRYLOGISTICS', + 'KERRYPROPERTIES', + 'KFH', + 'KG', + 'KH', + 'KI', + 'KIA', + 'KIM', + 'KINDER', + 'KINDLE', + 'KITCHEN', + 'KIWI', + 'KM', + 'KN', + 'KOELN', + 'KOMATSU', + 'KOSHER', + 'KP', + 'KPMG', + 'KPN', + 'KR', + 'KRD', + 'KRED', + 'KUOKGROUP', + 'KW', + 'KY', + 'KYOTO', + 'KZ', + 'LA', + 'LACAIXA', + 'LADBROKES', + 'LAMBORGHINI', + 'LAMER', + 'LANCASTER', + 'LANCIA', + 'LANCOME', + 'LAND', + 'LANDROVER', + 'LANXESS', + 'LASALLE', + 'LAT', + 'LATINO', + 'LATROBE', + 'LAW', + 'LAWYER', + 'LB', + 'LC', + 'LDS', + 'LEASE', + 'LECLERC', + 'LEFRAK', + 'LEGAL', + 'LEGO', + 'LEXUS', + 'LGBT', + 'LI', + 'LIAISON', + 'LIDL', + 'LIFE', + 'LIFEINSURANCE', + 'LIFESTYLE', + 'LIGHTING', + 'LIKE', + 'LILLY', + 'LIMITED', + 'LIMO', + 'LINCOLN', + 'LINDE', + 'LINK', + 'LIPSY', + 'LIVE', + 'LIVING', + 'LIXIL', + 'LK', + 'LLC', + 'LOAN', + 'LOANS', + 'LOCKER', + 'LOCUS', + 'LOFT', + 'LOL', + 'LONDON', + 'LOTTE', + 'LOTTO', + 'LOVE', + 'LPL', + 'LPLFINANCIAL', + 'LR', + 'LS', + 'LT', + 'LTD', + 'LTDA', + 'LU', + 'LUNDBECK', + 'LUPIN', + 'LUXE', + 'LUXURY', + 'LV', + 'LY', + 'MA', + 'MACYS', + 'MADRID', + 'MAIF', + 'MAISON', + 'MAKEUP', + 'MAN', + 'MANAGEMENT', + 'MANGO', + 'MAP', + 'MARKET', + 'MARKETING', + 'MARKETS', + 'MARRIOTT', + 'MARSHALLS', + 'MASERATI', + 'MATTEL', + 'MBA', + 'MC', + 'MCKINSEY', + 'MD', + 'ME', + 'MED', + 'MEDIA', + 'MEET', + 'MELBOURNE', + 'MEME', + 'MEMORIAL', + 'MEN', + 'MENU', + 'MERCKMSD', + 'METLIFE', + 'MG', + 'MH', + 'MIAMI', + 'MICROSOFT', + 'MIL', + 'MINI', + 'MINT', + 'MIT', + 'MITSUBISHI', + 'MK', + 'ML', + 'MLB', + 'MLS', + 'MM', + 'MMA', + 'MN', + 'MO', + 'MOBI', + 'MOBILE', + 'MODA', + 'MOE', + 'MOI', + 'MOM', + 'MONASH', + 'MONEY', + 'MONSTER', + 'MOPAR', + 'MORMON', + 'MORTGAGE', + 'MOSCOW', + 'MOTO', + 'MOTORCYCLES', + 'MOV', + 'MOVIE', + 'MOVISTAR', + 'MP', + 'MQ', + 'MR', + 'MS', + 'MSD', + 'MT', + 'MTN', + 'MTR', + 'MU', + 'MUSEUM', + 'MUTUAL', + 'MV', + 'MW', + 'MX', + 'MY', + 'MZ', + 'NA', + 'NAB', + 'NADEX', + 'NAGOYA', + 'NAME', + 'NATIONWIDE', + 'NATURA', + 'NAVY', + 'NBA', + 'NC', + 'NE', + 'NEC', + 'NET', + 'NETBANK', + 'NETFLIX', + 'NETWORK', + 'NEUSTAR', + 'NEW', + 'NEWHOLLAND', + 'NEWS', + 'NEXT', + 'NEXTDIRECT', + 'NEXUS', + 'NF', + 'NFL', + 'NG', + 'NGO', + 'NHK', + 'NI', + 'NICO', + 'NIKE', + 'NIKON', + 'NINJA', + 'NISSAN', + 'NISSAY', + 'NL', + 'NO', + 'NOKIA', + 'NORTHWESTERNMUTUAL', + 'NORTON', + 'NOW', + 'NOWRUZ', + 'NOWTV', + 'NP', + 'NR', + 'NRA', + 'NRW', + 'NTT', + 'NU', + 'NYC', + 'NZ', + 'OBI', + 'OBSERVER', + 'OFF', + 'OFFICE', + 'OKINAWA', + 'OLAYAN', + 'OLAYANGROUP', + 'OLDNAVY', + 'OLLO', + 'OM', + 'OMEGA', + 'ONE', + 'ONG', + 'ONL', + 'ONLINE', + 'ONYOURSIDE', + 'OOO', + 'OPEN', + 'ORACLE', + 'ORANGE', + 'ORG', + 'ORGANIC', + 'ORIGINS', + 'OSAKA', + 'OTSUKA', + 'OTT', + 'OVH', + 'PA', + 'PAGE', + 'PANASONIC', + 'PARIS', + 'PARS', + 'PARTNERS', + 'PARTS', + 'PARTY', + 'PASSAGENS', + 'PAY', + 'PCCW', + 'PE', + 'PET', + 'PF', + 'PFIZER', + 'PG', + 'PH', + 'PHARMACY', + 'PHD', + 'PHILIPS', + 'PHONE', + 'PHOTO', + 'PHOTOGRAPHY', + 'PHOTOS', + 'PHYSIO', + 'PIAGET', + 'PICS', + 'PICTET', + 'PICTURES', + 'PID', + 'PIN', + 'PING', + 'PINK', + 'PIONEER', + 'PIZZA', + 'PK', + 'PL', + 'PLACE', + 'PLAY', + 'PLAYSTATION', + 'PLUMBING', + 'PLUS', + 'PM', + 'PN', + 'PNC', + 'POHL', + 'POKER', + 'POLITIE', + 'PORN', + 'POST', + 'PR', + 'PRAMERICA', + 'PRAXI', + 'PRESS', + 'PRIME', + 'PRO', + 'PROD', + 'PRODUCTIONS', + 'PROF', + 'PROGRESSIVE', + 'PROMO', + 'PROPERTIES', + 'PROPERTY', + 'PROTECTION', + 'PRU', + 'PRUDENTIAL', + 'PS', + 'PT', + 'PUB', + 'PW', + 'PWC', + 'PY', + 'QA', + 'QPON', + 'QUEBEC', + 'QUEST', + 'QVC', + 'RACING', + 'RADIO', + 'RAID', + 'RE', + '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', + 'RO', + 'ROCHER', + 'ROCKS', + 'RODEO', + 'ROGERS', + 'ROOM', + 'RS', + 'RSVP', + 'RU', + 'RUGBY', + 'RUHR', + 'RUN', + 'RW', + 'RWE', + 'RYUKYU', + 'SA', + 'SAARLAND', + 'SAFE', + 'SAFETY', + 'SAKURA', + 'SALE', + 'SALON', + 'SAMSCLUB', + 'SAMSUNG', + 'SANDVIK', + 'SANDVIKCOROMANT', + 'SANOFI', + 'SAP', + 'SARL', + 'SAS', + 'SAVE', + 'SAXO', + 'SB', + 'SBI', + 'SBS', + 'SC', + 'SCA', + 'SCB', + 'SCHAEFFLER', + 'SCHMIDT', + 'SCHOLARSHIPS', + 'SCHOOL', + 'SCHULE', + 'SCHWARZ', + 'SCIENCE', + 'SCJOHNSON', + 'SCOR', + 'SCOT', + 'SD', + 'SE', + 'SEARCH', + 'SEAT', + 'SECURE', + 'SECURITY', + 'SEEK', + 'SELECT', + 'SENER', + 'SERVICES', + 'SES', + 'SEVEN', + 'SEW', + 'SEX', + 'SEXY', + 'SFR', + 'SG', + 'SH', + 'SHANGRILA', + 'SHARP', + 'SHAW', + 'SHELL', + 'SHIA', + 'SHIKSHA', + 'SHOES', + 'SHOP', + 'SHOPPING', + 'SHOUJI', + 'SHOW', + 'SHOWTIME', + 'SHRIRAM', + 'SI', + 'SILK', + 'SINA', + 'SINGLES', + 'SITE', + 'SJ', + 'SK', + 'SKI', + 'SKIN', + 'SKY', + 'SKYPE', + 'SL', + 'SLING', + 'SM', + 'SMART', + 'SMILE', + 'SN', + 'SNCF', + 'SO', + 'SOCCER', + 'SOCIAL', + 'SOFTBANK', + 'SOFTWARE', + 'SOHU', + 'SOLAR', + 'SOLUTIONS', + 'SONG', + 'SONY', + 'SOY', + 'SPACE', + 'SPORT', + 'SPOT', + 'SPREADBETTING', + 'SR', + 'SRL', + 'SRT', + 'SS', + 'ST', + 'STADA', + 'STAPLES', + 'STAR', + 'STATEBANK', + 'STATEFARM', + 'STC', + 'STCGROUP', + 'STOCKHOLM', + 'STORAGE', + 'STORE', + 'STREAM', + 'STUDIO', + 'STUDY', + 'STYLE', + 'SU', + 'SUCKS', + 'SUPPLIES', + 'SUPPLY', + 'SUPPORT', + 'SURF', + 'SURGERY', + 'SUZUKI', + 'SV', + 'SWATCH', + 'SWIFTCOVER', + 'SWISS', + 'SX', + 'SY', + 'SYDNEY', + 'SYMANTEC', + 'SYSTEMS', + 'SZ', + 'TAB', + 'TAIPEI', + 'TALK', + 'TAOBAO', + 'TARGET', + 'TATAMOTORS', + 'TATAR', + 'TATTOO', + 'TAX', + 'TAXI', + 'TC', + 'TCI', + 'TD', + 'TDK', + 'TEAM', + 'TECH', + 'TECHNOLOGY', + 'TEL', + 'TELEFONICA', + 'TEMASEK', + 'TENNIS', + 'TEVA', + 'TF', + 'TG', + 'TH', + 'THD', + 'THEATER', + 'THEATRE', + 'TIAA', + 'TICKETS', + 'TIENDA', + 'TIFFANY', + 'TIPS', + 'TIRES', + 'TIROL', + 'TJ', + 'TJMAXX', + 'TJX', + 'TK', + 'TKMAXX', + 'TL', + 'TM', + 'TMALL', + 'TN', + 'TO', + 'TODAY', + 'TOKYO', + 'TOOLS', + 'TOP', + 'TORAY', + 'TOSHIBA', + 'TOTAL', + 'TOURS', + 'TOWN', + 'TOYOTA', + 'TOYS', + 'TR', + 'TRADE', + 'TRADING', + 'TRAINING', + 'TRAVEL', + 'TRAVELCHANNEL', + 'TRAVELERS', + 'TRAVELERSINSURANCE', + 'TRUST', + 'TRV', + 'TT', + 'TUBE', + 'TUI', + 'TUNES', + 'TUSHU', + 'TV', + 'TVS', + 'TW', + 'TZ', + 'UA', + 'UBANK', + 'UBS', + 'UCONNECT', + 'UG', + 'UK', + 'UNICOM', + 'UNIVERSITY', + 'UNO', + 'UOL', + 'UPS', + 'US', + 'UY', + 'UZ', + 'VA', + 'VACATIONS', + 'VANA', + 'VANGUARD', + 'VC', + 'VE', + 'VEGAS', + 'VENTURES', + 'VERISIGN', + 'VERSICHERUNG', + 'VET', + 'VG', + 'VI', + 'VIAJES', + 'VIDEO', + 'VIG', + 'VIKING', + 'VILLAS', + 'VIN', + 'VIP', + 'VIRGIN', + 'VISA', + 'VISION', + 'VISTAPRINT', + 'VIVA', + 'VIVO', + 'VLAANDEREN', + 'VN', + 'VODKA', + 'VOLKSWAGEN', + 'VOLVO', + 'VOTE', + 'VOTING', + 'VOTO', + 'VOYAGE', + 'VU', + 'VUELOS', + 'WALES', + 'WALMART', + 'WALTER', + 'WANG', + 'WANGGOU', + 'WARMAN', + 'WATCH', + 'WATCHES', + 'WEATHER', + 'WEATHERCHANNEL', + 'WEBCAM', + 'WEBER', + 'WEBSITE', + 'WED', + 'WEDDING', + 'WEIBO', + 'WEIR', + 'WF', + 'WHOSWHO', + 'WIEN', + 'WIKI', + 'WILLIAMHILL', + 'WIN', + 'WINDOWS', + 'WINE', + 'WINNERS', + 'WME', + 'WOLTERSKLUWER', + 'WOODSIDE', + 'WORK', + 'WORKS', + 'WORLD', + 'WOW', + 'WS', + 'WTC', + 'WTF', + 'XBOX', + 'XEROX', + 'XFINITY', + 'XIHUAN', + 'XIN', + 'XN--11B4C3D', + 'XN--1CK2E1B', + 'XN--1QQW23A', + 'XN--2SCRJ9C', + 'XN--30RR7Y', + 'XN--3BST00M', + 'XN--3DS443G', + 'XN--3E0B707E', + 'XN--3HCRJ9C', + 'XN--3OQ18VL8PN36A', + 'XN--3PXU8K', + 'XN--42C2D9A', + 'XN--45BR5CYL', + 'XN--45BRJ9C', + 'XN--45Q11C', + 'XN--4GBRIM', + 'XN--54B7FTA0CC', + 'XN--55QW42G', + 'XN--55QX5D', + 'XN--5SU34J936BGSG', + 'XN--5TZM5G', + 'XN--6FRZ82G', + 'XN--6QQ986B3XL', + 'XN--80ADXHKS', + 'XN--80AO21A', + 'XN--80AQECDR1A', + 'XN--80ASEHDB', + 'XN--80ASWG', + 'XN--8Y0A063A', + 'XN--90A3AC', + 'XN--90AE', + 'XN--90AIS', + 'XN--9DBQ2A', + 'XN--9ET52U', + 'XN--9KRT00A', + 'XN--B4W605FERD', + 'XN--BCK1B9A5DRE4C', + 'XN--C1AVG', + 'XN--C2BR7G', + 'XN--CCK2B3B', + 'XN--CG4BKI', + 'XN--CLCHC0EA0B2G2A9GCD', + 'XN--CZR694B', + 'XN--CZRS0T', + 'XN--CZRU2D', + 'XN--D1ACJ3B', + 'XN--D1ALF', + 'XN--E1A4C', + 'XN--ECKVDTC9D', + 'XN--EFVY88H', + 'XN--ESTV75G', + 'XN--FCT429K', + 'XN--FHBEI', + 'XN--FIQ228C5HS', + 'XN--FIQ64B', + 'XN--FIQS8S', + 'XN--FIQZ9S', + 'XN--FJQ720A', + 'XN--FLW351E', + 'XN--FPCRJ9C3D', + 'XN--FZC2C9E2C', + 'XN--FZYS8D69UVGM', + 'XN--G2XX48C', + 'XN--GCKR3F0F', + 'XN--GECRJ9C', + 'XN--GK3AT1E', + 'XN--H2BREG3EVE', + 'XN--H2BRJ9C', + 'XN--H2BRJ9C8C', + 'XN--HXT814E', + 'XN--I1B6B1A6A2E', + 'XN--IMR513N', + 'XN--IO0A7I', + 'XN--J1AEF', + 'XN--J1AMH', + 'XN--J6W193G', + 'XN--JLQ61U9W7B', + 'XN--JVR189M', + 'XN--KCRX77D1X4A', + 'XN--KPRW13D', + 'XN--KPRY57D', + 'XN--KPU716F', + 'XN--KPUT3I', + 'XN--L1ACC', + 'XN--LGBBAT1AD8J', + 'XN--MGB9AWBF', + 'XN--MGBA3A3EJT', + 'XN--MGBA3A4F16A', + 'XN--MGBA7C0BBN0A', + 'XN--MGBAAKC7DVF', + 'XN--MGBAAM7A8H', + 'XN--MGBAB2BD', + 'XN--MGBAH1A3HJKRD', + 'XN--MGBAI9AZGQP6J', + 'XN--MGBAYH7GPA', + 'XN--MGBBH1A', + 'XN--MGBBH1A71E', + 'XN--MGBC0A9AZCG', + 'XN--MGBCA7DZDO', + 'XN--MGBERP4A5D4AR', + 'XN--MGBGU82A', + 'XN--MGBI4ECEXP', + 'XN--MGBPL2FH', + 'XN--MGBT3DHD', + 'XN--MGBTX2B', + 'XN--MGBX4CD0AB', + 'XN--MIX891F', + 'XN--MK1BU44C', + 'XN--MXTQ1M', + 'XN--NGBC5AZD', + 'XN--NGBE9E0A', + 'XN--NGBRX', + 'XN--NODE', + 'XN--NQV7F', + 'XN--NQV7FS00EMA', + 'XN--NYQY26A', + 'XN--O3CW4H', + 'XN--OGBPF8FL', + 'XN--OTU796D', + 'XN--P1ACF', + 'XN--P1AI', + 'XN--PBT977C', + 'XN--PGBS0DH', + 'XN--PSSY2U', + 'XN--Q9JYB4C', + 'XN--QCKA1PMC', + 'XN--QXA6A', + 'XN--QXAM', + 'XN--RHQV96G', + 'XN--ROVU88B', + 'XN--RVC1E0AM3E', + 'XN--S9BRJ9C', + 'XN--SES554G', + 'XN--T60B56A', + 'XN--TCKWE', + 'XN--TIQ49XQYJ', + 'XN--UNUP4Y', + 'XN--VERMGENSBERATER-CTB', + 'XN--VERMGENSBERATUNG-PWB', + 'XN--VHQUV', + 'XN--VUQ861B', + 'XN--W4R85EL8FHU5DNRA', + 'XN--W4RS40L', + 'XN--WGBH1C', + 'XN--WGBL6A', + 'XN--XHQ521B', + 'XN--XKC2AL3HYE2A', + 'XN--XKC2DL3A5EE0H', + 'XN--Y9A3AQ', + 'XN--YFRO4I67O', + 'XN--YGBI2AMMX', + 'XN--ZFR164B', + 'XXX', + 'XYZ', + 'YACHTS', + 'YAHOO', + 'YAMAXUN', + 'YANDEX', + 'YE', + 'YODOBASHI', + 'YOGA', + 'YOKOHAMA', + 'YOU', + 'YOUTUBE', + 'YT', + 'YUN', + 'ZA', + 'ZAPPOS', + 'ZARA', + 'ZERO', + 'ZIP', + 'ZM', + 'ZONE', + 'ZUERICH', + 'ZW' +]; + + +// Keep as upper-case to make updating from source easier + +module.exports = new Set(internals.tlds.map((tld) => tld.toLowerCase())); diff --git a/node_modules/@sideway/address/lib/uri.js b/node_modules/@sideway/address/lib/uri.js new file mode 100755 index 0000000..f979184 --- /dev/null +++ b/node_modules/@sideway/address/lib/uri.js @@ -0,0 +1,207 @@ +'use strict'; + +const Assert = require('@hapi/hoek/lib/assert'); +const EscapeRegex = require('@hapi/hoek/lib/escapeRegex'); + + +const internals = {}; + + +internals.generate = function () { + + const rfc3986 = {}; + + const hexDigit = '\\dA-Fa-f'; // HEXDIG = DIGIT / "A" / "B" / "C" / "D" / "E" / "F" + const hexDigitOnly = '[' + hexDigit + ']'; + + const unreserved = '\\w-\\.~'; // unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" + const subDelims = '!\\$&\'\\(\\)\\*\\+,;='; // sub-delims = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "=" + const pctEncoded = '%' + hexDigit; // pct-encoded = "%" HEXDIG HEXDIG + const pchar = unreserved + pctEncoded + subDelims + ':@'; // pchar = unreserved / pct-encoded / sub-delims / ":" / "@" + const pcharOnly = '[' + pchar + ']'; + const decOctect = '(?:0{0,2}\\d|0?[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])'; // dec-octet = DIGIT / %x31-39 DIGIT / "1" 2DIGIT / "2" %x30-34 DIGIT / "25" %x30-35 ; 0-9 / 10-99 / 100-199 / 200-249 / 250-255 + + rfc3986.ipv4address = '(?:' + decOctect + '\\.){3}' + decOctect; // IPv4address = dec-octet "." dec-octet "." dec-octet "." dec-octet + + /* + h16 = 1*4HEXDIG ; 16 bits of address represented in hexadecimal + ls32 = ( h16 ":" h16 ) / IPv4address ; least-significant 32 bits of address + IPv6address = 6( h16 ":" ) ls32 + / "::" 5( h16 ":" ) ls32 + / [ h16 ] "::" 4( h16 ":" ) ls32 + / [ *1( h16 ":" ) h16 ] "::" 3( h16 ":" ) ls32 + / [ *2( h16 ":" ) h16 ] "::" 2( h16 ":" ) ls32 + / [ *3( h16 ":" ) h16 ] "::" h16 ":" ls32 + / [ *4( h16 ":" ) h16 ] "::" ls32 + / [ *5( h16 ":" ) h16 ] "::" h16 + / [ *6( h16 ":" ) h16 ] "::" + */ + + const h16 = hexDigitOnly + '{1,4}'; + const ls32 = '(?:' + h16 + ':' + h16 + '|' + rfc3986.ipv4address + ')'; + const IPv6SixHex = '(?:' + h16 + ':){6}' + ls32; + const IPv6FiveHex = '::(?:' + h16 + ':){5}' + ls32; + const IPv6FourHex = '(?:' + h16 + ')?::(?:' + h16 + ':){4}' + ls32; + const IPv6ThreeHex = '(?:(?:' + h16 + ':){0,1}' + h16 + ')?::(?:' + h16 + ':){3}' + ls32; + const IPv6TwoHex = '(?:(?:' + h16 + ':){0,2}' + h16 + ')?::(?:' + h16 + ':){2}' + ls32; + const IPv6OneHex = '(?:(?:' + h16 + ':){0,3}' + h16 + ')?::' + h16 + ':' + ls32; + const IPv6NoneHex = '(?:(?:' + h16 + ':){0,4}' + h16 + ')?::' + ls32; + const IPv6NoneHex2 = '(?:(?:' + h16 + ':){0,5}' + h16 + ')?::' + h16; + const IPv6NoneHex3 = '(?:(?:' + h16 + ':){0,6}' + h16 + ')?::'; + + rfc3986.ipv4Cidr = '(?:\\d|[1-2]\\d|3[0-2])'; // IPv4 cidr = DIGIT / %x31-32 DIGIT / "3" %x30-32 ; 0-9 / 10-29 / 30-32 + rfc3986.ipv6Cidr = '(?:0{0,2}\\d|0?[1-9]\\d|1[01]\\d|12[0-8])'; // IPv6 cidr = DIGIT / %x31-39 DIGIT / "1" %x0-1 DIGIT / "12" %x0-8; 0-9 / 10-99 / 100-119 / 120-128 + rfc3986.ipv6address = '(?:' + IPv6SixHex + '|' + IPv6FiveHex + '|' + IPv6FourHex + '|' + IPv6ThreeHex + '|' + IPv6TwoHex + '|' + IPv6OneHex + '|' + IPv6NoneHex + '|' + IPv6NoneHex2 + '|' + IPv6NoneHex3 + ')'; + rfc3986.ipvFuture = 'v' + hexDigitOnly + '+\\.[' + unreserved + subDelims + ':]+'; // IPvFuture = "v" 1*HEXDIG "." 1*( unreserved / sub-delims / ":" ) + + rfc3986.scheme = '[a-zA-Z][a-zA-Z\\d+-\\.]*'; // scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." ) + rfc3986.schemeRegex = new RegExp(rfc3986.scheme); + + const userinfo = '[' + unreserved + pctEncoded + subDelims + ':]*'; // userinfo = *( unreserved / pct-encoded / sub-delims / ":" ) + const IPLiteral = '\\[(?:' + rfc3986.ipv6address + '|' + rfc3986.ipvFuture + ')\\]'; // IP-literal = "[" ( IPv6address / IPvFuture ) "]" + const regName = '[' + unreserved + pctEncoded + subDelims + ']{1,255}'; // reg-name = *( unreserved / pct-encoded / sub-delims ) + const host = '(?:' + IPLiteral + '|' + rfc3986.ipv4address + '|' + regName + ')'; // host = IP-literal / IPv4address / reg-name + const port = '\\d*'; // port = *DIGIT + const authority = '(?:' + userinfo + '@)?' + host + '(?::' + port + ')?'; // authority = [ userinfo "@" ] host [ ":" port ] + const authorityCapture = '(?:' + userinfo + '@)?(' + host + ')(?::' + port + ')?'; + + /* + segment = *pchar + segment-nz = 1*pchar + path = path-abempty ; begins with "/" '|' is empty + / path-absolute ; begins with "/" but not "//" + / path-noscheme ; begins with a non-colon segment + / path-rootless ; begins with a segment + / path-empty ; zero characters + path-abempty = *( "/" segment ) + path-absolute = "/" [ segment-nz *( "/" segment ) ] + path-rootless = segment-nz *( "/" segment ) + */ + + const segment = pcharOnly + '*'; + const segmentNz = pcharOnly + '+'; + const segmentNzNc = '[' + unreserved + pctEncoded + subDelims + '@' + ']+'; + const pathEmpty = ''; + const pathAbEmpty = '(?:\\/' + segment + ')*'; + const pathAbsolute = '\\/(?:' + segmentNz + pathAbEmpty + ')?'; + const pathRootless = segmentNz + pathAbEmpty; + const pathNoScheme = segmentNzNc + pathAbEmpty; + const pathAbNoAuthority = '(?:\\/\\/\\/' + segment + pathAbEmpty + ')'; // Used by file:/// + + // hier-part = "//" authority path + + rfc3986.hierPart = '(?:' + '(?:\\/\\/' + authority + pathAbEmpty + ')' + '|' + pathAbsolute + '|' + pathRootless + '|' + pathAbNoAuthority + ')'; + rfc3986.hierPartCapture = '(?:' + '(?:\\/\\/' + authorityCapture + pathAbEmpty + ')' + '|' + pathAbsolute + '|' + pathRootless + ')'; + + // relative-part = "//" authority path-abempty / path-absolute / path-noscheme / path-empty + + rfc3986.relativeRef = '(?:' + '(?:\\/\\/' + authority + pathAbEmpty + ')' + '|' + pathAbsolute + '|' + pathNoScheme + '|' + pathEmpty + ')'; + rfc3986.relativeRefCapture = '(?:' + '(?:\\/\\/' + authorityCapture + pathAbEmpty + ')' + '|' + pathAbsolute + '|' + pathNoScheme + '|' + pathEmpty + ')'; + + // query = *( pchar / "/" / "?" ) + // query = *( pchar / "[" / "]" / "/" / "?" ) + + rfc3986.query = '[' + pchar + '\\/\\?]*(?=#|$)'; //Finish matching either at the fragment part '|' end of the line. + rfc3986.queryWithSquareBrackets = '[' + pchar + '\\[\\]\\/\\?]*(?=#|$)'; + + // fragment = *( pchar / "/" / "?" ) + + rfc3986.fragment = '[' + pchar + '\\/\\?]*'; + + return rfc3986; +}; + +internals.rfc3986 = internals.generate(); + + +exports.ip = { + v4Cidr: internals.rfc3986.ipv4Cidr, + v6Cidr: internals.rfc3986.ipv6Cidr, + ipv4: internals.rfc3986.ipv4address, + ipv6: internals.rfc3986.ipv6address, + ipvfuture: internals.rfc3986.ipvFuture +}; + + +internals.createRegex = function (options) { + + const rfc = internals.rfc3986; + + // Construct expression + + const query = options.allowQuerySquareBrackets ? rfc.queryWithSquareBrackets : rfc.query; + const suffix = '(?:\\?' + query + ')?' + '(?:#' + rfc.fragment + ')?'; + + // relative-ref = relative-part [ "?" query ] [ "#" fragment ] + + const relative = options.domain ? rfc.relativeRefCapture : rfc.relativeRef; + + if (options.relativeOnly) { + return internals.wrap(relative + suffix); + } + + // Custom schemes + + let customScheme = ''; + if (options.scheme) { + Assert(options.scheme instanceof RegExp || typeof options.scheme === 'string' || Array.isArray(options.scheme), 'scheme must be a RegExp, String, or Array'); + + const schemes = [].concat(options.scheme); + Assert(schemes.length >= 1, 'scheme must have at least 1 scheme specified'); + + // Flatten the array into a string to be used to match the schemes + + const selections = []; + for (let i = 0; i < schemes.length; ++i) { + const scheme = schemes[i]; + Assert(scheme instanceof RegExp || typeof scheme === 'string', 'scheme at position ' + i + ' must be a RegExp or String'); + + if (scheme instanceof RegExp) { + selections.push(scheme.source.toString()); + } + else { + Assert(rfc.schemeRegex.test(scheme), 'scheme at position ' + i + ' must be a valid scheme'); + selections.push(EscapeRegex(scheme)); + } + } + + customScheme = selections.join('|'); + } + + // URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ] + + const scheme = customScheme ? '(?:' + customScheme + ')' : rfc.scheme; + const absolute = '(?:' + scheme + ':' + (options.domain ? rfc.hierPartCapture : rfc.hierPart) + ')'; + const prefix = options.allowRelative ? '(?:' + absolute + '|' + relative + ')' : absolute; + return internals.wrap(prefix + suffix, customScheme); +}; + + +internals.wrap = function (raw, scheme) { + + raw = `(?=.)(?!https?\:/$)${raw}`; // Require at least one character and explicitly forbid 'http:/' + + return { + raw, + regex: new RegExp(`^${raw}$`), + scheme + }; +}; + + +internals.uriRegex = internals.createRegex({}); + + +exports.regex = function (options = {}) { + + if (options.scheme || + options.allowRelative || + options.relativeOnly || + options.allowQuerySquareBrackets || + options.domain) { + + return internals.createRegex(options); + } + + return internals.uriRegex; +}; diff --git a/node_modules/@sideway/address/package.json b/node_modules/@sideway/address/package.json new file mode 100755 index 0000000..6499272 --- /dev/null +++ b/node_modules/@sideway/address/package.json @@ -0,0 +1,63 @@ +{ + "_from": "@sideway/address@^4.1.0", + "_id": "@sideway/address@4.1.0", + "_inBundle": false, + "_integrity": "sha512-wAH/JYRXeIFQRsxerIuLjgUu2Xszam+O5xKeatJ4oudShOOirfmsQ1D6LL54XOU2tizpCYku+s1wmU0SYdpoSA==", + "_location": "/@sideway/address", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "@sideway/address@^4.1.0", + "name": "@sideway/address", + "escapedName": "@sideway%2faddress", + "scope": "@sideway", + "rawSpec": "^4.1.0", + "saveSpec": null, + "fetchSpec": "^4.1.0" + }, + "_requiredBy": [ + "/joi" + ], + "_resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.0.tgz", + "_shasum": "0b301ada10ac4e0e3fa525c90615e0b61a72b78d", + "_spec": "@sideway/address@^4.1.0", + "_where": "/home/wyrihaximus/Projects/WyriHaximus/github-action-helm3/node_modules/joi", + "bugs": { + "url": "https://github.com/sideway/address/issues" + }, + "bundleDependencies": false, + "dependencies": { + "@hapi/hoek": "^9.0.0" + }, + "deprecated": false, + "description": "Email address and domain validation", + "devDependencies": { + "@hapi/code": "8.x.x", + "@hapi/lab": "24.x.x", + "typescript": "4.0.x" + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/sideway/address#readme", + "keywords": [ + "email", + "domain", + "address", + "validation" + ], + "license": "BSD-3-Clause", + "main": "lib/index.js", + "name": "@sideway/address", + "repository": { + "type": "git", + "url": "git://github.com/sideway/address.git" + }, + "scripts": { + "test": "lab -a @hapi/code -t 100 -L -Y", + "test-cov-html": "lab -a @hapi/code -t 100 -L -r html -o coverage.html" + }, + "types": "lib/index.d.ts", + "version": "4.1.0" +} diff --git a/node_modules/@sideway/formula/LICENSE.md b/node_modules/@sideway/formula/LICENSE.md new file mode 100644 index 0000000..995d340 --- /dev/null +++ b/node_modules/@sideway/formula/LICENSE.md @@ -0,0 +1,9 @@ +Copyright (c) 2019-2020, Sideway. Inc, and project 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. diff --git a/node_modules/@sideway/formula/README.md b/node_modules/@sideway/formula/README.md new file mode 100755 index 0000000..13da3af --- /dev/null +++ b/node_modules/@sideway/formula/README.md @@ -0,0 +1,18 @@ +# @sideway/formula + +#### Math and string formula parser. + +**formula** is part of the **joi** ecosystem. + +### Visit the [joi.dev](https://joi.dev) Developer Portal for tutorials, documentation, and support + +## Useful resources + +- [Documentation and API](https://joi.dev/module/formula/) +- [Version status](https://joi.dev/resources/status/#formula) (builds, dependencies, node versions, licenses, eol) +- [Changelog](https://joi.dev/module/formula/changelog/) +- [Project policies](https://joi.dev/policies/) + +## Acknowledgements + +Inspired by [**fparse**](https://github.com/bylexus/fparse), copyright 2012-2018 Alexander Schenkel diff --git a/node_modules/@sideway/formula/lib/index.d.ts b/node_modules/@sideway/formula/lib/index.d.ts new file mode 100755 index 0000000..d78cc1d --- /dev/null +++ b/node_modules/@sideway/formula/lib/index.d.ts @@ -0,0 +1,52 @@ +/** + * Formula parser + */ +export class Parser { + + /** + * Create a new formula parser. + * + * @param formula - the formula string to parse. + * @param options - optional settings. + */ + constructor(formula: string, options?: Options); + + /** + * Evaluate the formula. + * + * @param context - optional object with runtime formula context used to resolve variables. + * + * @returns the string or number outcome of the resolved formula. + */ + evaluate(context?: any): T; +} + + +export interface Options { + + /** + * A hash of key - value pairs used to convert constants to values. + */ + readonly constants?: Record; + + /** + * A regular expression used to validate token variables. + */ + readonly tokenRx?: RegExp; + + /** + * A variable resolver factory function. + */ + readonly reference?: Options.Reference; + + /** + * A hash of key-value pairs used to resolve formula functions. + */ + readonly functions?: Record; +} + + +export namespace Options { + + type Reference = (name: string) => (context: any) => any; +} diff --git a/node_modules/@sideway/formula/lib/index.js b/node_modules/@sideway/formula/lib/index.js new file mode 100755 index 0000000..871ab1b --- /dev/null +++ b/node_modules/@sideway/formula/lib/index.js @@ -0,0 +1,456 @@ +'use strict'; + +const internals = { + operators: ['!', '^', '*', '/', '%', '+', '-', '<', '<=', '>', '>=', '==', '!=', '&&', '||', '??'], + operatorCharacters: ['!', '^', '*', '/', '%', '+', '-', '<', '=', '>', '&', '|', '?'], + operatorsOrder: [['^'], ['*', '/', '%'], ['+', '-'], ['<', '<=', '>', '>='], ['==', '!='], ['&&'], ['||', '??']], + operatorsPrefix: ['!', 'n'], + + literals: { + '"': '"', + '`': '`', + '\'': '\'', + '[': ']' + }, + + numberRx: /^(?:[0-9]*\.?[0-9]*){1}$/, + tokenRx: /^[\w\$\#\.\@\:\{\}]+$/, + + symbol: Symbol('formula'), + settings: Symbol('settings') +}; + + +exports.Parser = class { + + constructor(string, options = {}) { + + if (!options[internals.settings] && + options.constants) { + + for (const constant in options.constants) { + const value = options.constants[constant]; + if (value !== null && + !['boolean', 'number', 'string'].includes(typeof value)) { + + throw new Error(`Formula constant ${constant} contains invalid ${typeof value} value type`); + } + } + } + + this.settings = options[internals.settings] ? options : Object.assign({ [internals.settings]: true, constants: {}, functions: {} }, options); + this.single = null; + + this._parts = null; + this._parse(string); + } + + _parse(string) { + + let parts = []; + let current = ''; + let parenthesis = 0; + let literal = false; + + const flush = (inner) => { + + if (parenthesis) { + throw new Error('Formula missing closing parenthesis'); + } + + const last = parts.length ? parts[parts.length - 1] : null; + + if (!literal && + !current && + !inner) { + + return; + } + + if (last && + last.type === 'reference' && + inner === ')') { // Function + + last.type = 'function'; + last.value = this._subFormula(current, last.value); + current = ''; + return; + } + + if (inner === ')') { // Segment + const sub = new exports.Parser(current, this.settings); + parts.push({ type: 'segment', value: sub }); + } + else if (literal) { + if (literal === ']') { // Reference + parts.push({ type: 'reference', value: current }); + current = ''; + return; + } + + parts.push({ type: 'literal', value: current }); // Literal + } + else if (internals.operatorCharacters.includes(current)) { // Operator + if (last && + last.type === 'operator' && + internals.operators.includes(last.value + current)) { // 2 characters operator + + last.value += current; + } + else { + parts.push({ type: 'operator', value: current }); + } + } + else if (current.match(internals.numberRx)) { // Number + parts.push({ type: 'constant', value: parseFloat(current) }); + } + else if (this.settings.constants[current] !== undefined) { // Constant + parts.push({ type: 'constant', value: this.settings.constants[current] }); + } + else { // Reference + if (!current.match(internals.tokenRx)) { + throw new Error(`Formula contains invalid token: ${current}`); + } + + parts.push({ type: 'reference', value: current }); + } + + current = ''; + }; + + for (const c of string) { + if (literal) { + if (c === literal) { + flush(); + literal = false; + } + else { + current += c; + } + } + else if (parenthesis) { + if (c === '(') { + current += c; + ++parenthesis; + } + else if (c === ')') { + --parenthesis; + if (!parenthesis) { + flush(c); + } + else { + current += c; + } + } + else { + current += c; + } + } + else if (c in internals.literals) { + literal = internals.literals[c]; + } + else if (c === '(') { + flush(); + ++parenthesis; + } + else if (internals.operatorCharacters.includes(c)) { + flush(); + current = c; + flush(); + } + else if (c !== ' ') { + current += c; + } + else { + flush(); + } + } + + flush(); + + // Replace prefix - to internal negative operator + + parts = parts.map((part, i) => { + + if (part.type !== 'operator' || + part.value !== '-' || + i && parts[i - 1].type !== 'operator') { + + return part; + } + + return { type: 'operator', value: 'n' }; + }); + + // Validate tokens order + + let operator = false; + for (const part of parts) { + if (part.type === 'operator') { + if (internals.operatorsPrefix.includes(part.value)) { + continue; + } + + if (!operator) { + throw new Error('Formula contains an operator in invalid position'); + } + + if (!internals.operators.includes(part.value)) { + throw new Error(`Formula contains an unknown operator ${part.value}`); + } + } + else if (operator) { + throw new Error('Formula missing expected operator'); + } + + operator = !operator; + } + + if (!operator) { + throw new Error('Formula contains invalid trailing operator'); + } + + // Identify single part + + if (parts.length === 1 && + ['reference', 'literal', 'constant'].includes(parts[0].type)) { + + this.single = { type: parts[0].type === 'reference' ? 'reference' : 'value', value: parts[0].value }; + } + + // Process parts + + this._parts = parts.map((part) => { + + // Operators + + if (part.type === 'operator') { + return internals.operatorsPrefix.includes(part.value) ? part : part.value; + } + + // Literals, constants, segments + + if (part.type !== 'reference') { + return part.value; + } + + // References + + if (this.settings.tokenRx && + !this.settings.tokenRx.test(part.value)) { + + throw new Error(`Formula contains invalid reference ${part.value}`); + } + + if (this.settings.reference) { + return this.settings.reference(part.value); + } + + return internals.reference(part.value); + }); + } + + _subFormula(string, name) { + + const method = this.settings.functions[name]; + if (typeof method !== 'function') { + throw new Error(`Formula contains unknown function ${name}`); + } + + let args = []; + if (string) { + let current = ''; + let parenthesis = 0; + let literal = false; + + const flush = () => { + + if (!current) { + throw new Error(`Formula contains function ${name} with invalid arguments ${string}`); + } + + args.push(current); + current = ''; + }; + + for (let i = 0; i < string.length; ++i) { + const c = string[i]; + if (literal) { + current += c; + if (c === literal) { + literal = false; + } + } + else if (c in internals.literals && + !parenthesis) { + + current += c; + literal = internals.literals[c]; + } + else if (c === ',' && + !parenthesis) { + + flush(); + } + else { + current += c; + if (c === '(') { + ++parenthesis; + } + else if (c === ')') { + --parenthesis; + } + } + } + + flush(); + } + + args = args.map((arg) => new exports.Parser(arg, this.settings)); + + return function (context) { + + const innerValues = []; + for (const arg of args) { + innerValues.push(arg.evaluate(context)); + } + + return method.call(context, ...innerValues); + }; + } + + evaluate(context) { + + const parts = this._parts.slice(); + + // Prefix operators + + for (let i = parts.length - 2; i >= 0; --i) { + const part = parts[i]; + if (part && + part.type === 'operator') { + + const current = parts[i + 1]; + parts.splice(i + 1, 1); + const value = internals.evaluate(current, context); + parts[i] = internals.single(part.value, value); + } + } + + // Left-right operators + + internals.operatorsOrder.forEach((set) => { + + for (let i = 1; i < parts.length - 1;) { + if (set.includes(parts[i])) { + const operator = parts[i]; + const left = internals.evaluate(parts[i - 1], context); + const right = internals.evaluate(parts[i + 1], context); + + parts.splice(i, 2); + const result = internals.calculate(operator, left, right); + parts[i - 1] = result === 0 ? 0 : result; // Convert -0 + } + else { + i += 2; + } + } + }); + + return internals.evaluate(parts[0], context); + } +}; + + +exports.Parser.prototype[internals.symbol] = true; + + +internals.reference = function (name) { + + return function (context) { + + return context && context[name] !== undefined ? context[name] : null; + }; +}; + + +internals.evaluate = function (part, context) { + + if (part === null) { + return null; + } + + if (typeof part === 'function') { + return part(context); + } + + if (part[internals.symbol]) { + return part.evaluate(context); + } + + return part; +}; + + +internals.single = function (operator, value) { + + if (operator === '!') { + return value ? false : true; + } + + // operator === 'n' + + const negative = -value; + if (negative === 0) { // Override -0 + return 0; + } + + return negative; +}; + + +internals.calculate = function (operator, left, right) { + + if (operator === '??') { + return internals.exists(left) ? left : right; + } + + if (typeof left === 'string' || + typeof right === 'string') { + + if (operator === '+') { + left = internals.exists(left) ? left : ''; + right = internals.exists(right) ? right : ''; + return left + right; + } + } + else { + switch (operator) { + case '^': return Math.pow(left, right); + case '*': return left * right; + case '/': return left / right; + case '%': return left % right; + case '+': return left + right; + case '-': return left - right; + } + } + + switch (operator) { + case '<': return left < right; + case '<=': return left <= right; + case '>': return left > right; + case '>=': return left >= right; + case '==': return left === right; + case '!=': return left !== right; + case '&&': return left && right; + case '||': return left || right; + } + + return null; +}; + + +internals.exists = function (value) { + + return value !== null && value !== undefined; +}; diff --git a/node_modules/@sideway/formula/package.json b/node_modules/@sideway/formula/package.json new file mode 100755 index 0000000..07da085 --- /dev/null +++ b/node_modules/@sideway/formula/package.json @@ -0,0 +1,61 @@ +{ + "_from": "@sideway/formula@^3.0.0", + "_id": "@sideway/formula@3.0.0", + "_inBundle": false, + "_integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==", + "_location": "/@sideway/formula", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "@sideway/formula@^3.0.0", + "name": "@sideway/formula", + "escapedName": "@sideway%2fformula", + "scope": "@sideway", + "rawSpec": "^3.0.0", + "saveSpec": null, + "fetchSpec": "^3.0.0" + }, + "_requiredBy": [ + "/joi" + ], + "_resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", + "_shasum": "fe158aee32e6bd5de85044be615bc08478a0a13c", + "_spec": "@sideway/formula@^3.0.0", + "_where": "/home/wyrihaximus/Projects/WyriHaximus/github-action-helm3/node_modules/joi", + "bugs": { + "url": "https://github.com/sideway/formula/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "Math and string formula parser.", + "devDependencies": { + "@hapi/code": "8.x.x", + "@hapi/lab": "24.x.x", + "typescript": "4.0.x" + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/sideway/formula#readme", + "keywords": [ + "formula", + "parser", + "math", + "string" + ], + "license": "BSD-3-Clause", + "main": "lib/index.js", + "name": "@sideway/formula", + "repository": { + "type": "git", + "url": "git://github.com/sideway/formula.git" + }, + "scripts": { + "test": "lab -a @hapi/code -t 100 -L -Y", + "test-cov-html": "lab -a @hapi/code -t 100 -L -r html -o coverage.html" + }, + "types": "lib/index.d.ts", + "version": "3.0.0" +} diff --git a/node_modules/@sideway/pinpoint/LICENSE.md b/node_modules/@sideway/pinpoint/LICENSE.md new file mode 100755 index 0000000..f0dfb17 --- /dev/null +++ b/node_modules/@sideway/pinpoint/LICENSE.md @@ -0,0 +1,10 @@ +Copyright (c) 2019-2020, Sideway. Inc, and project 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 OFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/@sideway/pinpoint/README.md b/node_modules/@sideway/pinpoint/README.md new file mode 100755 index 0000000..2996c82 --- /dev/null +++ b/node_modules/@sideway/pinpoint/README.md @@ -0,0 +1,14 @@ +# @sideway/pinpoint + +#### Return the filename and line number of the calling function. + +**pinpoint** is part of the **joi** ecosystem. + +### Visit the [joi.dev](https://joi.dev) Developer Portal for tutorials, documentation, and support + +## Useful resources + +- [Documentation and API](https://joi.dev/module/pinpoint/) +- [Version status](https://joi.dev/resources/status/#pinpoint) (builds, dependencies, node versions, licenses, eol) +- [Changelog](https://joi.dev/module/pinpoint/changelog/) +- [Project policies](https://joi.dev/policies/) diff --git a/node_modules/@sideway/pinpoint/lib/index.d.ts b/node_modules/@sideway/pinpoint/lib/index.d.ts new file mode 100755 index 0000000..38fadaa --- /dev/null +++ b/node_modules/@sideway/pinpoint/lib/index.d.ts @@ -0,0 +1,24 @@ +/** +Returns the filename and line number of the caller in the call stack + +@param depth - The distance from the location function in the call stack. Defaults to 1 (caller). + +@return an object with the filename and line number. +*/ +export function location(depth?: number): location.Location; + +declare namespace location { + + interface Location { + + /** + The fully qualified filename. + */ + readonly filename: string; + + /** + The file line number. + */ + readonly line: number; + } +} diff --git a/node_modules/@sideway/pinpoint/lib/index.js b/node_modules/@sideway/pinpoint/lib/index.js new file mode 100755 index 0000000..4820550 --- /dev/null +++ b/node_modules/@sideway/pinpoint/lib/index.js @@ -0,0 +1,21 @@ +'use strict'; + +const internals = {}; + + +exports.location = function (depth = 0) { + + const orig = Error.prepareStackTrace; + Error.prepareStackTrace = (ignore, stack) => stack; + + const capture = {}; + Error.captureStackTrace(capture, this); + const line = capture.stack[depth + 1]; + + Error.prepareStackTrace = orig; + + return { + filename: line.getFileName(), + line: line.getLineNumber() + }; +}; diff --git a/node_modules/@sideway/pinpoint/package.json b/node_modules/@sideway/pinpoint/package.json new file mode 100755 index 0000000..fdbb76f --- /dev/null +++ b/node_modules/@sideway/pinpoint/package.json @@ -0,0 +1,58 @@ +{ + "_from": "@sideway/pinpoint@^2.0.0", + "_id": "@sideway/pinpoint@2.0.0", + "_inBundle": false, + "_integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "_location": "/@sideway/pinpoint", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "@sideway/pinpoint@^2.0.0", + "name": "@sideway/pinpoint", + "escapedName": "@sideway%2fpinpoint", + "scope": "@sideway", + "rawSpec": "^2.0.0", + "saveSpec": null, + "fetchSpec": "^2.0.0" + }, + "_requiredBy": [ + "/joi" + ], + "_resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "_shasum": "cff8ffadc372ad29fd3f78277aeb29e632cc70df", + "_spec": "@sideway/pinpoint@^2.0.0", + "_where": "/home/wyrihaximus/Projects/WyriHaximus/github-action-helm3/node_modules/joi", + "bugs": { + "url": "https://github.com/sideway/pinpoint/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "Return the filename and line number of the calling function", + "devDependencies": { + "@hapi/code": "8.x.x", + "@hapi/lab": "24.x.x", + "typescript": "4.0.x" + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/sideway/pinpoint#readme", + "keywords": [ + "utilities" + ], + "license": "BSD-3-Clause", + "main": "lib/index.js", + "name": "@sideway/pinpoint", + "repository": { + "type": "git", + "url": "git://github.com/sideway/pinpoint.git" + }, + "scripts": { + "test": "lab -a @hapi/code -t 100 -L -Y", + "test-cov-html": "lab -a @hapi/code -t 100 -L -r html -o coverage.html" + }, + "types": "lib/index.d.ts", + "version": "2.0.0" +} diff --git a/node_modules/axios/CHANGELOG.md b/node_modules/axios/CHANGELOG.md new file mode 100644 index 0000000..4affca5 --- /dev/null +++ b/node_modules/axios/CHANGELOG.md @@ -0,0 +1,413 @@ +# Changelog + +### 0.19.2 (Jan 20, 2020) + +- Remove unnecessary XSS check ([#2679](https://github.com/axios/axios/pull/2679)) (see ([#2646](https://github.com/axios/axios/issues/2646)) for discussion) + +### 0.19.1 (Jan 7, 2020) + +Fixes and Functionality: + +- Fixing invalid agent issue ([#1904](https://github.com/axios/axios/pull/1904)) +- Fix ignore set withCredentials false ([#2582](https://github.com/axios/axios/pull/2582)) +- Delete useless default to hash ([#2458](https://github.com/axios/axios/pull/2458)) +- Fix HTTP/HTTPs agents passing to follow-redirect ([#1904](https://github.com/axios/axios/pull/1904)) +- Fix ignore set withCredentials false ([#2582](https://github.com/axios/axios/pull/2582)) +- Fix CI build failure ([#2570](https://github.com/axios/axios/pull/2570)) +- Remove dependency on is-buffer from package.json ([#1816](https://github.com/axios/axios/pull/1816)) +- Adding options typings ([#2341](https://github.com/axios/axios/pull/2341)) +- Adding Typescript HTTP method definition for LINK and UNLINK. ([#2444](https://github.com/axios/axios/pull/2444)) +- Update dist with newest changes, fixes Custom Attributes issue +- Change syntax to see if build passes ([#2488](https://github.com/axios/axios/pull/2488)) +- Update Webpack + deps, remove now unnecessary polyfills ([#2410](https://github.com/axios/axios/pull/2410)) +- Fix to prevent XSS, throw an error when the URL contains a JS script ([#2464](https://github.com/axios/axios/pull/2464)) +- Add custom timeout error copy in config ([#2275](https://github.com/axios/axios/pull/2275)) +- Add error toJSON example ([#2466](https://github.com/axios/axios/pull/2466)) +- Fixing Vulnerability A Fortify Scan finds a critical Cross-Site Scrip… ([#2451](https://github.com/axios/axios/pull/2451)) +- Fixing subdomain handling on no_proxy ([#2442](https://github.com/axios/axios/pull/2442)) +- Make redirection from HTTP to HTTPS work ([#2426](https://github.com/axios/axios/pull/2426] and ([#2547](https://github.com/axios/axios/pull/2547)) +- Add toJSON property to AxiosError type ([#2427](https://github.com/axios/axios/pull/2427)) +- Fixing socket hang up error on node side for slow response. ([#1752](https://github.com/axios/axios/pull/1752)) +- Alternative syntax to send data into the body ([#2317](https://github.com/axios/axios/pull/2317)) +- Fixing custom config options ([#2207](https://github.com/axios/axios/pull/2207)) +- Fixing set `config.method` after mergeConfig for Axios.prototype.request ([#2383](https://github.com/axios/axios/pull/2383)) +- Axios create url bug ([#2290](https://github.com/axios/axios/pull/2290)) +- Do not modify config.url when using a relative baseURL (resolves [#1628](https://github.com/axios/axios/issues/1098)) ([#2391](https://github.com/axios/axios/pull/2391)) +- Add typescript HTTP method definition for LINK and UNLINK ([#2444](https://github.com/axios/axios/pull/2444)) + +Internal: + +- Revert "Update Webpack + deps, remove now unnecessary polyfills" ([#2479](https://github.com/axios/axios/pull/2479)) +- Order of if/else blocks is causing unit tests mocking XHR. ([#2201](https://github.com/axios/axios/pull/2201)) +- Add license badge ([#2446](https://github.com/axios/axios/pull/2446)) +- Fix travis CI build [#2386](https://github.com/axios/axios/pull/2386) +- Fix cancellation error on build master. #2290 #2207 ([#2407](https://github.com/axios/axios/pull/2407)) + +Documentation: + +- Fixing typo in CHANGELOG.md: s/Functionallity/Functionality ([#2639](https://github.com/axios/axios/pull/2639)) +- Fix badge, use master branch ([#2538](https://github.com/axios/axios/pull/2538)) +- Fix typo in changelog [#2193](https://github.com/axios/axios/pull/2193) +- Document fix ([#2514](https://github.com/axios/axios/pull/2514)) +- Update docs with no_proxy change, issue #2484 ([#2513](https://github.com/axios/axios/pull/2513)) +- Fixing missing words in docs template ([#2259](https://github.com/axios/axios/pull/2259)) +- 🐛Fix request finally documentation in README ([#2189](https://github.com/axios/axios/pull/2189)) +- updating spelling and adding link to docs ([#2212](https://github.com/axios/axios/pull/2212)) +- docs: minor tweak ([#2404](https://github.com/axios/axios/pull/2404)) +- Update response interceptor docs ([#2399](https://github.com/axios/axios/pull/2399)) +- Update README.md ([#2504](https://github.com/axios/axios/pull/2504)) +- Fix word 'sintaxe' to 'syntax' in README.md ([#2432](https://github.com/axios/axios/pull/2432)) +- upadating README: notes on CommonJS autocomplete ([#2256](https://github.com/axios/axios/pull/2256)) +- Fix grammar in README.md ([#2271](https://github.com/axios/axios/pull/2271)) +- Doc fixes, minor examples cleanup ([#2198](https://github.com/axios/axios/pull/2198)) + +### 0.19.0 (May 30, 2019) + +Fixes and Functionality: + +- Added support for no_proxy env variable ([#1693](https://github.com/axios/axios/pull/1693/files)) - Chance Dickson +- Unzip response body only for statuses != 204 ([#1129](https://github.com/axios/axios/pull/1129)) - drawski +- Destroy stream on exceeding maxContentLength (fixes [#1098](https://github.com/axios/axios/issues/1098)) ([#1485](https://github.com/axios/axios/pull/1485)) - Gadzhi Gadzhiev +- Makes Axios error generic to use AxiosResponse ([#1738](https://github.com/axios/axios/pull/1738)) - Suman Lama +- Fixing Mocha tests by locking follow-redirects version to 1.5.10 ([#1993](https://github.com/axios/axios/pull/1993)) - grumblerchester +- Allow uppercase methods in typings. ([#1781](https://github.com/axios/axios/pull/1781)) - Ken Powers +- Fixing building url with hash mark ([#1771](https://github.com/axios/axios/pull/1771)) - Anatoly Ryabov +- This commit fix building url with hash map (fragment identifier) when parameters are present: they must not be added after `#`, because client cut everything after `#` +- Preserve HTTP method when following redirect ([#1758](https://github.com/axios/axios/pull/1758)) - Rikki Gibson +- Add `getUri` signature to TypeScript definition. ([#1736](https://github.com/axios/axios/pull/1736)) - Alexander Trauzzi +- Adding isAxiosError flag to errors thrown by axios ([#1419](https://github.com/axios/axios/pull/1419)) - Ayush Gupta + +Internal: + +- Fixing .eslintrc without extension ([#1789](https://github.com/axios/axios/pull/1789)) - Manoel +- Fix failing SauceLabs tests by updating configuration - Emily Morehouse +- Add issue templates - Emily Morehouse + +Documentation: + +- Consistent coding style in README ([#1787](https://github.com/axios/axios/pull/1787)) - Ali Servet Donmez +- Add information about auth parameter to README ([#2166](https://github.com/axios/axios/pull/2166)) - xlaguna +- Add DELETE to list of methods that allow data as a config option ([#2169](https://github.com/axios/axios/pull/2169)) - Daniela Borges Matos de Carvalho +- Update ECOSYSTEM.md - Add Axios Endpoints ([#2176](https://github.com/axios/axios/pull/2176)) - Renan +- Add r2curl in ECOSYSTEM ([#2141](https://github.com/axios/axios/pull/2141)) - 유용우 / CX +- Update README.md - Add instructions for installing with yarn ([#2036](https://github.com/axios/axios/pull/2036)) - Victor Hermes +- Fixing spacing for README.md ([#2066](https://github.com/axios/axios/pull/2066)) - Josh McCarty +- Update README.md. - Change `.then` to `.finally` in example code ([#2090](https://github.com/axios/axios/pull/2090)) - Omar Cai +- Clarify what values responseType can have in Node ([#2121](https://github.com/axios/axios/pull/2121)) - Tyler Breisacher +- docs(ECOSYSTEM): add axios-api-versioning ([#2020](https://github.com/axios/axios/pull/2020)) - Weffe +- It seems that `responseType: 'blob'` doesn't actually work in Node (when I tried using it, response.data was a string, not a Blob, since Node doesn't have Blobs), so this clarifies that this option should only be used in the browser +- Update README.md. - Add Querystring library note ([#1896](https://github.com/axios/axios/pull/1896)) - Dmitriy Eroshenko +- Add react-hooks-axios to Libraries section of ECOSYSTEM.md ([#1925](https://github.com/axios/axios/pull/1925)) - Cody Chan +- Clarify in README that default timeout is 0 (no timeout) ([#1750](https://github.com/axios/axios/pull/1750)) - Ben Standefer + +### 0.19.0-beta.1 (Aug 9, 2018) + +**NOTE:** This is a beta version of this release. There may be functionality that is broken in +certain browsers, though we suspect that builds are hanging and not erroring. See +https://saucelabs.com/u/axios for the most up-to-date information. + +New Functionality: + +- Add getUri method ([#1712](https://github.com/axios/axios/issues/1712)) +- Add support for no_proxy env variable ([#1693](https://github.com/axios/axios/issues/1693)) +- Add toJSON to decorated Axios errors to faciliate serialization ([#1625](https://github.com/axios/axios/issues/1625)) +- Add second then on axios call ([#1623](https://github.com/axios/axios/issues/1623)) +- Typings: allow custom return types +- Add option to specify character set in responses (with http adapter) + +Fixes: + +- Fix Keep defaults local to instance ([#385](https://github.com/axios/axios/issues/385)) +- Correctly catch exception in http test ([#1475](https://github.com/axios/axios/issues/1475)) +- Fix accept header normalization ([#1698](https://github.com/axios/axios/issues/1698)) +- Fix http adapter to allow HTTPS connections via HTTP ([#959](https://github.com/axios/axios/issues/959)) +- Fix Removes usage of deprecated Buffer constructor. ([#1555](https://github.com/axios/axios/issues/1555), [#1622](https://github.com/axios/axios/issues/1622)) +- Fix defaults to use httpAdapter if available ([#1285](https://github.com/axios/axios/issues/1285)) + - Fixing defaults to use httpAdapter if available + - Use a safer, cross-platform method to detect the Node environment +- Fix Reject promise if request is cancelled by the browser ([#537](https://github.com/axios/axios/issues/537)) +- [Typescript] Fix missing type parameters on delete/head methods +- [NS]: Send `false` flag isStandardBrowserEnv for Nativescript +- Fix missing type parameters on delete/head +- Fix Default method for an instance always overwritten by get +- Fix type error when socketPath option in AxiosRequestConfig +- Capture errors on request data streams +- Decorate resolve and reject to clear timeout in all cases + +Huge thanks to everyone who contributed to this release via code (authors listed +below) or via reviews and triaging on GitHub: + +- Andrew Scott +- Anthony Gauthier +- arpit +- ascott18 +- Benedikt Rötsch +- Chance Dickson +- Dave Stewart +- Deric Cain +- Guillaume Briday +- Jacob Wejendorp +- Jim Lynch +- johntron +- Justin Beckwith +- Justin Beckwith +- Khaled Garbaya +- Lim Jing Rong +- Mark van den Broek +- Martti Laine +- mattridley +- mattridley +- Nicolas Del Valle +- Nilegfx +- pbarbiero +- Rikki Gibson +- Sako Hartounian +- Shane Fitzpatrick +- Stephan Schneider +- Steven +- Tim Garthwaite +- Tim Johns +- Yutaro Miyazaki + +### 0.18.0 (Feb 19, 2018) + +- Adding support for UNIX Sockets when running with Node.js ([#1070](https://github.com/axios/axios/pull/1070)) +- Fixing typings ([#1177](https://github.com/axios/axios/pull/1177)): + - AxiosRequestConfig.proxy: allows type false + - AxiosProxyConfig: added auth field +- Adding function signature in AxiosInstance interface so AxiosInstance can be invoked ([#1192](https://github.com/axios/axios/pull/1192), [#1254](https://github.com/axios/axios/pull/1254)) +- Allowing maxContentLength to pass through to redirected calls as maxBodyLength in follow-redirects config ([#1287](https://github.com/axios/axios/pull/1287)) +- Fixing configuration when using an instance - method can now be set ([#1342](https://github.com/axios/axios/pull/1342)) + +### 0.17.1 (Nov 11, 2017) + +- Fixing issue with web workers ([#1160](https://github.com/axios/axios/pull/1160)) +- Allowing overriding transport ([#1080](https://github.com/axios/axios/pull/1080)) +- Updating TypeScript typings ([#1165](https://github.com/axios/axios/pull/1165), [#1125](https://github.com/axios/axios/pull/1125), [#1131](https://github.com/axios/axios/pull/1131)) + +### 0.17.0 (Oct 21, 2017) + +- **BREAKING** Fixing issue with `baseURL` and interceptors ([#950](https://github.com/axios/axios/pull/950)) +- **BREAKING** Improving handing of duplicate headers ([#874](https://github.com/axios/axios/pull/874)) +- Adding support for disabling proxies ([#691](https://github.com/axios/axios/pull/691)) +- Updating TypeScript typings with generic type parameters ([#1061](https://github.com/axios/axios/pull/1061)) + +### 0.16.2 (Jun 3, 2017) + +- Fixing issue with including `buffer` in bundle ([#887](https://github.com/axios/axios/pull/887)) +- Including underlying request in errors ([#830](https://github.com/axios/axios/pull/830)) +- Convert `method` to lowercase ([#930](https://github.com/axios/axios/pull/930)) + +### 0.16.1 (Apr 8, 2017) + +- Improving HTTP adapter to return last request in case of redirects ([#828](https://github.com/axios/axios/pull/828)) +- Updating `follow-redirects` dependency ([#829](https://github.com/axios/axios/pull/829)) +- Adding support for passing `Buffer` in node ([#773](https://github.com/axios/axios/pull/773)) + +### 0.16.0 (Mar 31, 2017) + +- **BREAKING** Removing `Promise` from axios typings in favor of built-in type declarations ([#480](https://github.com/axios/axios/issues/480)) +- Adding `options` shortcut method ([#461](https://github.com/axios/axios/pull/461)) +- Fixing issue with using `responseType: 'json'` in browsers incompatible with XHR Level 2 ([#654](https://github.com/axios/axios/pull/654)) +- Improving React Native detection ([#731](https://github.com/axios/axios/pull/731)) +- Fixing `combineURLs` to support empty `relativeURL` ([#581](https://github.com/axios/axios/pull/581)) +- Removing `PROTECTION_PREFIX` support ([#561](https://github.com/axios/axios/pull/561)) + +### 0.15.3 (Nov 27, 2016) + +- Fixing issue with custom instances and global defaults ([#443](https://github.com/axios/axios/issues/443)) +- Renaming `axios.d.ts` to `index.d.ts` ([#519](https://github.com/axios/axios/issues/519)) +- Adding `get`, `head`, and `delete` to `defaults.headers` ([#509](https://github.com/axios/axios/issues/509)) +- Fixing issue with `btoa` and IE ([#507](https://github.com/axios/axios/issues/507)) +- Adding support for proxy authentication ([#483](https://github.com/axios/axios/pull/483)) +- Improving HTTP adapter to use `http` protocol by default ([#493](https://github.com/axios/axios/pull/493)) +- Fixing proxy issues ([#491](https://github.com/axios/axios/pull/491)) + +### 0.15.2 (Oct 17, 2016) + +- Fixing issue with calling `cancel` after response has been received ([#482](https://github.com/axios/axios/issues/482)) + +### 0.15.1 (Oct 14, 2016) + +- Fixing issue with UMD ([#485](https://github.com/axios/axios/issues/485)) + +### 0.15.0 (Oct 10, 2016) + +- Adding cancellation support ([#452](https://github.com/axios/axios/pull/452)) +- Moving default adapter to global defaults ([#437](https://github.com/axios/axios/pull/437)) +- Fixing issue with `file` URI scheme ([#440](https://github.com/axios/axios/pull/440)) +- Fixing issue with `params` objects that have no prototype ([#445](https://github.com/axios/axios/pull/445)) + +### 0.14.0 (Aug 27, 2016) + +- **BREAKING** Updating TypeScript definitions ([#419](https://github.com/axios/axios/pull/419)) +- **BREAKING** Replacing `agent` option with `httpAgent` and `httpsAgent` ([#387](https://github.com/axios/axios/pull/387)) +- **BREAKING** Splitting `progress` event handlers into `onUploadProgress` and `onDownloadProgress` ([#423](https://github.com/axios/axios/pull/423)) +- Adding support for `http_proxy` and `https_proxy` environment variables ([#366](https://github.com/axios/axios/pull/366)) +- Fixing issue with `auth` config option and `Authorization` header ([#397](https://github.com/axios/axios/pull/397)) +- Don't set XSRF header if `xsrfCookieName` is `null` ([#406](https://github.com/axios/axios/pull/406)) + +### 0.13.1 (Jul 16, 2016) + +- Fixing issue with response data not being transformed on error ([#378](https://github.com/axios/axios/issues/378)) + +### 0.13.0 (Jul 13, 2016) + +- **BREAKING** Improved error handling ([#345](https://github.com/axios/axios/pull/345)) +- **BREAKING** Response transformer now invoked in dispatcher not adapter ([10eb238](https://github.com/axios/axios/commit/10eb23865101f9347570552c04e9d6211376e25e)) +- **BREAKING** Request adapters now return a `Promise` ([157efd5](https://github.com/axios/axios/commit/157efd5615890301824e3121cc6c9d2f9b21f94a)) +- Fixing issue with `withCredentials` not being overwritten ([#343](https://github.com/axios/axios/issues/343)) +- Fixing regression with request transformer being called before request interceptor ([#352](https://github.com/axios/axios/issues/352)) +- Fixing custom instance defaults ([#341](https://github.com/axios/axios/issues/341)) +- Fixing instances created from `axios.create` to have same API as default axios ([#217](https://github.com/axios/axios/issues/217)) + +### 0.12.0 (May 31, 2016) + +- Adding support for `URLSearchParams` ([#317](https://github.com/axios/axios/pull/317)) +- Adding `maxRedirects` option ([#307](https://github.com/axios/axios/pull/307)) + +### 0.11.1 (May 17, 2016) + +- Fixing IE CORS support ([#313](https://github.com/axios/axios/pull/313)) +- Fixing detection of `FormData` ([#325](https://github.com/axios/axios/pull/325)) +- Adding `Axios` class to exports ([#321](https://github.com/axios/axios/pull/321)) + +### 0.11.0 (Apr 26, 2016) + +- Adding support for Stream with HTTP adapter ([#296](https://github.com/axios/axios/pull/296)) +- Adding support for custom HTTP status code error ranges ([#308](https://github.com/axios/axios/pull/308)) +- Fixing issue with ArrayBuffer ([#299](https://github.com/axios/axios/pull/299)) + +### 0.10.0 (Apr 20, 2016) + +- Fixing issue with some requests sending `undefined` instead of `null` ([#250](https://github.com/axios/axios/pull/250)) +- Fixing basic auth for HTTP adapter ([#252](https://github.com/axios/axios/pull/252)) +- Fixing request timeout for XHR adapter ([#227](https://github.com/axios/axios/pull/227)) +- Fixing IE8 support by using `onreadystatechange` instead of `onload` ([#249](https://github.com/axios/axios/pull/249)) +- Fixing IE9 cross domain requests ([#251](https://github.com/axios/axios/pull/251)) +- Adding `maxContentLength` option ([#275](https://github.com/axios/axios/pull/275)) +- Fixing XHR support for WebWorker environment ([#279](https://github.com/axios/axios/pull/279)) +- Adding request instance to response ([#200](https://github.com/axios/axios/pull/200)) + +### 0.9.1 (Jan 24, 2016) + +- Improving handling of request timeout in node ([#124](https://github.com/axios/axios/issues/124)) +- Fixing network errors not rejecting ([#205](https://github.com/axios/axios/pull/205)) +- Fixing issue with IE rejecting on HTTP 204 ([#201](https://github.com/axios/axios/issues/201)) +- Fixing host/port when following redirects ([#198](https://github.com/axios/axios/pull/198)) + +### 0.9.0 (Jan 18, 2016) + +- Adding support for custom adapters +- Fixing Content-Type header being removed when data is false ([#195](https://github.com/axios/axios/pull/195)) +- Improving XDomainRequest implementation ([#185](https://github.com/axios/axios/pull/185)) +- Improving config merging and order of precedence ([#183](https://github.com/axios/axios/pull/183)) +- Fixing XDomainRequest support for only <= IE9 ([#182](https://github.com/axios/axios/pull/182)) + +### 0.8.1 (Dec 14, 2015) + +- Adding support for passing XSRF token for cross domain requests when using `withCredentials` ([#168](https://github.com/axios/axios/pull/168)) +- Fixing error with format of basic auth header ([#178](https://github.com/axios/axios/pull/173)) +- Fixing error with JSON payloads throwing `InvalidStateError` in some cases ([#174](https://github.com/axios/axios/pull/174)) + +### 0.8.0 (Dec 11, 2015) + +- Adding support for creating instances of axios ([#123](https://github.com/axios/axios/pull/123)) +- Fixing http adapter to use `Buffer` instead of `String` in case of `responseType === 'arraybuffer'` ([#128](https://github.com/axios/axios/pull/128)) +- Adding support for using custom parameter serializer with `paramsSerializer` option ([#121](https://github.com/axios/axios/pull/121)) +- Fixing issue in IE8 caused by `forEach` on `arguments` ([#127](https://github.com/axios/axios/pull/127)) +- Adding support for following redirects in node ([#146](https://github.com/axios/axios/pull/146)) +- Adding support for transparent decompression if `content-encoding` is set ([#149](https://github.com/axios/axios/pull/149)) +- Adding support for transparent XDomainRequest to handle cross domain requests in IE9 ([#140](https://github.com/axios/axios/pull/140)) +- Adding support for HTTP basic auth via Authorization header ([#167](https://github.com/axios/axios/pull/167)) +- Adding support for baseURL option ([#160](https://github.com/axios/axios/pull/160)) + +### 0.7.0 (Sep 29, 2015) + +- Fixing issue with minified bundle in IE8 ([#87](https://github.com/axios/axios/pull/87)) +- Adding support for passing agent in node ([#102](https://github.com/axios/axios/pull/102)) +- Adding support for returning result from `axios.spread` for chaining ([#106](https://github.com/axios/axios/pull/106)) +- Fixing typescript definition ([#105](https://github.com/axios/axios/pull/105)) +- Fixing default timeout config for node ([#112](https://github.com/axios/axios/pull/112)) +- Adding support for use in web workers, and react-native ([#70](https://github.com/axios/axios/issue/70)), ([#98](https://github.com/axios/axios/pull/98)) +- Adding support for fetch like API `axios(url[, config])` ([#116](https://github.com/axios/axios/issues/116)) + +### 0.6.0 (Sep 21, 2015) + +- Removing deprecated success/error aliases +- Fixing issue with array params not being properly encoded ([#49](https://github.com/axios/axios/pull/49)) +- Fixing issue with User-Agent getting overridden ([#69](https://github.com/axios/axios/issues/69)) +- Adding support for timeout config ([#56](https://github.com/axios/axios/issues/56)) +- Removing es6-promise dependency +- Fixing issue preventing `length` to be used as a parameter ([#91](https://github.com/axios/axios/pull/91)) +- Fixing issue with IE8 ([#85](https://github.com/axios/axios/pull/85)) +- Converting build to UMD + +### 0.5.4 (Apr 08, 2015) + +- Fixing issue with FormData not being sent ([#53](https://github.com/axios/axios/issues/53)) + +### 0.5.3 (Apr 07, 2015) + +- Using JSON.parse unconditionally when transforming response string ([#55](https://github.com/axios/axios/issues/55)) + +### 0.5.2 (Mar 13, 2015) + +- Adding support for `statusText` in response ([#46](https://github.com/axios/axios/issues/46)) + +### 0.5.1 (Mar 10, 2015) + +- Fixing issue using strict mode ([#45](https://github.com/axios/axios/issues/45)) +- Fixing issue with standalone build ([#47](https://github.com/axios/axios/issues/47)) + +### 0.5.0 (Jan 23, 2015) + +- Adding support for intercepetors ([#14](https://github.com/axios/axios/issues/14)) +- Updating es6-promise dependency + +### 0.4.2 (Dec 10, 2014) + +- Fixing issue with `Content-Type` when using `FormData` ([#22](https://github.com/axios/axios/issues/22)) +- Adding support for TypeScript ([#25](https://github.com/axios/axios/issues/25)) +- Fixing issue with standalone build ([#29](https://github.com/axios/axios/issues/29)) +- Fixing issue with verbs needing to be capitalized in some browsers ([#30](https://github.com/axios/axios/issues/30)) + +### 0.4.1 (Oct 15, 2014) + +- Adding error handling to request for node.js ([#18](https://github.com/axios/axios/issues/18)) + +### 0.4.0 (Oct 03, 2014) + +- Adding support for `ArrayBuffer` and `ArrayBufferView` ([#10](https://github.com/axios/axios/issues/10)) +- Adding support for utf-8 for node.js ([#13](https://github.com/axios/axios/issues/13)) +- Adding support for SSL for node.js ([#12](https://github.com/axios/axios/issues/12)) +- Fixing incorrect `Content-Type` header ([#9](https://github.com/axios/axios/issues/9)) +- Adding standalone build without bundled es6-promise ([#11](https://github.com/axios/axios/issues/11)) +- Deprecating `success`/`error` in favor of `then`/`catch` + +### 0.3.1 (Sep 16, 2014) + +- Fixing missing post body when using node.js ([#3](https://github.com/axios/axios/issues/3)) + +### 0.3.0 (Sep 16, 2014) + +- Fixing `success` and `error` to properly receive response data as individual arguments ([#8](https://github.com/axios/axios/issues/8)) +- Updating `then` and `catch` to receive response data as a single object ([#6](https://github.com/axios/axios/issues/6)) +- Fixing issue with `all` not working ([#7](https://github.com/axios/axios/issues/7)) + +### 0.2.2 (Sep 14, 2014) + +- Fixing bundling with browserify ([#4](https://github.com/axios/axios/issues/4)) + +### 0.2.1 (Sep 12, 2014) + +- Fixing build problem causing ridiculous file sizes + +### 0.2.0 (Sep 12, 2014) + +- Adding support for `all` and `spread` +- Adding support for node.js ([#1](https://github.com/axios/axios/issues/1)) + +### 0.1.0 (Aug 29, 2014) + +- Initial release diff --git a/node_modules/axios/LICENSE b/node_modules/axios/LICENSE new file mode 100644 index 0000000..d36c80e --- /dev/null +++ b/node_modules/axios/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2014-present Matt Zabriskie + +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/axios/README.md b/node_modules/axios/README.md new file mode 100755 index 0000000..0b09254 --- /dev/null +++ b/node_modules/axios/README.md @@ -0,0 +1,709 @@ +# axios + +[![npm version](https://img.shields.io/npm/v/axios.svg?style=flat-square)](https://www.npmjs.org/package/axios) +[![build status](https://img.shields.io/travis/axios/axios/master.svg?style=flat-square)](https://travis-ci.org/axios/axios) +[![code coverage](https://img.shields.io/coveralls/mzabriskie/axios.svg?style=flat-square)](https://coveralls.io/r/mzabriskie/axios) +[![install size](https://packagephobia.now.sh/badge?p=axios)](https://packagephobia.now.sh/result?p=axios) +[![npm downloads](https://img.shields.io/npm/dm/axios.svg?style=flat-square)](http://npm-stat.com/charts.html?package=axios) +[![gitter chat](https://img.shields.io/gitter/room/mzabriskie/axios.svg?style=flat-square)](https://gitter.im/mzabriskie/axios) +[![code helpers](https://www.codetriage.com/axios/axios/badges/users.svg)](https://www.codetriage.com/axios/axios) + +Promise based HTTP client for the browser and node.js + +## Features + +- Make [XMLHttpRequests](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest) from the browser +- Make [http](http://nodejs.org/api/http.html) requests from node.js +- Supports the [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) API +- Intercept request and response +- Transform request and response data +- Cancel requests +- Automatic transforms for JSON data +- Client side support for protecting against [XSRF](http://en.wikipedia.org/wiki/Cross-site_request_forgery) + +## Browser Support + +![Chrome](https://raw.github.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png) | ![Firefox](https://raw.github.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png) | ![Safari](https://raw.github.com/alrra/browser-logos/master/src/safari/safari_48x48.png) | ![Opera](https://raw.github.com/alrra/browser-logos/master/src/opera/opera_48x48.png) | ![Edge](https://raw.github.com/alrra/browser-logos/master/src/edge/edge_48x48.png) | ![IE](https://raw.github.com/alrra/browser-logos/master/src/archive/internet-explorer_9-11/internet-explorer_9-11_48x48.png) | +--- | --- | --- | --- | --- | --- | +Latest ✔ | Latest ✔ | Latest ✔ | Latest ✔ | Latest ✔ | 11 ✔ | + +[![Browser Matrix](https://saucelabs.com/open_sauce/build_matrix/axios.svg)](https://saucelabs.com/u/axios) + +## Installing + +Using npm: + +```bash +$ npm install axios +``` + +Using bower: + +```bash +$ bower install axios +``` + +Using yarn: + +```bash +$ yarn add axios +``` + +Using cdn: + +```html + +``` + +## Example + +### note: CommonJS usage +In order to gain the TypeScript typings (for intellisense / autocomplete) while using CommonJS imports with `require()` use the following approach: + +```js +const axios = require('axios').default; + +// axios. will now provide autocomplete and parameter typings +``` + +Performing a `GET` request + +```js +const axios = require('axios'); + +// Make a request for a user with a given ID +axios.get('/user?ID=12345') + .then(function (response) { + // handle success + console.log(response); + }) + .catch(function (error) { + // handle error + console.log(error); + }) + .finally(function () { + // always executed + }); + +// Optionally the request above could also be done as +axios.get('/user', { + params: { + ID: 12345 + } + }) + .then(function (response) { + console.log(response); + }) + .catch(function (error) { + console.log(error); + }) + .finally(function () { + // always executed + }); + +// Want to use async/await? Add the `async` keyword to your outer function/method. +async function getUser() { + try { + const response = await axios.get('/user?ID=12345'); + console.log(response); + } catch (error) { + console.error(error); + } +} +``` + +> **NOTE:** `async/await` is part of ECMAScript 2017 and is not supported in Internet +> Explorer and older browsers, so use with caution. + +Performing a `POST` request + +```js +axios.post('/user', { + firstName: 'Fred', + lastName: 'Flintstone' + }) + .then(function (response) { + console.log(response); + }) + .catch(function (error) { + console.log(error); + }); +``` + +Performing multiple concurrent requests + +```js +function getUserAccount() { + return axios.get('/user/12345'); +} + +function getUserPermissions() { + return axios.get('/user/12345/permissions'); +} + +axios.all([getUserAccount(), getUserPermissions()]) + .then(axios.spread(function (acct, perms) { + // Both requests are now complete + })); +``` + +## axios API + +Requests can be made by passing the relevant config to `axios`. + +##### axios(config) + +```js +// Send a POST request +axios({ + method: 'post', + url: '/user/12345', + data: { + firstName: 'Fred', + lastName: 'Flintstone' + } +}); +``` + +```js +// GET request for remote image +axios({ + method: 'get', + url: 'http://bit.ly/2mTM3nY', + responseType: 'stream' +}) + .then(function (response) { + response.data.pipe(fs.createWriteStream('ada_lovelace.jpg')) + }); +``` + +##### axios(url[, config]) + +```js +// Send a GET request (default method) +axios('/user/12345'); +``` + +### Request method aliases + +For convenience aliases have been provided for all supported request methods. + +##### axios.request(config) +##### axios.get(url[, config]) +##### axios.delete(url[, config]) +##### axios.head(url[, config]) +##### axios.options(url[, config]) +##### axios.post(url[, data[, config]]) +##### axios.put(url[, data[, config]]) +##### axios.patch(url[, data[, config]]) + +###### NOTE +When using the alias methods `url`, `method`, and `data` properties don't need to be specified in config. + +### Concurrency + +Helper functions for dealing with concurrent requests. + +##### axios.all(iterable) +##### axios.spread(callback) + +### Creating an instance + +You can create a new instance of axios with a custom config. + +##### axios.create([config]) + +```js +const instance = axios.create({ + baseURL: 'https://some-domain.com/api/', + timeout: 1000, + headers: {'X-Custom-Header': 'foobar'} +}); +``` + +### Instance methods + +The available instance methods are listed below. The specified config will be merged with the instance config. + +##### axios#request(config) +##### axios#get(url[, config]) +##### axios#delete(url[, config]) +##### axios#head(url[, config]) +##### axios#options(url[, config]) +##### axios#post(url[, data[, config]]) +##### axios#put(url[, data[, config]]) +##### axios#patch(url[, data[, config]]) +##### axios#getUri([config]) + +## Request Config + +These are the available config options for making requests. Only the `url` is required. Requests will default to `GET` if `method` is not specified. + +```js +{ + // `url` is the server URL that will be used for the request + url: '/user', + + // `method` is the request method to be used when making the request + method: 'get', // default + + // `baseURL` will be prepended to `url` unless `url` is absolute. + // It can be convenient to set `baseURL` for an instance of axios to pass relative URLs + // to methods of that instance. + baseURL: 'https://some-domain.com/api/', + + // `transformRequest` allows changes to the request data before it is sent to the server + // This is only applicable for request methods 'PUT', 'POST', 'PATCH' and 'DELETE' + // The last function in the array must return a string or an instance of Buffer, ArrayBuffer, + // FormData or Stream + // You may modify the headers object. + transformRequest: [function (data, headers) { + // Do whatever you want to transform the data + + return data; + }], + + // `transformResponse` allows changes to the response data to be made before + // it is passed to then/catch + transformResponse: [function (data) { + // Do whatever you want to transform the data + + return data; + }], + + // `headers` are custom headers to be sent + headers: {'X-Requested-With': 'XMLHttpRequest'}, + + // `params` are the URL parameters to be sent with the request + // Must be a plain object or a URLSearchParams object + params: { + ID: 12345 + }, + + // `paramsSerializer` is an optional function in charge of serializing `params` + // (e.g. https://www.npmjs.com/package/qs, http://api.jquery.com/jquery.param/) + paramsSerializer: function (params) { + return Qs.stringify(params, {arrayFormat: 'brackets'}) + }, + + // `data` is the data to be sent as the request body + // Only applicable for request methods 'PUT', 'POST', and 'PATCH' + // When no `transformRequest` is set, must be of one of the following types: + // - string, plain object, ArrayBuffer, ArrayBufferView, URLSearchParams + // - Browser only: FormData, File, Blob + // - Node only: Stream, Buffer + data: { + firstName: 'Fred' + }, + + // syntax alternative to send data into the body + // method post + // only the value is sent, not the key + data: 'Country=Brasil&City=Belo Horizonte', + + // `timeout` specifies the number of milliseconds before the request times out. + // If the request takes longer than `timeout`, the request will be aborted. + timeout: 1000, // default is `0` (no timeout) + + // `withCredentials` indicates whether or not cross-site Access-Control requests + // should be made using credentials + withCredentials: false, // default + + // `adapter` allows custom handling of requests which makes testing easier. + // Return a promise and supply a valid response (see lib/adapters/README.md). + adapter: function (config) { + /* ... */ + }, + + // `auth` indicates that HTTP Basic auth should be used, and supplies credentials. + // This will set an `Authorization` header, overwriting any existing + // `Authorization` custom headers you have set using `headers`. + // Please note that only HTTP Basic auth is configurable through this parameter. + // For Bearer tokens and such, use `Authorization` custom headers instead. + auth: { + username: 'janedoe', + password: 's00pers3cret' + }, + + // `responseType` indicates the type of data that the server will respond with + // options are: 'arraybuffer', 'document', 'json', 'text', 'stream' + // browser only: 'blob' + responseType: 'json', // default + + // `responseEncoding` indicates encoding to use for decoding responses + // Note: Ignored for `responseType` of 'stream' or client-side requests + responseEncoding: 'utf8', // default + + // `xsrfCookieName` is the name of the cookie to use as a value for xsrf token + xsrfCookieName: 'XSRF-TOKEN', // default + + // `xsrfHeaderName` is the name of the http header that carries the xsrf token value + xsrfHeaderName: 'X-XSRF-TOKEN', // default + + // `onUploadProgress` allows handling of progress events for uploads + onUploadProgress: function (progressEvent) { + // Do whatever you want with the native progress event + }, + + // `onDownloadProgress` allows handling of progress events for downloads + onDownloadProgress: function (progressEvent) { + // Do whatever you want with the native progress event + }, + + // `maxContentLength` defines the max size of the http response content in bytes allowed + maxContentLength: 2000, + + // `validateStatus` defines whether to resolve or reject the promise for a given + // HTTP response status code. If `validateStatus` returns `true` (or is set to `null` + // or `undefined`), the promise will be resolved; otherwise, the promise will be + // rejected. + validateStatus: function (status) { + return status >= 200 && status < 300; // default + }, + + // `maxRedirects` defines the maximum number of redirects to follow in node.js. + // If set to 0, no redirects will be followed. + maxRedirects: 5, // default + + // `socketPath` defines a UNIX Socket to be used in node.js. + // e.g. '/var/run/docker.sock' to send requests to the docker daemon. + // Only either `socketPath` or `proxy` can be specified. + // If both are specified, `socketPath` is used. + socketPath: null, // default + + // `httpAgent` and `httpsAgent` define a custom agent to be used when performing http + // and https requests, respectively, in node.js. This allows options to be added like + // `keepAlive` that are not enabled by default. + httpAgent: new http.Agent({ keepAlive: true }), + httpsAgent: new https.Agent({ keepAlive: true }), + + // 'proxy' defines the hostname and port of the proxy server. + // You can also define your proxy using the conventional `http_proxy` and + // `https_proxy` environment variables. If you are using environment variables + // for your proxy configuration, you can also define a `no_proxy` environment + // variable as a comma-separated list of domains that should not be proxied. + // Use `false` to disable proxies, ignoring environment variables. + // `auth` indicates that HTTP Basic auth should be used to connect to the proxy, and + // supplies credentials. + // This will set an `Proxy-Authorization` header, overwriting any existing + // `Proxy-Authorization` custom headers you have set using `headers`. + proxy: { + host: '127.0.0.1', + port: 9000, + auth: { + username: 'mikeymike', + password: 'rapunz3l' + } + }, + + // `cancelToken` specifies a cancel token that can be used to cancel the request + // (see Cancellation section below for details) + cancelToken: new CancelToken(function (cancel) { + }) +} +``` + +## Response Schema + +The response for a request contains the following information. + +```js +{ + // `data` is the response that was provided by the server + data: {}, + + // `status` is the HTTP status code from the server response + status: 200, + + // `statusText` is the HTTP status message from the server response + statusText: 'OK', + + // `headers` the headers that the server responded with + // All header names are lower cased + headers: {}, + + // `config` is the config that was provided to `axios` for the request + config: {}, + + // `request` is the request that generated this response + // It is the last ClientRequest instance in node.js (in redirects) + // and an XMLHttpRequest instance in the browser + request: {} +} +``` + +When using `then`, you will receive the response as follows: + +```js +axios.get('/user/12345') + .then(function (response) { + console.log(response.data); + console.log(response.status); + console.log(response.statusText); + console.log(response.headers); + console.log(response.config); + }); +``` + +When using `catch`, or passing a [rejection callback](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then) as second parameter of `then`, the response will be available through the `error` object as explained in the [Handling Errors](#handling-errors) section. + +## Config Defaults + +You can specify config defaults that will be applied to every request. + +### Global axios defaults + +```js +axios.defaults.baseURL = 'https://api.example.com'; +axios.defaults.headers.common['Authorization'] = AUTH_TOKEN; +axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'; +``` + +### Custom instance defaults + +```js +// Set config defaults when creating the instance +const instance = axios.create({ + baseURL: 'https://api.example.com' +}); + +// Alter defaults after instance has been created +instance.defaults.headers.common['Authorization'] = AUTH_TOKEN; +``` + +### Config order of precedence + +Config will be merged with an order of precedence. The order is library defaults found in [lib/defaults.js](https://github.com/axios/axios/blob/master/lib/defaults.js#L28), then `defaults` property of the instance, and finally `config` argument for the request. The latter will take precedence over the former. Here's an example. + +```js +// Create an instance using the config defaults provided by the library +// At this point the timeout config value is `0` as is the default for the library +const instance = axios.create(); + +// Override timeout default for the library +// Now all requests using this instance will wait 2.5 seconds before timing out +instance.defaults.timeout = 2500; + +// Override timeout for this request as it's known to take a long time +instance.get('/longRequest', { + timeout: 5000 +}); +``` + +## Interceptors + +You can intercept requests or responses before they are handled by `then` or `catch`. + +```js +// Add a request interceptor +axios.interceptors.request.use(function (config) { + // Do something before request is sent + return config; + }, function (error) { + // Do something with request error + return Promise.reject(error); + }); + +// Add a response interceptor +axios.interceptors.response.use(function (response) { + // Any status code that lie within the range of 2xx cause this function to trigger + // Do something with response data + return response; + }, function (error) { + // Any status codes that falls outside the range of 2xx cause this function to trigger + // Do something with response error + return Promise.reject(error); + }); +``` + +If you need to remove an interceptor later you can. + +```js +const myInterceptor = axios.interceptors.request.use(function () {/*...*/}); +axios.interceptors.request.eject(myInterceptor); +``` + +You can add interceptors to a custom instance of axios. + +```js +const instance = axios.create(); +instance.interceptors.request.use(function () {/*...*/}); +``` + +## Handling Errors + +```js +axios.get('/user/12345') + .catch(function (error) { + if (error.response) { + // The request was made and the server responded with a status code + // that falls out of the range of 2xx + console.log(error.response.data); + console.log(error.response.status); + console.log(error.response.headers); + } else if (error.request) { + // The request was made but no response was received + // `error.request` is an instance of XMLHttpRequest in the browser and an instance of + // http.ClientRequest in node.js + console.log(error.request); + } else { + // Something happened in setting up the request that triggered an Error + console.log('Error', error.message); + } + console.log(error.config); + }); +``` + +Using the `validateStatus` config option, you can define HTTP code(s) that should throw an error. + +```js +axios.get('/user/12345', { + validateStatus: function (status) { + return status < 500; // Reject only if the status code is greater than or equal to 500 + } +}) +``` + +Using `toJSON` you get an object with more information about the HTTP error. + +```js +axios.get('/user/12345') + .catch(function (error) { + console.log(error.toJSON()); + }); +``` + +## Cancellation + +You can cancel a request using a *cancel token*. + +> The axios cancel token API is based on the withdrawn [cancelable promises proposal](https://github.com/tc39/proposal-cancelable-promises). + +You can create a cancel token using the `CancelToken.source` factory as shown below: + +```js +const CancelToken = axios.CancelToken; +const source = CancelToken.source(); + +axios.get('/user/12345', { + cancelToken: source.token +}).catch(function (thrown) { + if (axios.isCancel(thrown)) { + console.log('Request canceled', thrown.message); + } else { + // handle error + } +}); + +axios.post('/user/12345', { + name: 'new name' +}, { + cancelToken: source.token +}) + +// cancel the request (the message parameter is optional) +source.cancel('Operation canceled by the user.'); +``` + +You can also create a cancel token by passing an executor function to the `CancelToken` constructor: + +```js +const CancelToken = axios.CancelToken; +let cancel; + +axios.get('/user/12345', { + cancelToken: new CancelToken(function executor(c) { + // An executor function receives a cancel function as a parameter + cancel = c; + }) +}); + +// cancel the request +cancel(); +``` + +> Note: you can cancel several requests with the same cancel token. + +## Using application/x-www-form-urlencoded format + +By default, axios serializes JavaScript objects to `JSON`. To send data in the `application/x-www-form-urlencoded` format instead, you can use one of the following options. + +### Browser + +In a browser, you can use the [`URLSearchParams`](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams) API as follows: + +```js +const params = new URLSearchParams(); +params.append('param1', 'value1'); +params.append('param2', 'value2'); +axios.post('/foo', params); +``` + +> Note that `URLSearchParams` is not supported by all browsers (see [caniuse.com](http://www.caniuse.com/#feat=urlsearchparams)), but there is a [polyfill](https://github.com/WebReflection/url-search-params) available (make sure to polyfill the global environment). + +Alternatively, you can encode data using the [`qs`](https://github.com/ljharb/qs) library: + +```js +const qs = require('qs'); +axios.post('/foo', qs.stringify({ 'bar': 123 })); +``` + +Or in another way (ES6), + +```js +import qs from 'qs'; +const data = { 'bar': 123 }; +const options = { + method: 'POST', + headers: { 'content-type': 'application/x-www-form-urlencoded' }, + data: qs.stringify(data), + url, +}; +axios(options); +``` + +### Node.js + +In node.js, you can use the [`querystring`](https://nodejs.org/api/querystring.html) module as follows: + +```js +const querystring = require('querystring'); +axios.post('http://something.com/', querystring.stringify({ foo: 'bar' })); +``` + +You can also use the [`qs`](https://github.com/ljharb/qs) library. + +###### NOTE +The `qs` library is preferable if you need to stringify nested objects, as the `querystring` method has known issues with that use case (https://github.com/nodejs/node-v0.x-archive/issues/1665). + +## Semver + +Until axios reaches a `1.0` release, breaking changes will be released with a new minor version. For example `0.5.1`, and `0.5.4` will have the same API, but `0.6.0` will have breaking changes. + +## Promises + +axios depends on a native ES6 Promise implementation to be [supported](http://caniuse.com/promises). +If your environment doesn't support ES6 Promises, you can [polyfill](https://github.com/jakearchibald/es6-promise). + +## TypeScript +axios includes [TypeScript](http://typescriptlang.org) definitions. +```typescript +import axios from 'axios'; +axios.get('/user?ID=12345'); +``` + +## Resources + +* [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md) +* [Upgrade Guide](https://github.com/axios/axios/blob/master/UPGRADE_GUIDE.md) +* [Ecosystem](https://github.com/axios/axios/blob/master/ECOSYSTEM.md) +* [Contributing Guide](https://github.com/axios/axios/blob/master/CONTRIBUTING.md) +* [Code of Conduct](https://github.com/axios/axios/blob/master/CODE_OF_CONDUCT.md) + +## Credits + +axios is heavily inspired by the [$http service](https://docs.angularjs.org/api/ng/service/$http) provided in [Angular](https://angularjs.org/). Ultimately axios is an effort to provide a standalone `$http`-like service for use outside of Angular. + +## License + +[MIT](LICENSE) diff --git a/node_modules/axios/UPGRADE_GUIDE.md b/node_modules/axios/UPGRADE_GUIDE.md new file mode 100644 index 0000000..eedb049 --- /dev/null +++ b/node_modules/axios/UPGRADE_GUIDE.md @@ -0,0 +1,162 @@ +# Upgrade Guide + +### 0.15.x -> 0.16.0 + +#### `Promise` Type Declarations + +The `Promise` type declarations have been removed from the axios typings in favor of the built-in type declarations. If you use axios in a TypeScript project that targets `ES5`, please make sure to include the `es2015.promise` lib. Please see [this post](https://blog.mariusschulz.com/2016/11/25/typescript-2-0-built-in-type-declarations) for details. + +### 0.13.x -> 0.14.0 + +#### TypeScript Definitions + +The axios TypeScript definitions have been updated to match the axios API and use the ES2015 module syntax. + +Please use the following `import` statement to import axios in TypeScript: + +```typescript +import axios from 'axios'; + +axios.get('/foo') + .then(response => console.log(response)) + .catch(error => console.log(error)); +``` + +#### `agent` Config Option + +The `agent` config option has been replaced with two new options: `httpAgent` and `httpsAgent`. Please use them instead. + +```js +{ + // Define a custom agent for HTTP + httpAgent: new http.Agent({ keepAlive: true }), + // Define a custom agent for HTTPS + httpsAgent: new https.Agent({ keepAlive: true }) +} +``` + +#### `progress` Config Option + +The `progress` config option has been replaced with the `onUploadProgress` and `onDownloadProgress` options. + +```js +{ + // Define a handler for upload progress events + onUploadProgress: function (progressEvent) { + // ... + }, + + // Define a handler for download progress events + onDownloadProgress: function (progressEvent) { + // ... + } +} +``` + +### 0.12.x -> 0.13.0 + +The `0.13.0` release contains several changes to custom adapters and error handling. + +#### Error Handling + +Previous to this release an error could either be a server response with bad status code or an actual `Error`. With this release Promise will always reject with an `Error`. In the case that a response was received, the `Error` will also include the response. + +```js +axios.get('/user/12345') + .catch((error) => { + console.log(error.message); + console.log(error.code); // Not always specified + console.log(error.config); // The config that was used to make the request + console.log(error.response); // Only available if response was received from the server + }); +``` + +#### Request Adapters + +This release changes a few things about how request adapters work. Please take note if you are using your own custom adapter. + +1. Response transformer is now called outside of adapter. +2. Request adapter returns a `Promise`. + +This means that you no longer need to invoke `transformData` on response data. You will also no longer receive `resolve` and `reject` as arguments in your adapter. + +Previous code: + +```js +function myAdapter(resolve, reject, config) { + var response = { + data: transformData( + responseData, + responseHeaders, + config.transformResponse + ), + status: request.status, + statusText: request.statusText, + headers: responseHeaders + }; + settle(resolve, reject, response); +} +``` + +New code: + +```js +function myAdapter(config) { + return new Promise(function (resolve, reject) { + var response = { + data: responseData, + status: request.status, + statusText: request.statusText, + headers: responseHeaders + }; + settle(resolve, reject, response); + }); +} +``` + +See the related commits for more details: +- [Response transformers](https://github.com/axios/axios/commit/10eb23865101f9347570552c04e9d6211376e25e) +- [Request adapter Promise](https://github.com/axios/axios/commit/157efd5615890301824e3121cc6c9d2f9b21f94a) + +### 0.5.x -> 0.6.0 + +The `0.6.0` release contains mostly bug fixes, but there are a couple things to be aware of when upgrading. + +#### ES6 Promise Polyfill + +Up until the `0.6.0` release ES6 `Promise` was being polyfilled using [es6-promise](https://github.com/jakearchibald/es6-promise). With this release, the polyfill has been removed, and you will need to supply it yourself if your environment needs it. + +```js +require('es6-promise').polyfill(); +var axios = require('axios'); +``` + +This will polyfill the global environment, and only needs to be done once. + +#### `axios.success`/`axios.error` + +The `success`, and `error` aliases were deprectated in [0.4.0](https://github.com/axios/axios/blob/master/CHANGELOG.md#040-oct-03-2014). As of this release they have been removed entirely. Instead please use `axios.then`, and `axios.catch` respectively. + +```js +axios.get('some/url') + .then(function (res) { + /* ... */ + }) + .catch(function (err) { + /* ... */ + }); +``` + +#### UMD + +Previous versions of axios shipped with an AMD, CommonJS, and Global build. This has all been rolled into a single UMD build. + +```js +// AMD +require(['bower_components/axios/dist/axios'], function (axios) { + /* ... */ +}); + +// CommonJS +var axios = require('axios/dist/axios'); +``` diff --git a/node_modules/axios/dist/axios.js b/node_modules/axios/dist/axios.js new file mode 100644 index 0000000..d9c0c71 --- /dev/null +++ b/node_modules/axios/dist/axios.js @@ -0,0 +1,1715 @@ +/* axios v0.19.2 | (c) 2020 by Matt Zabriskie */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else if(typeof exports === 'object') + exports["axios"] = factory(); + else + root["axios"] = factory(); +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; +/******/ +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.loaded = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + + module.exports = __webpack_require__(1); + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + var bind = __webpack_require__(3); + var Axios = __webpack_require__(4); + var mergeConfig = __webpack_require__(22); + var defaults = __webpack_require__(10); + + /** + * Create an instance of Axios + * + * @param {Object} defaultConfig The default config for the instance + * @return {Axios} A new instance of Axios + */ + function createInstance(defaultConfig) { + var context = new Axios(defaultConfig); + var instance = bind(Axios.prototype.request, context); + + // Copy axios.prototype to instance + utils.extend(instance, Axios.prototype, context); + + // Copy context to instance + utils.extend(instance, context); + + return instance; + } + + // Create the default instance to be exported + var axios = createInstance(defaults); + + // Expose Axios class to allow class inheritance + axios.Axios = Axios; + + // Factory for creating new instances + axios.create = function create(instanceConfig) { + return createInstance(mergeConfig(axios.defaults, instanceConfig)); + }; + + // Expose Cancel & CancelToken + axios.Cancel = __webpack_require__(23); + axios.CancelToken = __webpack_require__(24); + axios.isCancel = __webpack_require__(9); + + // Expose all/spread + axios.all = function all(promises) { + return Promise.all(promises); + }; + axios.spread = __webpack_require__(25); + + module.exports = axios; + + // Allow use of default import syntax in TypeScript + module.exports.default = axios; + + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var bind = __webpack_require__(3); + + /*global toString:true*/ + + // utils is a library of generic helper functions non-specific to axios + + var toString = Object.prototype.toString; + + /** + * Determine if a value is an Array + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an Array, otherwise false + */ + function isArray(val) { + return toString.call(val) === '[object Array]'; + } + + /** + * Determine if a value is undefined + * + * @param {Object} val The value to test + * @returns {boolean} True if the value is undefined, otherwise false + */ + function isUndefined(val) { + return typeof val === 'undefined'; + } + + /** + * Determine if a value is a Buffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Buffer, otherwise false + */ + function isBuffer(val) { + return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) + && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val); + } + + /** + * Determine if a value is an ArrayBuffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an ArrayBuffer, otherwise false + */ + function isArrayBuffer(val) { + return toString.call(val) === '[object ArrayBuffer]'; + } + + /** + * Determine if a value is a FormData + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an FormData, otherwise false + */ + function isFormData(val) { + return (typeof FormData !== 'undefined') && (val instanceof FormData); + } + + /** + * Determine if a value is a view on an ArrayBuffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false + */ + function isArrayBufferView(val) { + var result; + if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) { + result = ArrayBuffer.isView(val); + } else { + result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer); + } + return result; + } + + /** + * Determine if a value is a String + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a String, otherwise false + */ + function isString(val) { + return typeof val === 'string'; + } + + /** + * Determine if a value is a Number + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Number, otherwise false + */ + function isNumber(val) { + return typeof val === 'number'; + } + + /** + * Determine if a value is an Object + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an Object, otherwise false + */ + function isObject(val) { + return val !== null && typeof val === 'object'; + } + + /** + * Determine if a value is a Date + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Date, otherwise false + */ + function isDate(val) { + return toString.call(val) === '[object Date]'; + } + + /** + * Determine if a value is a File + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a File, otherwise false + */ + function isFile(val) { + return toString.call(val) === '[object File]'; + } + + /** + * Determine if a value is a Blob + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Blob, otherwise false + */ + function isBlob(val) { + return toString.call(val) === '[object Blob]'; + } + + /** + * Determine if a value is a Function + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Function, otherwise false + */ + function isFunction(val) { + return toString.call(val) === '[object Function]'; + } + + /** + * Determine if a value is a Stream + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Stream, otherwise false + */ + function isStream(val) { + return isObject(val) && isFunction(val.pipe); + } + + /** + * Determine if a value is a URLSearchParams object + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a URLSearchParams object, otherwise false + */ + function isURLSearchParams(val) { + return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams; + } + + /** + * Trim excess whitespace off the beginning and end of a string + * + * @param {String} str The String to trim + * @returns {String} The String freed of excess whitespace + */ + function trim(str) { + return str.replace(/^\s*/, '').replace(/\s*$/, ''); + } + + /** + * Determine if we're running in a standard browser environment + * + * This allows axios to run in a web worker, and react-native. + * Both environments support XMLHttpRequest, but not fully standard globals. + * + * web workers: + * typeof window -> undefined + * typeof document -> undefined + * + * react-native: + * navigator.product -> 'ReactNative' + * nativescript + * navigator.product -> 'NativeScript' or 'NS' + */ + function isStandardBrowserEnv() { + if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || + navigator.product === 'NativeScript' || + navigator.product === 'NS')) { + return false; + } + return ( + typeof window !== 'undefined' && + typeof document !== 'undefined' + ); + } + + /** + * Iterate over an Array or an Object invoking a function for each item. + * + * If `obj` is an Array callback will be called passing + * the value, index, and complete array for each item. + * + * If 'obj' is an Object callback will be called passing + * the value, key, and complete object for each property. + * + * @param {Object|Array} obj The object to iterate + * @param {Function} fn The callback to invoke for each item + */ + function forEach(obj, fn) { + // Don't bother if no value provided + if (obj === null || typeof obj === 'undefined') { + return; + } + + // Force an array if not already something iterable + if (typeof obj !== 'object') { + /*eslint no-param-reassign:0*/ + obj = [obj]; + } + + if (isArray(obj)) { + // Iterate over array values + for (var i = 0, l = obj.length; i < l; i++) { + fn.call(null, obj[i], i, obj); + } + } else { + // Iterate over object keys + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + fn.call(null, obj[key], key, obj); + } + } + } + } + + /** + * Accepts varargs expecting each argument to be an object, then + * immutably merges the properties of each object and returns result. + * + * When multiple objects contain the same key the later object in + * the arguments list will take precedence. + * + * Example: + * + * ```js + * var result = merge({foo: 123}, {foo: 456}); + * console.log(result.foo); // outputs 456 + * ``` + * + * @param {Object} obj1 Object to merge + * @returns {Object} Result of all merge properties + */ + function merge(/* obj1, obj2, obj3, ... */) { + var result = {}; + function assignValue(val, key) { + if (typeof result[key] === 'object' && typeof val === 'object') { + result[key] = merge(result[key], val); + } else { + result[key] = val; + } + } + + for (var i = 0, l = arguments.length; i < l; i++) { + forEach(arguments[i], assignValue); + } + return result; + } + + /** + * Function equal to merge with the difference being that no reference + * to original objects is kept. + * + * @see merge + * @param {Object} obj1 Object to merge + * @returns {Object} Result of all merge properties + */ + function deepMerge(/* obj1, obj2, obj3, ... */) { + var result = {}; + function assignValue(val, key) { + if (typeof result[key] === 'object' && typeof val === 'object') { + result[key] = deepMerge(result[key], val); + } else if (typeof val === 'object') { + result[key] = deepMerge({}, val); + } else { + result[key] = val; + } + } + + for (var i = 0, l = arguments.length; i < l; i++) { + forEach(arguments[i], assignValue); + } + return result; + } + + /** + * Extends object a by mutably adding to it the properties of object b. + * + * @param {Object} a The object to be extended + * @param {Object} b The object to copy properties from + * @param {Object} thisArg The object to bind function to + * @return {Object} The resulting value of object a + */ + function extend(a, b, thisArg) { + forEach(b, function assignValue(val, key) { + if (thisArg && typeof val === 'function') { + a[key] = bind(val, thisArg); + } else { + a[key] = val; + } + }); + return a; + } + + module.exports = { + isArray: isArray, + isArrayBuffer: isArrayBuffer, + isBuffer: isBuffer, + isFormData: isFormData, + isArrayBufferView: isArrayBufferView, + isString: isString, + isNumber: isNumber, + isObject: isObject, + isUndefined: isUndefined, + isDate: isDate, + isFile: isFile, + isBlob: isBlob, + isFunction: isFunction, + isStream: isStream, + isURLSearchParams: isURLSearchParams, + isStandardBrowserEnv: isStandardBrowserEnv, + forEach: forEach, + merge: merge, + deepMerge: deepMerge, + extend: extend, + trim: trim + }; + + +/***/ }), +/* 3 */ +/***/ (function(module, exports) { + + 'use strict'; + + module.exports = function bind(fn, thisArg) { + return function wrap() { + var args = new Array(arguments.length); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i]; + } + return fn.apply(thisArg, args); + }; + }; + + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + var buildURL = __webpack_require__(5); + var InterceptorManager = __webpack_require__(6); + var dispatchRequest = __webpack_require__(7); + var mergeConfig = __webpack_require__(22); + + /** + * Create a new instance of Axios + * + * @param {Object} instanceConfig The default config for the instance + */ + function Axios(instanceConfig) { + this.defaults = instanceConfig; + this.interceptors = { + request: new InterceptorManager(), + response: new InterceptorManager() + }; + } + + /** + * Dispatch a request + * + * @param {Object} config The config specific for this request (merged with this.defaults) + */ + Axios.prototype.request = function request(config) { + /*eslint no-param-reassign:0*/ + // Allow for axios('example/url'[, config]) a la fetch API + if (typeof config === 'string') { + config = arguments[1] || {}; + config.url = arguments[0]; + } else { + config = config || {}; + } + + config = mergeConfig(this.defaults, config); + + // Set config.method + if (config.method) { + config.method = config.method.toLowerCase(); + } else if (this.defaults.method) { + config.method = this.defaults.method.toLowerCase(); + } else { + config.method = 'get'; + } + + // Hook up interceptors middleware + var chain = [dispatchRequest, undefined]; + var promise = Promise.resolve(config); + + this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { + chain.unshift(interceptor.fulfilled, interceptor.rejected); + }); + + this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { + chain.push(interceptor.fulfilled, interceptor.rejected); + }); + + while (chain.length) { + promise = promise.then(chain.shift(), chain.shift()); + } + + return promise; + }; + + Axios.prototype.getUri = function getUri(config) { + config = mergeConfig(this.defaults, config); + return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\?/, ''); + }; + + // Provide aliases for supported request methods + utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { + /*eslint func-names:0*/ + Axios.prototype[method] = function(url, config) { + return this.request(utils.merge(config || {}, { + method: method, + url: url + })); + }; + }); + + utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + /*eslint func-names:0*/ + Axios.prototype[method] = function(url, data, config) { + return this.request(utils.merge(config || {}, { + method: method, + url: url, + data: data + })); + }; + }); + + module.exports = Axios; + + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + + function encode(val) { + return encodeURIComponent(val). + replace(/%40/gi, '@'). + replace(/%3A/gi, ':'). + replace(/%24/g, '$'). + replace(/%2C/gi, ','). + replace(/%20/g, '+'). + replace(/%5B/gi, '['). + replace(/%5D/gi, ']'); + } + + /** + * Build a URL by appending params to the end + * + * @param {string} url The base of the url (e.g., http://www.google.com) + * @param {object} [params] The params to be appended + * @returns {string} The formatted url + */ + module.exports = function buildURL(url, params, paramsSerializer) { + /*eslint no-param-reassign:0*/ + if (!params) { + return url; + } + + var serializedParams; + if (paramsSerializer) { + serializedParams = paramsSerializer(params); + } else if (utils.isURLSearchParams(params)) { + serializedParams = params.toString(); + } else { + var parts = []; + + utils.forEach(params, function serialize(val, key) { + if (val === null || typeof val === 'undefined') { + return; + } + + if (utils.isArray(val)) { + key = key + '[]'; + } else { + val = [val]; + } + + utils.forEach(val, function parseValue(v) { + if (utils.isDate(v)) { + v = v.toISOString(); + } else if (utils.isObject(v)) { + v = JSON.stringify(v); + } + parts.push(encode(key) + '=' + encode(v)); + }); + }); + + serializedParams = parts.join('&'); + } + + if (serializedParams) { + var hashmarkIndex = url.indexOf('#'); + if (hashmarkIndex !== -1) { + url = url.slice(0, hashmarkIndex); + } + + url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; + } + + return url; + }; + + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + + function InterceptorManager() { + this.handlers = []; + } + + /** + * Add a new interceptor to the stack + * + * @param {Function} fulfilled The function to handle `then` for a `Promise` + * @param {Function} rejected The function to handle `reject` for a `Promise` + * + * @return {Number} An ID used to remove interceptor later + */ + InterceptorManager.prototype.use = function use(fulfilled, rejected) { + this.handlers.push({ + fulfilled: fulfilled, + rejected: rejected + }); + return this.handlers.length - 1; + }; + + /** + * Remove an interceptor from the stack + * + * @param {Number} id The ID that was returned by `use` + */ + InterceptorManager.prototype.eject = function eject(id) { + if (this.handlers[id]) { + this.handlers[id] = null; + } + }; + + /** + * Iterate over all the registered interceptors + * + * This method is particularly useful for skipping over any + * interceptors that may have become `null` calling `eject`. + * + * @param {Function} fn The function to call for each interceptor + */ + InterceptorManager.prototype.forEach = function forEach(fn) { + utils.forEach(this.handlers, function forEachHandler(h) { + if (h !== null) { + fn(h); + } + }); + }; + + module.exports = InterceptorManager; + + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + var transformData = __webpack_require__(8); + var isCancel = __webpack_require__(9); + var defaults = __webpack_require__(10); + + /** + * Throws a `Cancel` if cancellation has been requested. + */ + function throwIfCancellationRequested(config) { + if (config.cancelToken) { + config.cancelToken.throwIfRequested(); + } + } + + /** + * Dispatch a request to the server using the configured adapter. + * + * @param {object} config The config that is to be used for the request + * @returns {Promise} The Promise to be fulfilled + */ + module.exports = function dispatchRequest(config) { + throwIfCancellationRequested(config); + + // Ensure headers exist + config.headers = config.headers || {}; + + // Transform request data + config.data = transformData( + config.data, + config.headers, + config.transformRequest + ); + + // Flatten headers + config.headers = utils.merge( + config.headers.common || {}, + config.headers[config.method] || {}, + config.headers + ); + + utils.forEach( + ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], + function cleanHeaderConfig(method) { + delete config.headers[method]; + } + ); + + var adapter = config.adapter || defaults.adapter; + + return adapter(config).then(function onAdapterResolution(response) { + throwIfCancellationRequested(config); + + // Transform response data + response.data = transformData( + response.data, + response.headers, + config.transformResponse + ); + + return response; + }, function onAdapterRejection(reason) { + if (!isCancel(reason)) { + throwIfCancellationRequested(config); + + // Transform response data + if (reason && reason.response) { + reason.response.data = transformData( + reason.response.data, + reason.response.headers, + config.transformResponse + ); + } + } + + return Promise.reject(reason); + }); + }; + + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + + /** + * Transform the data for a request or a response + * + * @param {Object|String} data The data to be transformed + * @param {Array} headers The headers for the request or response + * @param {Array|Function} fns A single function or Array of functions + * @returns {*} The resulting transformed data + */ + module.exports = function transformData(data, headers, fns) { + /*eslint no-param-reassign:0*/ + utils.forEach(fns, function transform(fn) { + data = fn(data, headers); + }); + + return data; + }; + + +/***/ }), +/* 9 */ +/***/ (function(module, exports) { + + 'use strict'; + + module.exports = function isCancel(value) { + return !!(value && value.__CANCEL__); + }; + + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + var normalizeHeaderName = __webpack_require__(11); + + var DEFAULT_CONTENT_TYPE = { + 'Content-Type': 'application/x-www-form-urlencoded' + }; + + function setContentTypeIfUnset(headers, value) { + if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) { + headers['Content-Type'] = value; + } + } + + function getDefaultAdapter() { + var adapter; + if (typeof XMLHttpRequest !== 'undefined') { + // For browsers use XHR adapter + adapter = __webpack_require__(12); + } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') { + // For node use HTTP adapter + adapter = __webpack_require__(12); + } + return adapter; + } + + var defaults = { + adapter: getDefaultAdapter(), + + transformRequest: [function transformRequest(data, headers) { + normalizeHeaderName(headers, 'Accept'); + normalizeHeaderName(headers, 'Content-Type'); + if (utils.isFormData(data) || + utils.isArrayBuffer(data) || + utils.isBuffer(data) || + utils.isStream(data) || + utils.isFile(data) || + utils.isBlob(data) + ) { + return data; + } + if (utils.isArrayBufferView(data)) { + return data.buffer; + } + if (utils.isURLSearchParams(data)) { + setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8'); + return data.toString(); + } + if (utils.isObject(data)) { + setContentTypeIfUnset(headers, 'application/json;charset=utf-8'); + return JSON.stringify(data); + } + return data; + }], + + transformResponse: [function transformResponse(data) { + /*eslint no-param-reassign:0*/ + if (typeof data === 'string') { + try { + data = JSON.parse(data); + } catch (e) { /* Ignore */ } + } + return data; + }], + + /** + * A timeout in milliseconds to abort a request. If set to 0 (default) a + * timeout is not created. + */ + timeout: 0, + + xsrfCookieName: 'XSRF-TOKEN', + xsrfHeaderName: 'X-XSRF-TOKEN', + + maxContentLength: -1, + + validateStatus: function validateStatus(status) { + return status >= 200 && status < 300; + } + }; + + defaults.headers = { + common: { + 'Accept': 'application/json, text/plain, */*' + } + }; + + utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) { + defaults.headers[method] = {}; + }); + + utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE); + }); + + module.exports = defaults; + + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + + module.exports = function normalizeHeaderName(headers, normalizedName) { + utils.forEach(headers, function processHeader(value, name) { + if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) { + headers[normalizedName] = value; + delete headers[name]; + } + }); + }; + + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + var settle = __webpack_require__(13); + var buildURL = __webpack_require__(5); + var buildFullPath = __webpack_require__(16); + var parseHeaders = __webpack_require__(19); + var isURLSameOrigin = __webpack_require__(20); + var createError = __webpack_require__(14); + + module.exports = function xhrAdapter(config) { + return new Promise(function dispatchXhrRequest(resolve, reject) { + var requestData = config.data; + var requestHeaders = config.headers; + + if (utils.isFormData(requestData)) { + delete requestHeaders['Content-Type']; // Let the browser set it + } + + var request = new XMLHttpRequest(); + + // HTTP basic authentication + if (config.auth) { + var username = config.auth.username || ''; + var password = config.auth.password || ''; + requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password); + } + + var fullPath = buildFullPath(config.baseURL, config.url); + request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); + + // Set the request timeout in MS + request.timeout = config.timeout; + + // Listen for ready state + request.onreadystatechange = function handleLoad() { + if (!request || request.readyState !== 4) { + return; + } + + // The request errored out and we didn't get a response, this will be + // handled by onerror instead + // With one exception: request that using file: protocol, most browsers + // will return status as 0 even though it's a successful request + if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) { + return; + } + + // Prepare the response + var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null; + var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response; + var response = { + data: responseData, + status: request.status, + statusText: request.statusText, + headers: responseHeaders, + config: config, + request: request + }; + + settle(resolve, reject, response); + + // Clean up request + request = null; + }; + + // Handle browser request cancellation (as opposed to a manual cancellation) + request.onabort = function handleAbort() { + if (!request) { + return; + } + + reject(createError('Request aborted', config, 'ECONNABORTED', request)); + + // Clean up request + request = null; + }; + + // Handle low level network errors + request.onerror = function handleError() { + // Real errors are hidden from us by the browser + // onerror should only fire if it's a network error + reject(createError('Network Error', config, null, request)); + + // Clean up request + request = null; + }; + + // Handle timeout + request.ontimeout = function handleTimeout() { + var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded'; + if (config.timeoutErrorMessage) { + timeoutErrorMessage = config.timeoutErrorMessage; + } + reject(createError(timeoutErrorMessage, config, 'ECONNABORTED', + request)); + + // Clean up request + request = null; + }; + + // Add xsrf header + // This is only done if running in a standard browser environment. + // Specifically not if we're in a web worker, or react-native. + if (utils.isStandardBrowserEnv()) { + var cookies = __webpack_require__(21); + + // Add xsrf header + var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? + cookies.read(config.xsrfCookieName) : + undefined; + + if (xsrfValue) { + requestHeaders[config.xsrfHeaderName] = xsrfValue; + } + } + + // Add headers to the request + if ('setRequestHeader' in request) { + utils.forEach(requestHeaders, function setRequestHeader(val, key) { + if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') { + // Remove Content-Type if data is undefined + delete requestHeaders[key]; + } else { + // Otherwise add header to the request + request.setRequestHeader(key, val); + } + }); + } + + // Add withCredentials to request if needed + if (!utils.isUndefined(config.withCredentials)) { + request.withCredentials = !!config.withCredentials; + } + + // Add responseType to request if needed + if (config.responseType) { + try { + request.responseType = config.responseType; + } catch (e) { + // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2. + // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function. + if (config.responseType !== 'json') { + throw e; + } + } + } + + // Handle progress if needed + if (typeof config.onDownloadProgress === 'function') { + request.addEventListener('progress', config.onDownloadProgress); + } + + // Not all browsers support upload events + if (typeof config.onUploadProgress === 'function' && request.upload) { + request.upload.addEventListener('progress', config.onUploadProgress); + } + + if (config.cancelToken) { + // Handle cancellation + config.cancelToken.promise.then(function onCanceled(cancel) { + if (!request) { + return; + } + + request.abort(); + reject(cancel); + // Clean up request + request = null; + }); + } + + if (requestData === undefined) { + requestData = null; + } + + // Send the request + request.send(requestData); + }); + }; + + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var createError = __webpack_require__(14); + + /** + * Resolve or reject a Promise based on response status. + * + * @param {Function} resolve A function that resolves the promise. + * @param {Function} reject A function that rejects the promise. + * @param {object} response The response. + */ + module.exports = function settle(resolve, reject, response) { + var validateStatus = response.config.validateStatus; + if (!validateStatus || validateStatus(response.status)) { + resolve(response); + } else { + reject(createError( + 'Request failed with status code ' + response.status, + response.config, + null, + response.request, + response + )); + } + }; + + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var enhanceError = __webpack_require__(15); + + /** + * Create an Error with the specified message, config, error code, request and response. + * + * @param {string} message The error message. + * @param {Object} config The config. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * @returns {Error} The created error. + */ + module.exports = function createError(message, config, code, request, response) { + var error = new Error(message); + return enhanceError(error, config, code, request, response); + }; + + +/***/ }), +/* 15 */ +/***/ (function(module, exports) { + + 'use strict'; + + /** + * Update an Error with the specified config, error code, and response. + * + * @param {Error} error The error to update. + * @param {Object} config The config. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * @returns {Error} The error. + */ + module.exports = function enhanceError(error, config, code, request, response) { + error.config = config; + if (code) { + error.code = code; + } + + error.request = request; + error.response = response; + error.isAxiosError = true; + + error.toJSON = function() { + return { + // Standard + message: this.message, + name: this.name, + // Microsoft + description: this.description, + number: this.number, + // Mozilla + fileName: this.fileName, + lineNumber: this.lineNumber, + columnNumber: this.columnNumber, + stack: this.stack, + // Axios + config: this.config, + code: this.code + }; + }; + return error; + }; + + +/***/ }), +/* 16 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var isAbsoluteURL = __webpack_require__(17); + var combineURLs = __webpack_require__(18); + + /** + * Creates a new URL by combining the baseURL with the requestedURL, + * only when the requestedURL is not already an absolute URL. + * If the requestURL is absolute, this function returns the requestedURL untouched. + * + * @param {string} baseURL The base URL + * @param {string} requestedURL Absolute or relative URL to combine + * @returns {string} The combined full path + */ + module.exports = function buildFullPath(baseURL, requestedURL) { + if (baseURL && !isAbsoluteURL(requestedURL)) { + return combineURLs(baseURL, requestedURL); + } + return requestedURL; + }; + + +/***/ }), +/* 17 */ +/***/ (function(module, exports) { + + 'use strict'; + + /** + * Determines whether the specified URL is absolute + * + * @param {string} url The URL to test + * @returns {boolean} True if the specified URL is absolute, otherwise false + */ + module.exports = function isAbsoluteURL(url) { + // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). + // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed + // by any combination of letters, digits, plus, period, or hyphen. + return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(url); + }; + + +/***/ }), +/* 18 */ +/***/ (function(module, exports) { + + 'use strict'; + + /** + * Creates a new URL by combining the specified URLs + * + * @param {string} baseURL The base URL + * @param {string} relativeURL The relative URL + * @returns {string} The combined URL + */ + module.exports = function combineURLs(baseURL, relativeURL) { + return relativeURL + ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '') + : baseURL; + }; + + +/***/ }), +/* 19 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + + // Headers whose duplicates are ignored by node + // c.f. https://nodejs.org/api/http.html#http_message_headers + var ignoreDuplicateOf = [ + 'age', 'authorization', 'content-length', 'content-type', 'etag', + 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', + 'last-modified', 'location', 'max-forwards', 'proxy-authorization', + 'referer', 'retry-after', 'user-agent' + ]; + + /** + * Parse headers into an object + * + * ``` + * Date: Wed, 27 Aug 2014 08:58:49 GMT + * Content-Type: application/json + * Connection: keep-alive + * Transfer-Encoding: chunked + * ``` + * + * @param {String} headers Headers needing to be parsed + * @returns {Object} Headers parsed into an object + */ + module.exports = function parseHeaders(headers) { + var parsed = {}; + var key; + var val; + var i; + + if (!headers) { return parsed; } + + utils.forEach(headers.split('\n'), function parser(line) { + i = line.indexOf(':'); + key = utils.trim(line.substr(0, i)).toLowerCase(); + val = utils.trim(line.substr(i + 1)); + + if (key) { + if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) { + return; + } + if (key === 'set-cookie') { + parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]); + } else { + parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; + } + } + }); + + return parsed; + }; + + +/***/ }), +/* 20 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + + module.exports = ( + utils.isStandardBrowserEnv() ? + + // Standard browser envs have full support of the APIs needed to test + // whether the request URL is of the same origin as current location. + (function standardBrowserEnv() { + var msie = /(msie|trident)/i.test(navigator.userAgent); + var urlParsingNode = document.createElement('a'); + var originURL; + + /** + * Parse a URL to discover it's components + * + * @param {String} url The URL to be parsed + * @returns {Object} + */ + function resolveURL(url) { + var href = url; + + if (msie) { + // IE needs attribute set twice to normalize properties + urlParsingNode.setAttribute('href', href); + href = urlParsingNode.href; + } + + urlParsingNode.setAttribute('href', href); + + // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils + return { + href: urlParsingNode.href, + protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '', + host: urlParsingNode.host, + search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', + hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', + hostname: urlParsingNode.hostname, + port: urlParsingNode.port, + pathname: (urlParsingNode.pathname.charAt(0) === '/') ? + urlParsingNode.pathname : + '/' + urlParsingNode.pathname + }; + } + + originURL = resolveURL(window.location.href); + + /** + * Determine if a URL shares the same origin as the current location + * + * @param {String} requestURL The URL to test + * @returns {boolean} True if URL shares the same origin, otherwise false + */ + return function isURLSameOrigin(requestURL) { + var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL; + return (parsed.protocol === originURL.protocol && + parsed.host === originURL.host); + }; + })() : + + // Non standard browser envs (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return function isURLSameOrigin() { + return true; + }; + })() + ); + + +/***/ }), +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + + module.exports = ( + utils.isStandardBrowserEnv() ? + + // Standard browser envs support document.cookie + (function standardBrowserEnv() { + return { + write: function write(name, value, expires, path, domain, secure) { + var cookie = []; + cookie.push(name + '=' + encodeURIComponent(value)); + + if (utils.isNumber(expires)) { + cookie.push('expires=' + new Date(expires).toGMTString()); + } + + if (utils.isString(path)) { + cookie.push('path=' + path); + } + + if (utils.isString(domain)) { + cookie.push('domain=' + domain); + } + + if (secure === true) { + cookie.push('secure'); + } + + document.cookie = cookie.join('; '); + }, + + read: function read(name) { + var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); + return (match ? decodeURIComponent(match[3]) : null); + }, + + remove: function remove(name) { + this.write(name, '', Date.now() - 86400000); + } + }; + })() : + + // Non standard browser env (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return { + write: function write() {}, + read: function read() { return null; }, + remove: function remove() {} + }; + })() + ); + + +/***/ }), +/* 22 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + + /** + * Config-specific merge-function which creates a new config-object + * by merging two configuration objects together. + * + * @param {Object} config1 + * @param {Object} config2 + * @returns {Object} New object resulting from merging config2 to config1 + */ + module.exports = function mergeConfig(config1, config2) { + // eslint-disable-next-line no-param-reassign + config2 = config2 || {}; + var config = {}; + + var valueFromConfig2Keys = ['url', 'method', 'params', 'data']; + var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy']; + var defaultToConfig2Keys = [ + 'baseURL', 'url', 'transformRequest', 'transformResponse', 'paramsSerializer', + 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', + 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', + 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent', + 'httpsAgent', 'cancelToken', 'socketPath' + ]; + + utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) { + if (typeof config2[prop] !== 'undefined') { + config[prop] = config2[prop]; + } + }); + + utils.forEach(mergeDeepPropertiesKeys, function mergeDeepProperties(prop) { + if (utils.isObject(config2[prop])) { + config[prop] = utils.deepMerge(config1[prop], config2[prop]); + } else if (typeof config2[prop] !== 'undefined') { + config[prop] = config2[prop]; + } else if (utils.isObject(config1[prop])) { + config[prop] = utils.deepMerge(config1[prop]); + } else if (typeof config1[prop] !== 'undefined') { + config[prop] = config1[prop]; + } + }); + + utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) { + if (typeof config2[prop] !== 'undefined') { + config[prop] = config2[prop]; + } else if (typeof config1[prop] !== 'undefined') { + config[prop] = config1[prop]; + } + }); + + var axiosKeys = valueFromConfig2Keys + .concat(mergeDeepPropertiesKeys) + .concat(defaultToConfig2Keys); + + var otherKeys = Object + .keys(config2) + .filter(function filterAxiosKeys(key) { + return axiosKeys.indexOf(key) === -1; + }); + + utils.forEach(otherKeys, function otherKeysDefaultToConfig2(prop) { + if (typeof config2[prop] !== 'undefined') { + config[prop] = config2[prop]; + } else if (typeof config1[prop] !== 'undefined') { + config[prop] = config1[prop]; + } + }); + + return config; + }; + + +/***/ }), +/* 23 */ +/***/ (function(module, exports) { + + 'use strict'; + + /** + * A `Cancel` is an object that is thrown when an operation is canceled. + * + * @class + * @param {string=} message The message. + */ + function Cancel(message) { + this.message = message; + } + + Cancel.prototype.toString = function toString() { + return 'Cancel' + (this.message ? ': ' + this.message : ''); + }; + + Cancel.prototype.__CANCEL__ = true; + + module.exports = Cancel; + + +/***/ }), +/* 24 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var Cancel = __webpack_require__(23); + + /** + * A `CancelToken` is an object that can be used to request cancellation of an operation. + * + * @class + * @param {Function} executor The executor function. + */ + function CancelToken(executor) { + if (typeof executor !== 'function') { + throw new TypeError('executor must be a function.'); + } + + var resolvePromise; + this.promise = new Promise(function promiseExecutor(resolve) { + resolvePromise = resolve; + }); + + var token = this; + executor(function cancel(message) { + if (token.reason) { + // Cancellation has already been requested + return; + } + + token.reason = new Cancel(message); + resolvePromise(token.reason); + }); + } + + /** + * Throws a `Cancel` if cancellation has been requested. + */ + CancelToken.prototype.throwIfRequested = function throwIfRequested() { + if (this.reason) { + throw this.reason; + } + }; + + /** + * Returns an object that contains a new `CancelToken` and a function that, when called, + * cancels the `CancelToken`. + */ + CancelToken.source = function source() { + var cancel; + var token = new CancelToken(function executor(c) { + cancel = c; + }); + return { + token: token, + cancel: cancel + }; + }; + + module.exports = CancelToken; + + +/***/ }), +/* 25 */ +/***/ (function(module, exports) { + + 'use strict'; + + /** + * Syntactic sugar for invoking a function and expanding an array for arguments. + * + * Common use case would be to use `Function.prototype.apply`. + * + * ```js + * function f(x, y, z) {} + * var args = [1, 2, 3]; + * f.apply(null, args); + * ``` + * + * With `spread` this example can be re-written. + * + * ```js + * spread(function(x, y, z) {})([1, 2, 3]); + * ``` + * + * @param {Function} callback + * @returns {Function} + */ + module.exports = function spread(callback) { + return function wrap(arr) { + return callback.apply(null, arr); + }; + }; + + +/***/ }) +/******/ ]) +}); +; +//# sourceMappingURL=axios.map \ No newline at end of file diff --git a/node_modules/axios/dist/axios.map b/node_modules/axios/dist/axios.map new file mode 100644 index 0000000..4370129 --- /dev/null +++ b/node_modules/axios/dist/axios.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 18e5718d1c92e108675b","webpack:///./index.js","webpack:///./lib/axios.js","webpack:///./lib/utils.js","webpack:///./lib/helpers/bind.js","webpack:///./lib/core/Axios.js","webpack:///./lib/helpers/buildURL.js","webpack:///./lib/core/InterceptorManager.js","webpack:///./lib/core/dispatchRequest.js","webpack:///./lib/core/transformData.js","webpack:///./lib/cancel/isCancel.js","webpack:///./lib/defaults.js","webpack:///./lib/helpers/normalizeHeaderName.js","webpack:///./lib/adapters/xhr.js","webpack:///./lib/core/settle.js","webpack:///./lib/core/createError.js","webpack:///./lib/core/enhanceError.js","webpack:///./lib/core/buildFullPath.js","webpack:///./lib/helpers/isAbsoluteURL.js","webpack:///./lib/helpers/combineURLs.js","webpack:///./lib/helpers/parseHeaders.js","webpack:///./lib/helpers/isURLSameOrigin.js","webpack:///./lib/helpers/cookies.js","webpack:///./lib/core/mergeConfig.js","webpack:///./lib/cancel/Cancel.js","webpack:///./lib/cancel/CancelToken.js","webpack:///./lib/helpers/spread.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACtCA,yC;;;;;;ACAA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,MAAM;AAClB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;;;;;;ACpDA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,aAAa;AACxB,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAmC,OAAO;AAC1C;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB,SAAS,GAAG,SAAS;AAC5C,4BAA2B;AAC3B;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA,wCAAuC,OAAO;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,iCAAgC;AAChC,MAAK;AACL;AACA;AACA;;AAEA,wCAAuC,OAAO;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACvVA;;AAEA;AACA;AACA;AACA,oBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;;;;;;;ACVA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iDAAgD;AAChD;AACA;AACA,MAAK;AACL;AACA,EAAC;;AAED;AACA;AACA;AACA,iDAAgD;AAChD;AACA;AACA;AACA,MAAK;AACL;AACA,EAAC;;AAED;;;;;;;AC7FA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,QAAO;AACP,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACtEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB;AACA,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;;;;;;;ACnDA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAA+B;AAC/B,wCAAuC;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;;;;;;;AC9EA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,cAAc;AACzB,YAAW,MAAM;AACjB,YAAW,eAAe;AAC1B,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;;;;;;ACnBA;;AAEA;AACA;AACA;;;;;;;ACJA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAwE;AACxE;AACA;AACA;AACA,wDAAuD;AACvD;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,QAAO,YAAY;AACnB;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;;;;;;;AChGA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;;;;;;ACXA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6CAA4C;AAC5C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;;;;;;;ACnLA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxBA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;;;;;;ACjBA;;AAEA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzCA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnBA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACbA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;;;;;;ACbA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAiB,eAAe;;AAEhC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;;;;;;;ACpDA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAc,OAAO;AACrB,iBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,eAAc,OAAO;AACrB,iBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;;;;;;ACnEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2CAA0C;AAC1C,UAAS;;AAET;AACA,6DAA4D,wBAAwB;AACpF;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,mCAAkC;AAClC,gCAA+B,aAAa,EAAE;AAC9C;AACA;AACA,MAAK;AACL;;;;;;;ACpDA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;;;;;;;ACxEA;;AAEA;AACA;AACA;AACA;AACA,YAAW,QAAQ;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;;;;;;AClBA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACxDA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAA+B;AAC/B;AACA;AACA,YAAW,SAAS;AACpB,cAAa;AACb;AACA;AACA;AACA;AACA;AACA","file":"axios.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"axios\"] = factory();\n\telse\n\t\troot[\"axios\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 18e5718d1c92e108675b","module.exports = require('./lib/axios');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./index.js\n// module id = 0\n// module chunks = 0","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/axios.js\n// module id = 1\n// module chunks = 0","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction deepMerge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/utils.js\n// module id = 2\n// module chunks = 0","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/bind.js\n// module id = 3\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/Axios.js\n// module id = 4\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/buildURL.js\n// module id = 5\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/InterceptorManager.js\n// module id = 6\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/dispatchRequest.js\n// module id = 7\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/transformData.js\n// module id = 8\n// module chunks = 0","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/cancel/isCancel.js\n// module id = 9\n// module chunks = 0","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/defaults.js\n// module id = 10\n// module chunks = 0","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/normalizeHeaderName.js\n// module id = 11\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/adapters/xhr.js\n// module id = 12\n// module chunks = 0","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/settle.js\n// module id = 13\n// module chunks = 0","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/createError.js\n// module id = 14\n// module chunks = 0","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/enhanceError.js\n// module id = 15\n// module chunks = 0","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/buildFullPath.js\n// module id = 16\n// module chunks = 0","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/isAbsoluteURL.js\n// module id = 17\n// module chunks = 0","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/combineURLs.js\n// module id = 18\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/parseHeaders.js\n// module id = 19\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/isURLSameOrigin.js\n// module id = 20\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/cookies.js\n// module id = 21\n// module chunks = 0","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'params', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy'];\n var defaultToConfig2Keys = [\n 'baseURL', 'url', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress',\n 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath'\n ];\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, function mergeDeepProperties(prop) {\n if (utils.isObject(config2[prop])) {\n config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n } else if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (utils.isObject(config1[prop])) {\n config[prop] = utils.deepMerge(config1[prop]);\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys);\n\n var otherKeys = Object\n .keys(config2)\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, function otherKeysDefaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n return config;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/mergeConfig.js\n// module id = 22\n// module chunks = 0","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/cancel/Cancel.js\n// module id = 23\n// module chunks = 0","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/cancel/CancelToken.js\n// module id = 24\n// module chunks = 0","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/spread.js\n// module id = 25\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/node_modules/axios/dist/axios.min.js b/node_modules/axios/dist/axios.min.js new file mode 100644 index 0000000..b87c0e3 --- /dev/null +++ b/node_modules/axios/dist/axios.min.js @@ -0,0 +1,3 @@ +/* axios v0.19.2 | (c) 2020 by Matt Zabriskie */ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.axios=t():e.axios=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){e.exports=n(1)},function(e,t,n){"use strict";function r(e){var t=new s(e),n=i(s.prototype.request,t);return o.extend(n,s.prototype,t),o.extend(n,t),n}var o=n(2),i=n(3),s=n(4),a=n(22),u=n(10),c=r(u);c.Axios=s,c.create=function(e){return r(a(c.defaults,e))},c.Cancel=n(23),c.CancelToken=n(24),c.isCancel=n(9),c.all=function(e){return Promise.all(e)},c.spread=n(25),e.exports=c,e.exports.default=c},function(e,t,n){"use strict";function r(e){return"[object Array]"===j.call(e)}function o(e){return"undefined"==typeof e}function i(e){return null!==e&&!o(e)&&null!==e.constructor&&!o(e.constructor)&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}function s(e){return"[object ArrayBuffer]"===j.call(e)}function a(e){return"undefined"!=typeof FormData&&e instanceof FormData}function u(e){var t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer}function c(e){return"string"==typeof e}function f(e){return"number"==typeof e}function p(e){return null!==e&&"object"==typeof e}function d(e){return"[object Date]"===j.call(e)}function l(e){return"[object File]"===j.call(e)}function h(e){return"[object Blob]"===j.call(e)}function m(e){return"[object Function]"===j.call(e)}function y(e){return p(e)&&m(e.pipe)}function g(e){return"undefined"!=typeof URLSearchParams&&e instanceof URLSearchParams}function v(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}function x(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!=typeof window&&"undefined"!=typeof document)}function w(e,t){if(null!==e&&"undefined"!=typeof e)if("object"!=typeof e&&(e=[e]),r(e))for(var n=0,o=e.length;n=200&&e<300}};u.headers={common:{Accept:"application/json, text/plain, */*"}},i.forEach(["delete","get","head"],function(e){u.headers[e]={}}),i.forEach(["post","put","patch"],function(e){u.headers[e]=i.merge(a)}),e.exports=u},function(e,t,n){"use strict";var r=n(2);e.exports=function(e,t){r.forEach(e,function(n,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[r])})}},function(e,t,n){"use strict";var r=n(2),o=n(13),i=n(5),s=n(16),a=n(19),u=n(20),c=n(14);e.exports=function(e){return new Promise(function(t,f){var p=e.data,d=e.headers;r.isFormData(p)&&delete d["Content-Type"];var l=new XMLHttpRequest;if(e.auth){var h=e.auth.username||"",m=e.auth.password||"";d.Authorization="Basic "+btoa(h+":"+m)}var y=s(e.baseURL,e.url);if(l.open(e.method.toUpperCase(),i(y,e.params,e.paramsSerializer),!0),l.timeout=e.timeout,l.onreadystatechange=function(){if(l&&4===l.readyState&&(0!==l.status||l.responseURL&&0===l.responseURL.indexOf("file:"))){var n="getAllResponseHeaders"in l?a(l.getAllResponseHeaders()):null,r=e.responseType&&"text"!==e.responseType?l.response:l.responseText,i={data:r,status:l.status,statusText:l.statusText,headers:n,config:e,request:l};o(t,f,i),l=null}},l.onabort=function(){l&&(f(c("Request aborted",e,"ECONNABORTED",l)),l=null)},l.onerror=function(){f(c("Network Error",e,null,l)),l=null},l.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),f(c(t,e,"ECONNABORTED",l)),l=null},r.isStandardBrowserEnv()){var g=n(21),v=(e.withCredentials||u(y))&&e.xsrfCookieName?g.read(e.xsrfCookieName):void 0;v&&(d[e.xsrfHeaderName]=v)}if("setRequestHeader"in l&&r.forEach(d,function(e,t){"undefined"==typeof p&&"content-type"===t.toLowerCase()?delete d[t]:l.setRequestHeader(t,e)}),r.isUndefined(e.withCredentials)||(l.withCredentials=!!e.withCredentials),e.responseType)try{l.responseType=e.responseType}catch(t){if("json"!==e.responseType)throw t}"function"==typeof e.onDownloadProgress&&l.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&l.upload&&l.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then(function(e){l&&(l.abort(),f(e),l=null)}),void 0===p&&(p=null),l.send(p)})}},function(e,t,n){"use strict";var r=n(14);e.exports=function(e,t,n){var o=n.config.validateStatus;!o||o(n.status)?e(n):t(r("Request failed with status code "+n.status,n.config,null,n.request,n))}},function(e,t,n){"use strict";var r=n(15);e.exports=function(e,t,n,o,i){var s=new Error(e);return r(s,t,n,o,i)}},function(e,t){"use strict";e.exports=function(e,t,n,r,o){return e.config=t,n&&(e.code=n),e.request=r,e.response=o,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},function(e,t,n){"use strict";var r=n(17),o=n(18);e.exports=function(e,t){return e&&!r(t)?o(e,t):t}},function(e,t){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},function(e,t){"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},function(e,t,n){"use strict";var r=n(2),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,i,s={};return e?(r.forEach(e.split("\n"),function(e){if(i=e.indexOf(":"),t=r.trim(e.substr(0,i)).toLowerCase(),n=r.trim(e.substr(i+1)),t){if(s[t]&&o.indexOf(t)>=0)return;"set-cookie"===t?s[t]=(s[t]?s[t]:[]).concat([n]):s[t]=s[t]?s[t]+", "+n:n}}),s):s}},function(e,t,n){"use strict";var r=n(2);e.exports=r.isStandardBrowserEnv()?function(){function e(e){var t=e;return n&&(o.setAttribute("href",t),t=o.href),o.setAttribute("href",t),{href:o.href,protocol:o.protocol?o.protocol.replace(/:$/,""):"",host:o.host,search:o.search?o.search.replace(/^\?/,""):"",hash:o.hash?o.hash.replace(/^#/,""):"",hostname:o.hostname,port:o.port,pathname:"/"===o.pathname.charAt(0)?o.pathname:"/"+o.pathname}}var t,n=/(msie|trident)/i.test(navigator.userAgent),o=document.createElement("a");return t=e(window.location.href),function(n){var o=r.isString(n)?e(n):n;return o.protocol===t.protocol&&o.host===t.host}}():function(){return function(){return!0}}()},function(e,t,n){"use strict";var r=n(2);e.exports=r.isStandardBrowserEnv()?function(){return{write:function(e,t,n,o,i,s){var a=[];a.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),r.isString(o)&&a.push("path="+o),r.isString(i)&&a.push("domain="+i),s===!0&&a.push("secure"),document.cookie=a.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()},function(e,t,n){"use strict";var r=n(2);e.exports=function(e,t){t=t||{};var n={},o=["url","method","params","data"],i=["headers","auth","proxy"],s=["baseURL","url","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"];r.forEach(o,function(e){"undefined"!=typeof t[e]&&(n[e]=t[e])}),r.forEach(i,function(o){r.isObject(t[o])?n[o]=r.deepMerge(e[o],t[o]):"undefined"!=typeof t[o]?n[o]=t[o]:r.isObject(e[o])?n[o]=r.deepMerge(e[o]):"undefined"!=typeof e[o]&&(n[o]=e[o])}),r.forEach(s,function(r){"undefined"!=typeof t[r]?n[r]=t[r]:"undefined"!=typeof e[r]&&(n[r]=e[r])});var a=o.concat(i).concat(s),u=Object.keys(t).filter(function(e){return a.indexOf(e)===-1});return r.forEach(u,function(r){"undefined"!=typeof t[r]?n[r]=t[r]:"undefined"!=typeof e[r]&&(n[r]=e[r])}),n}},function(e,t){"use strict";function n(e){this.message=e}n.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},n.prototype.__CANCEL__=!0,e.exports=n},function(e,t,n){"use strict";function r(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(e){t=e});var n=this;e(function(e){n.reason||(n.reason=new o(e),t(n.reason))})}var o=n(23);r.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},r.source=function(){var e,t=new r(function(t){e=t});return{token:t,cancel:e}},e.exports=r},function(e,t){"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}}])}); +//# sourceMappingURL=axios.min.map \ No newline at end of file diff --git a/node_modules/axios/dist/axios.min.map b/node_modules/axios/dist/axios.min.map new file mode 100644 index 0000000..82849cc --- /dev/null +++ b/node_modules/axios/dist/axios.min.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///axios.min.js","webpack:///webpack/bootstrap be8c45a40d7c235b46c5","webpack:///./index.js","webpack:///./lib/axios.js","webpack:///./lib/utils.js","webpack:///./lib/helpers/bind.js","webpack:///./lib/core/Axios.js","webpack:///./lib/helpers/buildURL.js","webpack:///./lib/core/InterceptorManager.js","webpack:///./lib/core/dispatchRequest.js","webpack:///./lib/core/transformData.js","webpack:///./lib/cancel/isCancel.js","webpack:///./lib/defaults.js","webpack:///./lib/helpers/normalizeHeaderName.js","webpack:///./lib/adapters/xhr.js","webpack:///./lib/core/settle.js","webpack:///./lib/core/createError.js","webpack:///./lib/core/enhanceError.js","webpack:///./lib/core/buildFullPath.js","webpack:///./lib/helpers/isAbsoluteURL.js","webpack:///./lib/helpers/combineURLs.js","webpack:///./lib/helpers/parseHeaders.js","webpack:///./lib/helpers/isURLSameOrigin.js","webpack:///./lib/helpers/cookies.js","webpack:///./lib/core/mergeConfig.js","webpack:///./lib/cancel/Cancel.js","webpack:///./lib/cancel/CancelToken.js","webpack:///./lib/helpers/spread.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","createInstance","defaultConfig","context","Axios","instance","bind","prototype","request","utils","extend","mergeConfig","defaults","axios","create","instanceConfig","Cancel","CancelToken","isCancel","all","promises","Promise","spread","default","isArray","val","toString","isUndefined","isBuffer","constructor","isArrayBuffer","isFormData","FormData","isArrayBufferView","result","ArrayBuffer","isView","buffer","isString","isNumber","isObject","isDate","isFile","isBlob","isFunction","isStream","pipe","isURLSearchParams","URLSearchParams","trim","str","replace","isStandardBrowserEnv","navigator","product","window","document","forEach","obj","fn","i","l","length","key","Object","hasOwnProperty","merge","assignValue","arguments","deepMerge","a","b","thisArg","args","Array","apply","interceptors","InterceptorManager","response","buildURL","dispatchRequest","config","url","method","toLowerCase","chain","undefined","promise","resolve","interceptor","unshift","fulfilled","rejected","push","then","shift","getUri","params","paramsSerializer","data","encode","encodeURIComponent","serializedParams","parts","v","toISOString","JSON","stringify","join","hashmarkIndex","indexOf","slice","handlers","use","eject","h","throwIfCancellationRequested","cancelToken","throwIfRequested","transformData","headers","transformRequest","common","adapter","transformResponse","reason","reject","fns","value","__CANCEL__","setContentTypeIfUnset","getDefaultAdapter","XMLHttpRequest","process","normalizeHeaderName","DEFAULT_CONTENT_TYPE","Content-Type","parse","e","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","validateStatus","status","Accept","normalizedName","name","toUpperCase","settle","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestData","requestHeaders","auth","username","password","Authorization","btoa","fullPath","baseURL","open","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","responseData","responseType","responseText","statusText","onabort","onerror","ontimeout","timeoutErrorMessage","cookies","xsrfValue","withCredentials","read","setRequestHeader","onDownloadProgress","addEventListener","onUploadProgress","upload","cancel","abort","send","enhanceError","message","code","error","Error","isAxiosError","toJSON","description","number","fileName","lineNumber","columnNumber","stack","isAbsoluteURL","combineURLs","requestedURL","test","relativeURL","ignoreDuplicateOf","parsed","split","line","substr","concat","resolveURL","href","msie","urlParsingNode","setAttribute","protocol","host","search","hash","hostname","port","pathname","charAt","originURL","userAgent","createElement","location","requestURL","write","expires","path","domain","secure","cookie","Date","toGMTString","match","RegExp","decodeURIComponent","remove","now","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","prop","axiosKeys","otherKeys","keys","filter","executor","TypeError","resolvePromise","token","source","callback","arr"],"mappings":"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","file":"axios.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"axios\"] = factory();\n\telse\n\t\troot[\"axios\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"axios\"] = factory();\n\telse\n\t\troot[\"axios\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(1);\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\tvar bind = __webpack_require__(3);\n\tvar Axios = __webpack_require__(4);\n\tvar mergeConfig = __webpack_require__(22);\n\tvar defaults = __webpack_require__(10);\n\t\n\t/**\n\t * Create an instance of Axios\n\t *\n\t * @param {Object} defaultConfig The default config for the instance\n\t * @return {Axios} A new instance of Axios\n\t */\n\tfunction createInstance(defaultConfig) {\n\t var context = new Axios(defaultConfig);\n\t var instance = bind(Axios.prototype.request, context);\n\t\n\t // Copy axios.prototype to instance\n\t utils.extend(instance, Axios.prototype, context);\n\t\n\t // Copy context to instance\n\t utils.extend(instance, context);\n\t\n\t return instance;\n\t}\n\t\n\t// Create the default instance to be exported\n\tvar axios = createInstance(defaults);\n\t\n\t// Expose Axios class to allow class inheritance\n\taxios.Axios = Axios;\n\t\n\t// Factory for creating new instances\n\taxios.create = function create(instanceConfig) {\n\t return createInstance(mergeConfig(axios.defaults, instanceConfig));\n\t};\n\t\n\t// Expose Cancel & CancelToken\n\taxios.Cancel = __webpack_require__(23);\n\taxios.CancelToken = __webpack_require__(24);\n\taxios.isCancel = __webpack_require__(9);\n\t\n\t// Expose all/spread\n\taxios.all = function all(promises) {\n\t return Promise.all(promises);\n\t};\n\taxios.spread = __webpack_require__(25);\n\t\n\tmodule.exports = axios;\n\t\n\t// Allow use of default import syntax in TypeScript\n\tmodule.exports.default = axios;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar bind = __webpack_require__(3);\n\t\n\t/*global toString:true*/\n\t\n\t// utils is a library of generic helper functions non-specific to axios\n\t\n\tvar toString = Object.prototype.toString;\n\t\n\t/**\n\t * Determine if a value is an Array\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is an Array, otherwise false\n\t */\n\tfunction isArray(val) {\n\t return toString.call(val) === '[object Array]';\n\t}\n\t\n\t/**\n\t * Determine if a value is undefined\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if the value is undefined, otherwise false\n\t */\n\tfunction isUndefined(val) {\n\t return typeof val === 'undefined';\n\t}\n\t\n\t/**\n\t * Determine if a value is a Buffer\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a Buffer, otherwise false\n\t */\n\tfunction isBuffer(val) {\n\t return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n\t && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n\t}\n\t\n\t/**\n\t * Determine if a value is an ArrayBuffer\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n\t */\n\tfunction isArrayBuffer(val) {\n\t return toString.call(val) === '[object ArrayBuffer]';\n\t}\n\t\n\t/**\n\t * Determine if a value is a FormData\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is an FormData, otherwise false\n\t */\n\tfunction isFormData(val) {\n\t return (typeof FormData !== 'undefined') && (val instanceof FormData);\n\t}\n\t\n\t/**\n\t * Determine if a value is a view on an ArrayBuffer\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n\t */\n\tfunction isArrayBufferView(val) {\n\t var result;\n\t if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n\t result = ArrayBuffer.isView(val);\n\t } else {\n\t result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n\t }\n\t return result;\n\t}\n\t\n\t/**\n\t * Determine if a value is a String\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a String, otherwise false\n\t */\n\tfunction isString(val) {\n\t return typeof val === 'string';\n\t}\n\t\n\t/**\n\t * Determine if a value is a Number\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a Number, otherwise false\n\t */\n\tfunction isNumber(val) {\n\t return typeof val === 'number';\n\t}\n\t\n\t/**\n\t * Determine if a value is an Object\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is an Object, otherwise false\n\t */\n\tfunction isObject(val) {\n\t return val !== null && typeof val === 'object';\n\t}\n\t\n\t/**\n\t * Determine if a value is a Date\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a Date, otherwise false\n\t */\n\tfunction isDate(val) {\n\t return toString.call(val) === '[object Date]';\n\t}\n\t\n\t/**\n\t * Determine if a value is a File\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a File, otherwise false\n\t */\n\tfunction isFile(val) {\n\t return toString.call(val) === '[object File]';\n\t}\n\t\n\t/**\n\t * Determine if a value is a Blob\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a Blob, otherwise false\n\t */\n\tfunction isBlob(val) {\n\t return toString.call(val) === '[object Blob]';\n\t}\n\t\n\t/**\n\t * Determine if a value is a Function\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a Function, otherwise false\n\t */\n\tfunction isFunction(val) {\n\t return toString.call(val) === '[object Function]';\n\t}\n\t\n\t/**\n\t * Determine if a value is a Stream\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a Stream, otherwise false\n\t */\n\tfunction isStream(val) {\n\t return isObject(val) && isFunction(val.pipe);\n\t}\n\t\n\t/**\n\t * Determine if a value is a URLSearchParams object\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n\t */\n\tfunction isURLSearchParams(val) {\n\t return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n\t}\n\t\n\t/**\n\t * Trim excess whitespace off the beginning and end of a string\n\t *\n\t * @param {String} str The String to trim\n\t * @returns {String} The String freed of excess whitespace\n\t */\n\tfunction trim(str) {\n\t return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n\t}\n\t\n\t/**\n\t * Determine if we're running in a standard browser environment\n\t *\n\t * This allows axios to run in a web worker, and react-native.\n\t * Both environments support XMLHttpRequest, but not fully standard globals.\n\t *\n\t * web workers:\n\t * typeof window -> undefined\n\t * typeof document -> undefined\n\t *\n\t * react-native:\n\t * navigator.product -> 'ReactNative'\n\t * nativescript\n\t * navigator.product -> 'NativeScript' or 'NS'\n\t */\n\tfunction isStandardBrowserEnv() {\n\t if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n\t navigator.product === 'NativeScript' ||\n\t navigator.product === 'NS')) {\n\t return false;\n\t }\n\t return (\n\t typeof window !== 'undefined' &&\n\t typeof document !== 'undefined'\n\t );\n\t}\n\t\n\t/**\n\t * Iterate over an Array or an Object invoking a function for each item.\n\t *\n\t * If `obj` is an Array callback will be called passing\n\t * the value, index, and complete array for each item.\n\t *\n\t * If 'obj' is an Object callback will be called passing\n\t * the value, key, and complete object for each property.\n\t *\n\t * @param {Object|Array} obj The object to iterate\n\t * @param {Function} fn The callback to invoke for each item\n\t */\n\tfunction forEach(obj, fn) {\n\t // Don't bother if no value provided\n\t if (obj === null || typeof obj === 'undefined') {\n\t return;\n\t }\n\t\n\t // Force an array if not already something iterable\n\t if (typeof obj !== 'object') {\n\t /*eslint no-param-reassign:0*/\n\t obj = [obj];\n\t }\n\t\n\t if (isArray(obj)) {\n\t // Iterate over array values\n\t for (var i = 0, l = obj.length; i < l; i++) {\n\t fn.call(null, obj[i], i, obj);\n\t }\n\t } else {\n\t // Iterate over object keys\n\t for (var key in obj) {\n\t if (Object.prototype.hasOwnProperty.call(obj, key)) {\n\t fn.call(null, obj[key], key, obj);\n\t }\n\t }\n\t }\n\t}\n\t\n\t/**\n\t * Accepts varargs expecting each argument to be an object, then\n\t * immutably merges the properties of each object and returns result.\n\t *\n\t * When multiple objects contain the same key the later object in\n\t * the arguments list will take precedence.\n\t *\n\t * Example:\n\t *\n\t * ```js\n\t * var result = merge({foo: 123}, {foo: 456});\n\t * console.log(result.foo); // outputs 456\n\t * ```\n\t *\n\t * @param {Object} obj1 Object to merge\n\t * @returns {Object} Result of all merge properties\n\t */\n\tfunction merge(/* obj1, obj2, obj3, ... */) {\n\t var result = {};\n\t function assignValue(val, key) {\n\t if (typeof result[key] === 'object' && typeof val === 'object') {\n\t result[key] = merge(result[key], val);\n\t } else {\n\t result[key] = val;\n\t }\n\t }\n\t\n\t for (var i = 0, l = arguments.length; i < l; i++) {\n\t forEach(arguments[i], assignValue);\n\t }\n\t return result;\n\t}\n\t\n\t/**\n\t * Function equal to merge with the difference being that no reference\n\t * to original objects is kept.\n\t *\n\t * @see merge\n\t * @param {Object} obj1 Object to merge\n\t * @returns {Object} Result of all merge properties\n\t */\n\tfunction deepMerge(/* obj1, obj2, obj3, ... */) {\n\t var result = {};\n\t function assignValue(val, key) {\n\t if (typeof result[key] === 'object' && typeof val === 'object') {\n\t result[key] = deepMerge(result[key], val);\n\t } else if (typeof val === 'object') {\n\t result[key] = deepMerge({}, val);\n\t } else {\n\t result[key] = val;\n\t }\n\t }\n\t\n\t for (var i = 0, l = arguments.length; i < l; i++) {\n\t forEach(arguments[i], assignValue);\n\t }\n\t return result;\n\t}\n\t\n\t/**\n\t * Extends object a by mutably adding to it the properties of object b.\n\t *\n\t * @param {Object} a The object to be extended\n\t * @param {Object} b The object to copy properties from\n\t * @param {Object} thisArg The object to bind function to\n\t * @return {Object} The resulting value of object a\n\t */\n\tfunction extend(a, b, thisArg) {\n\t forEach(b, function assignValue(val, key) {\n\t if (thisArg && typeof val === 'function') {\n\t a[key] = bind(val, thisArg);\n\t } else {\n\t a[key] = val;\n\t }\n\t });\n\t return a;\n\t}\n\t\n\tmodule.exports = {\n\t isArray: isArray,\n\t isArrayBuffer: isArrayBuffer,\n\t isBuffer: isBuffer,\n\t isFormData: isFormData,\n\t isArrayBufferView: isArrayBufferView,\n\t isString: isString,\n\t isNumber: isNumber,\n\t isObject: isObject,\n\t isUndefined: isUndefined,\n\t isDate: isDate,\n\t isFile: isFile,\n\t isBlob: isBlob,\n\t isFunction: isFunction,\n\t isStream: isStream,\n\t isURLSearchParams: isURLSearchParams,\n\t isStandardBrowserEnv: isStandardBrowserEnv,\n\t forEach: forEach,\n\t merge: merge,\n\t deepMerge: deepMerge,\n\t extend: extend,\n\t trim: trim\n\t};\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tmodule.exports = function bind(fn, thisArg) {\n\t return function wrap() {\n\t var args = new Array(arguments.length);\n\t for (var i = 0; i < args.length; i++) {\n\t args[i] = arguments[i];\n\t }\n\t return fn.apply(thisArg, args);\n\t };\n\t};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\tvar buildURL = __webpack_require__(5);\n\tvar InterceptorManager = __webpack_require__(6);\n\tvar dispatchRequest = __webpack_require__(7);\n\tvar mergeConfig = __webpack_require__(22);\n\t\n\t/**\n\t * Create a new instance of Axios\n\t *\n\t * @param {Object} instanceConfig The default config for the instance\n\t */\n\tfunction Axios(instanceConfig) {\n\t this.defaults = instanceConfig;\n\t this.interceptors = {\n\t request: new InterceptorManager(),\n\t response: new InterceptorManager()\n\t };\n\t}\n\t\n\t/**\n\t * Dispatch a request\n\t *\n\t * @param {Object} config The config specific for this request (merged with this.defaults)\n\t */\n\tAxios.prototype.request = function request(config) {\n\t /*eslint no-param-reassign:0*/\n\t // Allow for axios('example/url'[, config]) a la fetch API\n\t if (typeof config === 'string') {\n\t config = arguments[1] || {};\n\t config.url = arguments[0];\n\t } else {\n\t config = config || {};\n\t }\n\t\n\t config = mergeConfig(this.defaults, config);\n\t\n\t // Set config.method\n\t if (config.method) {\n\t config.method = config.method.toLowerCase();\n\t } else if (this.defaults.method) {\n\t config.method = this.defaults.method.toLowerCase();\n\t } else {\n\t config.method = 'get';\n\t }\n\t\n\t // Hook up interceptors middleware\n\t var chain = [dispatchRequest, undefined];\n\t var promise = Promise.resolve(config);\n\t\n\t this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n\t chain.unshift(interceptor.fulfilled, interceptor.rejected);\n\t });\n\t\n\t this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n\t chain.push(interceptor.fulfilled, interceptor.rejected);\n\t });\n\t\n\t while (chain.length) {\n\t promise = promise.then(chain.shift(), chain.shift());\n\t }\n\t\n\t return promise;\n\t};\n\t\n\tAxios.prototype.getUri = function getUri(config) {\n\t config = mergeConfig(this.defaults, config);\n\t return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n\t};\n\t\n\t// Provide aliases for supported request methods\n\tutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n\t /*eslint func-names:0*/\n\t Axios.prototype[method] = function(url, config) {\n\t return this.request(utils.merge(config || {}, {\n\t method: method,\n\t url: url\n\t }));\n\t };\n\t});\n\t\n\tutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n\t /*eslint func-names:0*/\n\t Axios.prototype[method] = function(url, data, config) {\n\t return this.request(utils.merge(config || {}, {\n\t method: method,\n\t url: url,\n\t data: data\n\t }));\n\t };\n\t});\n\t\n\tmodule.exports = Axios;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\tfunction encode(val) {\n\t return encodeURIComponent(val).\n\t replace(/%40/gi, '@').\n\t replace(/%3A/gi, ':').\n\t replace(/%24/g, '$').\n\t replace(/%2C/gi, ',').\n\t replace(/%20/g, '+').\n\t replace(/%5B/gi, '[').\n\t replace(/%5D/gi, ']');\n\t}\n\t\n\t/**\n\t * Build a URL by appending params to the end\n\t *\n\t * @param {string} url The base of the url (e.g., http://www.google.com)\n\t * @param {object} [params] The params to be appended\n\t * @returns {string} The formatted url\n\t */\n\tmodule.exports = function buildURL(url, params, paramsSerializer) {\n\t /*eslint no-param-reassign:0*/\n\t if (!params) {\n\t return url;\n\t }\n\t\n\t var serializedParams;\n\t if (paramsSerializer) {\n\t serializedParams = paramsSerializer(params);\n\t } else if (utils.isURLSearchParams(params)) {\n\t serializedParams = params.toString();\n\t } else {\n\t var parts = [];\n\t\n\t utils.forEach(params, function serialize(val, key) {\n\t if (val === null || typeof val === 'undefined') {\n\t return;\n\t }\n\t\n\t if (utils.isArray(val)) {\n\t key = key + '[]';\n\t } else {\n\t val = [val];\n\t }\n\t\n\t utils.forEach(val, function parseValue(v) {\n\t if (utils.isDate(v)) {\n\t v = v.toISOString();\n\t } else if (utils.isObject(v)) {\n\t v = JSON.stringify(v);\n\t }\n\t parts.push(encode(key) + '=' + encode(v));\n\t });\n\t });\n\t\n\t serializedParams = parts.join('&');\n\t }\n\t\n\t if (serializedParams) {\n\t var hashmarkIndex = url.indexOf('#');\n\t if (hashmarkIndex !== -1) {\n\t url = url.slice(0, hashmarkIndex);\n\t }\n\t\n\t url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n\t }\n\t\n\t return url;\n\t};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\tfunction InterceptorManager() {\n\t this.handlers = [];\n\t}\n\t\n\t/**\n\t * Add a new interceptor to the stack\n\t *\n\t * @param {Function} fulfilled The function to handle `then` for a `Promise`\n\t * @param {Function} rejected The function to handle `reject` for a `Promise`\n\t *\n\t * @return {Number} An ID used to remove interceptor later\n\t */\n\tInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n\t this.handlers.push({\n\t fulfilled: fulfilled,\n\t rejected: rejected\n\t });\n\t return this.handlers.length - 1;\n\t};\n\t\n\t/**\n\t * Remove an interceptor from the stack\n\t *\n\t * @param {Number} id The ID that was returned by `use`\n\t */\n\tInterceptorManager.prototype.eject = function eject(id) {\n\t if (this.handlers[id]) {\n\t this.handlers[id] = null;\n\t }\n\t};\n\t\n\t/**\n\t * Iterate over all the registered interceptors\n\t *\n\t * This method is particularly useful for skipping over any\n\t * interceptors that may have become `null` calling `eject`.\n\t *\n\t * @param {Function} fn The function to call for each interceptor\n\t */\n\tInterceptorManager.prototype.forEach = function forEach(fn) {\n\t utils.forEach(this.handlers, function forEachHandler(h) {\n\t if (h !== null) {\n\t fn(h);\n\t }\n\t });\n\t};\n\t\n\tmodule.exports = InterceptorManager;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\tvar transformData = __webpack_require__(8);\n\tvar isCancel = __webpack_require__(9);\n\tvar defaults = __webpack_require__(10);\n\t\n\t/**\n\t * Throws a `Cancel` if cancellation has been requested.\n\t */\n\tfunction throwIfCancellationRequested(config) {\n\t if (config.cancelToken) {\n\t config.cancelToken.throwIfRequested();\n\t }\n\t}\n\t\n\t/**\n\t * Dispatch a request to the server using the configured adapter.\n\t *\n\t * @param {object} config The config that is to be used for the request\n\t * @returns {Promise} The Promise to be fulfilled\n\t */\n\tmodule.exports = function dispatchRequest(config) {\n\t throwIfCancellationRequested(config);\n\t\n\t // Ensure headers exist\n\t config.headers = config.headers || {};\n\t\n\t // Transform request data\n\t config.data = transformData(\n\t config.data,\n\t config.headers,\n\t config.transformRequest\n\t );\n\t\n\t // Flatten headers\n\t config.headers = utils.merge(\n\t config.headers.common || {},\n\t config.headers[config.method] || {},\n\t config.headers\n\t );\n\t\n\t utils.forEach(\n\t ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n\t function cleanHeaderConfig(method) {\n\t delete config.headers[method];\n\t }\n\t );\n\t\n\t var adapter = config.adapter || defaults.adapter;\n\t\n\t return adapter(config).then(function onAdapterResolution(response) {\n\t throwIfCancellationRequested(config);\n\t\n\t // Transform response data\n\t response.data = transformData(\n\t response.data,\n\t response.headers,\n\t config.transformResponse\n\t );\n\t\n\t return response;\n\t }, function onAdapterRejection(reason) {\n\t if (!isCancel(reason)) {\n\t throwIfCancellationRequested(config);\n\t\n\t // Transform response data\n\t if (reason && reason.response) {\n\t reason.response.data = transformData(\n\t reason.response.data,\n\t reason.response.headers,\n\t config.transformResponse\n\t );\n\t }\n\t }\n\t\n\t return Promise.reject(reason);\n\t });\n\t};\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\t/**\n\t * Transform the data for a request or a response\n\t *\n\t * @param {Object|String} data The data to be transformed\n\t * @param {Array} headers The headers for the request or response\n\t * @param {Array|Function} fns A single function or Array of functions\n\t * @returns {*} The resulting transformed data\n\t */\n\tmodule.exports = function transformData(data, headers, fns) {\n\t /*eslint no-param-reassign:0*/\n\t utils.forEach(fns, function transform(fn) {\n\t data = fn(data, headers);\n\t });\n\t\n\t return data;\n\t};\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tmodule.exports = function isCancel(value) {\n\t return !!(value && value.__CANCEL__);\n\t};\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\tvar normalizeHeaderName = __webpack_require__(11);\n\t\n\tvar DEFAULT_CONTENT_TYPE = {\n\t 'Content-Type': 'application/x-www-form-urlencoded'\n\t};\n\t\n\tfunction setContentTypeIfUnset(headers, value) {\n\t if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n\t headers['Content-Type'] = value;\n\t }\n\t}\n\t\n\tfunction getDefaultAdapter() {\n\t var adapter;\n\t if (typeof XMLHttpRequest !== 'undefined') {\n\t // For browsers use XHR adapter\n\t adapter = __webpack_require__(12);\n\t } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n\t // For node use HTTP adapter\n\t adapter = __webpack_require__(12);\n\t }\n\t return adapter;\n\t}\n\t\n\tvar defaults = {\n\t adapter: getDefaultAdapter(),\n\t\n\t transformRequest: [function transformRequest(data, headers) {\n\t normalizeHeaderName(headers, 'Accept');\n\t normalizeHeaderName(headers, 'Content-Type');\n\t if (utils.isFormData(data) ||\n\t utils.isArrayBuffer(data) ||\n\t utils.isBuffer(data) ||\n\t utils.isStream(data) ||\n\t utils.isFile(data) ||\n\t utils.isBlob(data)\n\t ) {\n\t return data;\n\t }\n\t if (utils.isArrayBufferView(data)) {\n\t return data.buffer;\n\t }\n\t if (utils.isURLSearchParams(data)) {\n\t setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n\t return data.toString();\n\t }\n\t if (utils.isObject(data)) {\n\t setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n\t return JSON.stringify(data);\n\t }\n\t return data;\n\t }],\n\t\n\t transformResponse: [function transformResponse(data) {\n\t /*eslint no-param-reassign:0*/\n\t if (typeof data === 'string') {\n\t try {\n\t data = JSON.parse(data);\n\t } catch (e) { /* Ignore */ }\n\t }\n\t return data;\n\t }],\n\t\n\t /**\n\t * A timeout in milliseconds to abort a request. If set to 0 (default) a\n\t * timeout is not created.\n\t */\n\t timeout: 0,\n\t\n\t xsrfCookieName: 'XSRF-TOKEN',\n\t xsrfHeaderName: 'X-XSRF-TOKEN',\n\t\n\t maxContentLength: -1,\n\t\n\t validateStatus: function validateStatus(status) {\n\t return status >= 200 && status < 300;\n\t }\n\t};\n\t\n\tdefaults.headers = {\n\t common: {\n\t 'Accept': 'application/json, text/plain, */*'\n\t }\n\t};\n\t\n\tutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n\t defaults.headers[method] = {};\n\t});\n\t\n\tutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n\t defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n\t});\n\t\n\tmodule.exports = defaults;\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\tmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n\t utils.forEach(headers, function processHeader(value, name) {\n\t if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n\t headers[normalizedName] = value;\n\t delete headers[name];\n\t }\n\t });\n\t};\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\tvar settle = __webpack_require__(13);\n\tvar buildURL = __webpack_require__(5);\n\tvar buildFullPath = __webpack_require__(16);\n\tvar parseHeaders = __webpack_require__(19);\n\tvar isURLSameOrigin = __webpack_require__(20);\n\tvar createError = __webpack_require__(14);\n\t\n\tmodule.exports = function xhrAdapter(config) {\n\t return new Promise(function dispatchXhrRequest(resolve, reject) {\n\t var requestData = config.data;\n\t var requestHeaders = config.headers;\n\t\n\t if (utils.isFormData(requestData)) {\n\t delete requestHeaders['Content-Type']; // Let the browser set it\n\t }\n\t\n\t var request = new XMLHttpRequest();\n\t\n\t // HTTP basic authentication\n\t if (config.auth) {\n\t var username = config.auth.username || '';\n\t var password = config.auth.password || '';\n\t requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n\t }\n\t\n\t var fullPath = buildFullPath(config.baseURL, config.url);\n\t request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\t\n\t // Set the request timeout in MS\n\t request.timeout = config.timeout;\n\t\n\t // Listen for ready state\n\t request.onreadystatechange = function handleLoad() {\n\t if (!request || request.readyState !== 4) {\n\t return;\n\t }\n\t\n\t // The request errored out and we didn't get a response, this will be\n\t // handled by onerror instead\n\t // With one exception: request that using file: protocol, most browsers\n\t // will return status as 0 even though it's a successful request\n\t if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n\t return;\n\t }\n\t\n\t // Prepare the response\n\t var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n\t var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n\t var response = {\n\t data: responseData,\n\t status: request.status,\n\t statusText: request.statusText,\n\t headers: responseHeaders,\n\t config: config,\n\t request: request\n\t };\n\t\n\t settle(resolve, reject, response);\n\t\n\t // Clean up request\n\t request = null;\n\t };\n\t\n\t // Handle browser request cancellation (as opposed to a manual cancellation)\n\t request.onabort = function handleAbort() {\n\t if (!request) {\n\t return;\n\t }\n\t\n\t reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\t\n\t // Clean up request\n\t request = null;\n\t };\n\t\n\t // Handle low level network errors\n\t request.onerror = function handleError() {\n\t // Real errors are hidden from us by the browser\n\t // onerror should only fire if it's a network error\n\t reject(createError('Network Error', config, null, request));\n\t\n\t // Clean up request\n\t request = null;\n\t };\n\t\n\t // Handle timeout\n\t request.ontimeout = function handleTimeout() {\n\t var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n\t if (config.timeoutErrorMessage) {\n\t timeoutErrorMessage = config.timeoutErrorMessage;\n\t }\n\t reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n\t request));\n\t\n\t // Clean up request\n\t request = null;\n\t };\n\t\n\t // Add xsrf header\n\t // This is only done if running in a standard browser environment.\n\t // Specifically not if we're in a web worker, or react-native.\n\t if (utils.isStandardBrowserEnv()) {\n\t var cookies = __webpack_require__(21);\n\t\n\t // Add xsrf header\n\t var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n\t cookies.read(config.xsrfCookieName) :\n\t undefined;\n\t\n\t if (xsrfValue) {\n\t requestHeaders[config.xsrfHeaderName] = xsrfValue;\n\t }\n\t }\n\t\n\t // Add headers to the request\n\t if ('setRequestHeader' in request) {\n\t utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n\t if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n\t // Remove Content-Type if data is undefined\n\t delete requestHeaders[key];\n\t } else {\n\t // Otherwise add header to the request\n\t request.setRequestHeader(key, val);\n\t }\n\t });\n\t }\n\t\n\t // Add withCredentials to request if needed\n\t if (!utils.isUndefined(config.withCredentials)) {\n\t request.withCredentials = !!config.withCredentials;\n\t }\n\t\n\t // Add responseType to request if needed\n\t if (config.responseType) {\n\t try {\n\t request.responseType = config.responseType;\n\t } catch (e) {\n\t // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n\t // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n\t if (config.responseType !== 'json') {\n\t throw e;\n\t }\n\t }\n\t }\n\t\n\t // Handle progress if needed\n\t if (typeof config.onDownloadProgress === 'function') {\n\t request.addEventListener('progress', config.onDownloadProgress);\n\t }\n\t\n\t // Not all browsers support upload events\n\t if (typeof config.onUploadProgress === 'function' && request.upload) {\n\t request.upload.addEventListener('progress', config.onUploadProgress);\n\t }\n\t\n\t if (config.cancelToken) {\n\t // Handle cancellation\n\t config.cancelToken.promise.then(function onCanceled(cancel) {\n\t if (!request) {\n\t return;\n\t }\n\t\n\t request.abort();\n\t reject(cancel);\n\t // Clean up request\n\t request = null;\n\t });\n\t }\n\t\n\t if (requestData === undefined) {\n\t requestData = null;\n\t }\n\t\n\t // Send the request\n\t request.send(requestData);\n\t });\n\t};\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar createError = __webpack_require__(14);\n\t\n\t/**\n\t * Resolve or reject a Promise based on response status.\n\t *\n\t * @param {Function} resolve A function that resolves the promise.\n\t * @param {Function} reject A function that rejects the promise.\n\t * @param {object} response The response.\n\t */\n\tmodule.exports = function settle(resolve, reject, response) {\n\t var validateStatus = response.config.validateStatus;\n\t if (!validateStatus || validateStatus(response.status)) {\n\t resolve(response);\n\t } else {\n\t reject(createError(\n\t 'Request failed with status code ' + response.status,\n\t response.config,\n\t null,\n\t response.request,\n\t response\n\t ));\n\t }\n\t};\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar enhanceError = __webpack_require__(15);\n\t\n\t/**\n\t * Create an Error with the specified message, config, error code, request and response.\n\t *\n\t * @param {string} message The error message.\n\t * @param {Object} config The config.\n\t * @param {string} [code] The error code (for example, 'ECONNABORTED').\n\t * @param {Object} [request] The request.\n\t * @param {Object} [response] The response.\n\t * @returns {Error} The created error.\n\t */\n\tmodule.exports = function createError(message, config, code, request, response) {\n\t var error = new Error(message);\n\t return enhanceError(error, config, code, request, response);\n\t};\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t * Update an Error with the specified config, error code, and response.\n\t *\n\t * @param {Error} error The error to update.\n\t * @param {Object} config The config.\n\t * @param {string} [code] The error code (for example, 'ECONNABORTED').\n\t * @param {Object} [request] The request.\n\t * @param {Object} [response] The response.\n\t * @returns {Error} The error.\n\t */\n\tmodule.exports = function enhanceError(error, config, code, request, response) {\n\t error.config = config;\n\t if (code) {\n\t error.code = code;\n\t }\n\t\n\t error.request = request;\n\t error.response = response;\n\t error.isAxiosError = true;\n\t\n\t error.toJSON = function() {\n\t return {\n\t // Standard\n\t message: this.message,\n\t name: this.name,\n\t // Microsoft\n\t description: this.description,\n\t number: this.number,\n\t // Mozilla\n\t fileName: this.fileName,\n\t lineNumber: this.lineNumber,\n\t columnNumber: this.columnNumber,\n\t stack: this.stack,\n\t // Axios\n\t config: this.config,\n\t code: this.code\n\t };\n\t };\n\t return error;\n\t};\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar isAbsoluteURL = __webpack_require__(17);\n\tvar combineURLs = __webpack_require__(18);\n\t\n\t/**\n\t * Creates a new URL by combining the baseURL with the requestedURL,\n\t * only when the requestedURL is not already an absolute URL.\n\t * If the requestURL is absolute, this function returns the requestedURL untouched.\n\t *\n\t * @param {string} baseURL The base URL\n\t * @param {string} requestedURL Absolute or relative URL to combine\n\t * @returns {string} The combined full path\n\t */\n\tmodule.exports = function buildFullPath(baseURL, requestedURL) {\n\t if (baseURL && !isAbsoluteURL(requestedURL)) {\n\t return combineURLs(baseURL, requestedURL);\n\t }\n\t return requestedURL;\n\t};\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t * Determines whether the specified URL is absolute\n\t *\n\t * @param {string} url The URL to test\n\t * @returns {boolean} True if the specified URL is absolute, otherwise false\n\t */\n\tmodule.exports = function isAbsoluteURL(url) {\n\t // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n\t // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n\t // by any combination of letters, digits, plus, period, or hyphen.\n\t return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n\t};\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t * Creates a new URL by combining the specified URLs\n\t *\n\t * @param {string} baseURL The base URL\n\t * @param {string} relativeURL The relative URL\n\t * @returns {string} The combined URL\n\t */\n\tmodule.exports = function combineURLs(baseURL, relativeURL) {\n\t return relativeURL\n\t ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n\t : baseURL;\n\t};\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\t// Headers whose duplicates are ignored by node\n\t// c.f. https://nodejs.org/api/http.html#http_message_headers\n\tvar ignoreDuplicateOf = [\n\t 'age', 'authorization', 'content-length', 'content-type', 'etag',\n\t 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n\t 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n\t 'referer', 'retry-after', 'user-agent'\n\t];\n\t\n\t/**\n\t * Parse headers into an object\n\t *\n\t * ```\n\t * Date: Wed, 27 Aug 2014 08:58:49 GMT\n\t * Content-Type: application/json\n\t * Connection: keep-alive\n\t * Transfer-Encoding: chunked\n\t * ```\n\t *\n\t * @param {String} headers Headers needing to be parsed\n\t * @returns {Object} Headers parsed into an object\n\t */\n\tmodule.exports = function parseHeaders(headers) {\n\t var parsed = {};\n\t var key;\n\t var val;\n\t var i;\n\t\n\t if (!headers) { return parsed; }\n\t\n\t utils.forEach(headers.split('\\n'), function parser(line) {\n\t i = line.indexOf(':');\n\t key = utils.trim(line.substr(0, i)).toLowerCase();\n\t val = utils.trim(line.substr(i + 1));\n\t\n\t if (key) {\n\t if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n\t return;\n\t }\n\t if (key === 'set-cookie') {\n\t parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n\t } else {\n\t parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n\t }\n\t }\n\t });\n\t\n\t return parsed;\n\t};\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\tmodule.exports = (\n\t utils.isStandardBrowserEnv() ?\n\t\n\t // Standard browser envs have full support of the APIs needed to test\n\t // whether the request URL is of the same origin as current location.\n\t (function standardBrowserEnv() {\n\t var msie = /(msie|trident)/i.test(navigator.userAgent);\n\t var urlParsingNode = document.createElement('a');\n\t var originURL;\n\t\n\t /**\n\t * Parse a URL to discover it's components\n\t *\n\t * @param {String} url The URL to be parsed\n\t * @returns {Object}\n\t */\n\t function resolveURL(url) {\n\t var href = url;\n\t\n\t if (msie) {\n\t // IE needs attribute set twice to normalize properties\n\t urlParsingNode.setAttribute('href', href);\n\t href = urlParsingNode.href;\n\t }\n\t\n\t urlParsingNode.setAttribute('href', href);\n\t\n\t // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n\t return {\n\t href: urlParsingNode.href,\n\t protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n\t host: urlParsingNode.host,\n\t search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n\t hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n\t hostname: urlParsingNode.hostname,\n\t port: urlParsingNode.port,\n\t pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n\t urlParsingNode.pathname :\n\t '/' + urlParsingNode.pathname\n\t };\n\t }\n\t\n\t originURL = resolveURL(window.location.href);\n\t\n\t /**\n\t * Determine if a URL shares the same origin as the current location\n\t *\n\t * @param {String} requestURL The URL to test\n\t * @returns {boolean} True if URL shares the same origin, otherwise false\n\t */\n\t return function isURLSameOrigin(requestURL) {\n\t var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n\t return (parsed.protocol === originURL.protocol &&\n\t parsed.host === originURL.host);\n\t };\n\t })() :\n\t\n\t // Non standard browser envs (web workers, react-native) lack needed support.\n\t (function nonStandardBrowserEnv() {\n\t return function isURLSameOrigin() {\n\t return true;\n\t };\n\t })()\n\t);\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\tmodule.exports = (\n\t utils.isStandardBrowserEnv() ?\n\t\n\t // Standard browser envs support document.cookie\n\t (function standardBrowserEnv() {\n\t return {\n\t write: function write(name, value, expires, path, domain, secure) {\n\t var cookie = [];\n\t cookie.push(name + '=' + encodeURIComponent(value));\n\t\n\t if (utils.isNumber(expires)) {\n\t cookie.push('expires=' + new Date(expires).toGMTString());\n\t }\n\t\n\t if (utils.isString(path)) {\n\t cookie.push('path=' + path);\n\t }\n\t\n\t if (utils.isString(domain)) {\n\t cookie.push('domain=' + domain);\n\t }\n\t\n\t if (secure === true) {\n\t cookie.push('secure');\n\t }\n\t\n\t document.cookie = cookie.join('; ');\n\t },\n\t\n\t read: function read(name) {\n\t var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n\t return (match ? decodeURIComponent(match[3]) : null);\n\t },\n\t\n\t remove: function remove(name) {\n\t this.write(name, '', Date.now() - 86400000);\n\t }\n\t };\n\t })() :\n\t\n\t // Non standard browser env (web workers, react-native) lack needed support.\n\t (function nonStandardBrowserEnv() {\n\t return {\n\t write: function write() {},\n\t read: function read() { return null; },\n\t remove: function remove() {}\n\t };\n\t })()\n\t);\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\t/**\n\t * Config-specific merge-function which creates a new config-object\n\t * by merging two configuration objects together.\n\t *\n\t * @param {Object} config1\n\t * @param {Object} config2\n\t * @returns {Object} New object resulting from merging config2 to config1\n\t */\n\tmodule.exports = function mergeConfig(config1, config2) {\n\t // eslint-disable-next-line no-param-reassign\n\t config2 = config2 || {};\n\t var config = {};\n\t\n\t var valueFromConfig2Keys = ['url', 'method', 'params', 'data'];\n\t var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy'];\n\t var defaultToConfig2Keys = [\n\t 'baseURL', 'url', 'transformRequest', 'transformResponse', 'paramsSerializer',\n\t 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n\t 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress',\n\t 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent',\n\t 'httpsAgent', 'cancelToken', 'socketPath'\n\t ];\n\t\n\t utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n\t if (typeof config2[prop] !== 'undefined') {\n\t config[prop] = config2[prop];\n\t }\n\t });\n\t\n\t utils.forEach(mergeDeepPropertiesKeys, function mergeDeepProperties(prop) {\n\t if (utils.isObject(config2[prop])) {\n\t config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n\t } else if (typeof config2[prop] !== 'undefined') {\n\t config[prop] = config2[prop];\n\t } else if (utils.isObject(config1[prop])) {\n\t config[prop] = utils.deepMerge(config1[prop]);\n\t } else if (typeof config1[prop] !== 'undefined') {\n\t config[prop] = config1[prop];\n\t }\n\t });\n\t\n\t utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n\t if (typeof config2[prop] !== 'undefined') {\n\t config[prop] = config2[prop];\n\t } else if (typeof config1[prop] !== 'undefined') {\n\t config[prop] = config1[prop];\n\t }\n\t });\n\t\n\t var axiosKeys = valueFromConfig2Keys\n\t .concat(mergeDeepPropertiesKeys)\n\t .concat(defaultToConfig2Keys);\n\t\n\t var otherKeys = Object\n\t .keys(config2)\n\t .filter(function filterAxiosKeys(key) {\n\t return axiosKeys.indexOf(key) === -1;\n\t });\n\t\n\t utils.forEach(otherKeys, function otherKeysDefaultToConfig2(prop) {\n\t if (typeof config2[prop] !== 'undefined') {\n\t config[prop] = config2[prop];\n\t } else if (typeof config1[prop] !== 'undefined') {\n\t config[prop] = config1[prop];\n\t }\n\t });\n\t\n\t return config;\n\t};\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t * A `Cancel` is an object that is thrown when an operation is canceled.\n\t *\n\t * @class\n\t * @param {string=} message The message.\n\t */\n\tfunction Cancel(message) {\n\t this.message = message;\n\t}\n\t\n\tCancel.prototype.toString = function toString() {\n\t return 'Cancel' + (this.message ? ': ' + this.message : '');\n\t};\n\t\n\tCancel.prototype.__CANCEL__ = true;\n\t\n\tmodule.exports = Cancel;\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar Cancel = __webpack_require__(23);\n\t\n\t/**\n\t * A `CancelToken` is an object that can be used to request cancellation of an operation.\n\t *\n\t * @class\n\t * @param {Function} executor The executor function.\n\t */\n\tfunction CancelToken(executor) {\n\t if (typeof executor !== 'function') {\n\t throw new TypeError('executor must be a function.');\n\t }\n\t\n\t var resolvePromise;\n\t this.promise = new Promise(function promiseExecutor(resolve) {\n\t resolvePromise = resolve;\n\t });\n\t\n\t var token = this;\n\t executor(function cancel(message) {\n\t if (token.reason) {\n\t // Cancellation has already been requested\n\t return;\n\t }\n\t\n\t token.reason = new Cancel(message);\n\t resolvePromise(token.reason);\n\t });\n\t}\n\t\n\t/**\n\t * Throws a `Cancel` if cancellation has been requested.\n\t */\n\tCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n\t if (this.reason) {\n\t throw this.reason;\n\t }\n\t};\n\t\n\t/**\n\t * Returns an object that contains a new `CancelToken` and a function that, when called,\n\t * cancels the `CancelToken`.\n\t */\n\tCancelToken.source = function source() {\n\t var cancel;\n\t var token = new CancelToken(function executor(c) {\n\t cancel = c;\n\t });\n\t return {\n\t token: token,\n\t cancel: cancel\n\t };\n\t};\n\t\n\tmodule.exports = CancelToken;\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t * Syntactic sugar for invoking a function and expanding an array for arguments.\n\t *\n\t * Common use case would be to use `Function.prototype.apply`.\n\t *\n\t * ```js\n\t * function f(x, y, z) {}\n\t * var args = [1, 2, 3];\n\t * f.apply(null, args);\n\t * ```\n\t *\n\t * With `spread` this example can be re-written.\n\t *\n\t * ```js\n\t * spread(function(x, y, z) {})([1, 2, 3]);\n\t * ```\n\t *\n\t * @param {Function} callback\n\t * @returns {Function}\n\t */\n\tmodule.exports = function spread(callback) {\n\t return function wrap(arr) {\n\t return callback.apply(null, arr);\n\t };\n\t};\n\n\n/***/ })\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// axios.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap be8c45a40d7c235b46c5","module.exports = require('./lib/axios');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./index.js\n// module id = 0\n// module chunks = 0","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/axios.js\n// module id = 1\n// module chunks = 0","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction deepMerge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/utils.js\n// module id = 2\n// module chunks = 0","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/bind.js\n// module id = 3\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/Axios.js\n// module id = 4\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/buildURL.js\n// module id = 5\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/InterceptorManager.js\n// module id = 6\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/dispatchRequest.js\n// module id = 7\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/transformData.js\n// module id = 8\n// module chunks = 0","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/cancel/isCancel.js\n// module id = 9\n// module chunks = 0","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/defaults.js\n// module id = 10\n// module chunks = 0","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/normalizeHeaderName.js\n// module id = 11\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/adapters/xhr.js\n// module id = 12\n// module chunks = 0","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/settle.js\n// module id = 13\n// module chunks = 0","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/createError.js\n// module id = 14\n// module chunks = 0","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/enhanceError.js\n// module id = 15\n// module chunks = 0","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/buildFullPath.js\n// module id = 16\n// module chunks = 0","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/isAbsoluteURL.js\n// module id = 17\n// module chunks = 0","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/combineURLs.js\n// module id = 18\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/parseHeaders.js\n// module id = 19\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/isURLSameOrigin.js\n// module id = 20\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/cookies.js\n// module id = 21\n// module chunks = 0","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'params', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy'];\n var defaultToConfig2Keys = [\n 'baseURL', 'url', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress',\n 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath'\n ];\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, function mergeDeepProperties(prop) {\n if (utils.isObject(config2[prop])) {\n config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n } else if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (utils.isObject(config1[prop])) {\n config[prop] = utils.deepMerge(config1[prop]);\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys);\n\n var otherKeys = Object\n .keys(config2)\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, function otherKeysDefaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n return config;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/mergeConfig.js\n// module id = 22\n// module chunks = 0","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/cancel/Cancel.js\n// module id = 23\n// module chunks = 0","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/cancel/CancelToken.js\n// module id = 24\n// module chunks = 0","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/spread.js\n// module id = 25\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/node_modules/axios/index.d.ts b/node_modules/axios/index.d.ts new file mode 100644 index 0000000..fc1fd18 --- /dev/null +++ b/node_modules/axios/index.d.ts @@ -0,0 +1,157 @@ +export interface AxiosTransformer { + (data: any, headers?: any): any; +} + +export interface AxiosAdapter { + (config: AxiosRequestConfig): AxiosPromise; +} + +export interface AxiosBasicCredentials { + username: string; + password: string; +} + +export interface AxiosProxyConfig { + host: string; + port: number; + auth?: { + username: string; + password:string; + }; + protocol?: string; +} + +export type Method = + | 'get' | 'GET' + | 'delete' | 'DELETE' + | 'head' | 'HEAD' + | 'options' | 'OPTIONS' + | 'post' | 'POST' + | 'put' | 'PUT' + | 'patch' | 'PATCH' + | 'link' | 'LINK' + | 'unlink' | 'UNLINK' + +export type ResponseType = + | 'arraybuffer' + | 'blob' + | 'document' + | 'json' + | 'text' + | 'stream' + +export interface AxiosRequestConfig { + url?: string; + method?: Method; + baseURL?: string; + transformRequest?: AxiosTransformer | AxiosTransformer[]; + transformResponse?: AxiosTransformer | AxiosTransformer[]; + headers?: any; + params?: any; + paramsSerializer?: (params: any) => string; + data?: any; + timeout?: number; + timeoutErrorMessage?: string; + withCredentials?: boolean; + adapter?: AxiosAdapter; + auth?: AxiosBasicCredentials; + responseType?: ResponseType; + xsrfCookieName?: string; + xsrfHeaderName?: string; + onUploadProgress?: (progressEvent: any) => void; + onDownloadProgress?: (progressEvent: any) => void; + maxContentLength?: number; + validateStatus?: (status: number) => boolean; + maxRedirects?: number; + socketPath?: string | null; + httpAgent?: any; + httpsAgent?: any; + proxy?: AxiosProxyConfig | false; + cancelToken?: CancelToken; +} + +export interface AxiosResponse { + data: T; + status: number; + statusText: string; + headers: any; + config: AxiosRequestConfig; + request?: any; +} + +export interface AxiosError extends Error { + config: AxiosRequestConfig; + code?: string; + request?: any; + response?: AxiosResponse; + isAxiosError: boolean; + toJSON: () => object; +} + +export interface AxiosPromise extends Promise> { +} + +export interface CancelStatic { + new (message?: string): Cancel; +} + +export interface Cancel { + message: string; +} + +export interface Canceler { + (message?: string): void; +} + +export interface CancelTokenStatic { + new (executor: (cancel: Canceler) => void): CancelToken; + source(): CancelTokenSource; +} + +export interface CancelToken { + promise: Promise; + reason?: Cancel; + throwIfRequested(): void; +} + +export interface CancelTokenSource { + token: CancelToken; + cancel: Canceler; +} + +export interface AxiosInterceptorManager { + use(onFulfilled?: (value: V) => V | Promise, onRejected?: (error: any) => any): number; + eject(id: number): void; +} + +export interface AxiosInstance { + (config: AxiosRequestConfig): AxiosPromise; + (url: string, config?: AxiosRequestConfig): AxiosPromise; + defaults: AxiosRequestConfig; + interceptors: { + request: AxiosInterceptorManager; + response: AxiosInterceptorManager; + }; + getUri(config?: AxiosRequestConfig): string; + request> (config: AxiosRequestConfig): Promise; + get>(url: string, config?: AxiosRequestConfig): Promise; + delete>(url: string, config?: AxiosRequestConfig): Promise; + head>(url: string, config?: AxiosRequestConfig): Promise; + options>(url: string, config?: AxiosRequestConfig): Promise; + post>(url: string, data?: any, config?: AxiosRequestConfig): Promise; + put>(url: string, data?: any, config?: AxiosRequestConfig): Promise; + patch>(url: string, data?: any, config?: AxiosRequestConfig): Promise; +} + +export interface AxiosStatic extends AxiosInstance { + create(config?: AxiosRequestConfig): AxiosInstance; + Cancel: CancelStatic; + CancelToken: CancelTokenStatic; + isCancel(value: any): boolean; + all(values: (T | Promise)[]): Promise; + spread(callback: (...args: T[]) => R): (array: T[]) => R; +} + +declare const Axios: AxiosStatic; + +export default Axios; diff --git a/node_modules/axios/index.js b/node_modules/axios/index.js new file mode 100644 index 0000000..79dfd09 --- /dev/null +++ b/node_modules/axios/index.js @@ -0,0 +1 @@ +module.exports = require('./lib/axios'); \ No newline at end of file diff --git a/node_modules/axios/lib/adapters/README.md b/node_modules/axios/lib/adapters/README.md new file mode 100644 index 0000000..68f1118 --- /dev/null +++ b/node_modules/axios/lib/adapters/README.md @@ -0,0 +1,37 @@ +# axios // adapters + +The modules under `adapters/` are modules that handle dispatching a request and settling a returned `Promise` once a response is received. + +## Example + +```js +var settle = require('./../core/settle'); + +module.exports = function myAdapter(config) { + // At this point: + // - config has been merged with defaults + // - request transformers have already run + // - request interceptors have already run + + // Make the request using config provided + // Upon response settle the Promise + + return new Promise(function(resolve, reject) { + + var response = { + data: responseData, + status: request.status, + statusText: request.statusText, + headers: responseHeaders, + config: config, + request: request + }; + + settle(resolve, reject, response); + + // From here: + // - response transformers will run + // - response interceptors will run + }); +} +``` diff --git a/node_modules/axios/lib/adapters/http.js b/node_modules/axios/lib/adapters/http.js new file mode 100755 index 0000000..16dad12 --- /dev/null +++ b/node_modules/axios/lib/adapters/http.js @@ -0,0 +1,279 @@ +'use strict'; + +var utils = require('./../utils'); +var settle = require('./../core/settle'); +var buildFullPath = require('../core/buildFullPath'); +var buildURL = require('./../helpers/buildURL'); +var http = require('http'); +var https = require('https'); +var httpFollow = require('follow-redirects').http; +var httpsFollow = require('follow-redirects').https; +var url = require('url'); +var zlib = require('zlib'); +var pkg = require('./../../package.json'); +var createError = require('../core/createError'); +var enhanceError = require('../core/enhanceError'); + +var isHttps = /https:?/; + +/*eslint consistent-return:0*/ +module.exports = function httpAdapter(config) { + return new Promise(function dispatchHttpRequest(resolvePromise, rejectPromise) { + var resolve = function resolve(value) { + resolvePromise(value); + }; + var reject = function reject(value) { + rejectPromise(value); + }; + var data = config.data; + var headers = config.headers; + + // Set User-Agent (required by some servers) + // Only set header if it hasn't been set in config + // See https://github.com/axios/axios/issues/69 + if (!headers['User-Agent'] && !headers['user-agent']) { + headers['User-Agent'] = 'axios/' + pkg.version; + } + + if (data && !utils.isStream(data)) { + if (Buffer.isBuffer(data)) { + // Nothing to do... + } else if (utils.isArrayBuffer(data)) { + data = Buffer.from(new Uint8Array(data)); + } else if (utils.isString(data)) { + data = Buffer.from(data, 'utf-8'); + } else { + return reject(createError( + 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream', + config + )); + } + + // Add Content-Length header if data exists + headers['Content-Length'] = data.length; + } + + // HTTP basic authentication + var auth = undefined; + if (config.auth) { + var username = config.auth.username || ''; + var password = config.auth.password || ''; + auth = username + ':' + password; + } + + // Parse url + var fullPath = buildFullPath(config.baseURL, config.url); + var parsed = url.parse(fullPath); + var protocol = parsed.protocol || 'http:'; + + if (!auth && parsed.auth) { + var urlAuth = parsed.auth.split(':'); + var urlUsername = urlAuth[0] || ''; + var urlPassword = urlAuth[1] || ''; + auth = urlUsername + ':' + urlPassword; + } + + if (auth) { + delete headers.Authorization; + } + + var isHttpsRequest = isHttps.test(protocol); + var agent = isHttpsRequest ? config.httpsAgent : config.httpAgent; + + var options = { + path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\?/, ''), + method: config.method.toUpperCase(), + headers: headers, + agent: agent, + agents: { http: config.httpAgent, https: config.httpsAgent }, + auth: auth + }; + + if (config.socketPath) { + options.socketPath = config.socketPath; + } else { + options.hostname = parsed.hostname; + options.port = parsed.port; + } + + var proxy = config.proxy; + if (!proxy && proxy !== false) { + var proxyEnv = protocol.slice(0, -1) + '_proxy'; + var proxyUrl = process.env[proxyEnv] || process.env[proxyEnv.toUpperCase()]; + if (proxyUrl) { + var parsedProxyUrl = url.parse(proxyUrl); + var noProxyEnv = process.env.no_proxy || process.env.NO_PROXY; + var shouldProxy = true; + + if (noProxyEnv) { + var noProxy = noProxyEnv.split(',').map(function trim(s) { + return s.trim(); + }); + + shouldProxy = !noProxy.some(function proxyMatch(proxyElement) { + if (!proxyElement) { + return false; + } + if (proxyElement === '*') { + return true; + } + if (proxyElement[0] === '.' && + parsed.hostname.substr(parsed.hostname.length - proxyElement.length) === proxyElement) { + return true; + } + + return parsed.hostname === proxyElement; + }); + } + + + if (shouldProxy) { + proxy = { + host: parsedProxyUrl.hostname, + port: parsedProxyUrl.port + }; + + if (parsedProxyUrl.auth) { + var proxyUrlAuth = parsedProxyUrl.auth.split(':'); + proxy.auth = { + username: proxyUrlAuth[0], + password: proxyUrlAuth[1] + }; + } + } + } + } + + if (proxy) { + options.hostname = proxy.host; + options.host = proxy.host; + options.headers.host = parsed.hostname + (parsed.port ? ':' + parsed.port : ''); + options.port = proxy.port; + options.path = protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path; + + // Basic proxy authorization + if (proxy.auth) { + var base64 = Buffer.from(proxy.auth.username + ':' + proxy.auth.password, 'utf8').toString('base64'); + options.headers['Proxy-Authorization'] = 'Basic ' + base64; + } + } + + var transport; + var isHttpsProxy = isHttpsRequest && (proxy ? isHttps.test(proxy.protocol) : true); + if (config.transport) { + transport = config.transport; + } else if (config.maxRedirects === 0) { + transport = isHttpsProxy ? https : http; + } else { + if (config.maxRedirects) { + options.maxRedirects = config.maxRedirects; + } + transport = isHttpsProxy ? httpsFollow : httpFollow; + } + + if (config.maxContentLength && config.maxContentLength > -1) { + options.maxBodyLength = config.maxContentLength; + } + + // Create the request + var req = transport.request(options, function handleResponse(res) { + if (req.aborted) return; + + // uncompress the response body transparently if required + var stream = res; + switch (res.headers['content-encoding']) { + /*eslint default-case:0*/ + case 'gzip': + case 'compress': + case 'deflate': + // add the unzipper to the body stream processing pipeline + stream = (res.statusCode === 204) ? stream : stream.pipe(zlib.createUnzip()); + + // remove the content-encoding in order to not confuse downstream operations + delete res.headers['content-encoding']; + break; + } + + // return the last request in case of redirects + var lastRequest = res.req || req; + + var response = { + status: res.statusCode, + statusText: res.statusMessage, + headers: res.headers, + config: config, + request: lastRequest + }; + + if (config.responseType === 'stream') { + response.data = stream; + settle(resolve, reject, response); + } else { + var responseBuffer = []; + stream.on('data', function handleStreamData(chunk) { + responseBuffer.push(chunk); + + // make sure the content length is not over the maxContentLength if specified + if (config.maxContentLength > -1 && Buffer.concat(responseBuffer).length > config.maxContentLength) { + stream.destroy(); + reject(createError('maxContentLength size of ' + config.maxContentLength + ' exceeded', + config, null, lastRequest)); + } + }); + + stream.on('error', function handleStreamError(err) { + if (req.aborted) return; + reject(enhanceError(err, config, null, lastRequest)); + }); + + stream.on('end', function handleStreamEnd() { + var responseData = Buffer.concat(responseBuffer); + if (config.responseType !== 'arraybuffer') { + responseData = responseData.toString(config.responseEncoding); + } + + response.data = responseData; + settle(resolve, reject, response); + }); + } + }); + + // Handle errors + req.on('error', function handleRequestError(err) { + if (req.aborted) return; + reject(enhanceError(err, config, null, req)); + }); + + // Handle request timeout + if (config.timeout) { + // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system. + // And timer callback will be fired, and abort() will be invoked before connection, then get "socket hang up" and code ECONNRESET. + // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up. + // And then these socket which be hang up will devoring CPU little by little. + // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect. + req.setTimeout(config.timeout, function handleRequestTimeout() { + req.abort(); + reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED', req)); + }); + } + + if (config.cancelToken) { + // Handle cancellation + config.cancelToken.promise.then(function onCanceled(cancel) { + if (req.aborted) return; + + req.abort(); + reject(cancel); + }); + } + + // Send the request + if (utils.isStream(data)) { + data.on('error', function handleStreamError(err) { + reject(enhanceError(err, config, null, req)); + }).pipe(req); + } else { + req.end(data); + } + }); +}; diff --git a/node_modules/axios/lib/adapters/xhr.js b/node_modules/axios/lib/adapters/xhr.js new file mode 100644 index 0000000..377e3e9 --- /dev/null +++ b/node_modules/axios/lib/adapters/xhr.js @@ -0,0 +1,180 @@ +'use strict'; + +var utils = require('./../utils'); +var settle = require('./../core/settle'); +var buildURL = require('./../helpers/buildURL'); +var buildFullPath = require('../core/buildFullPath'); +var parseHeaders = require('./../helpers/parseHeaders'); +var isURLSameOrigin = require('./../helpers/isURLSameOrigin'); +var createError = require('../core/createError'); + +module.exports = function xhrAdapter(config) { + return new Promise(function dispatchXhrRequest(resolve, reject) { + var requestData = config.data; + var requestHeaders = config.headers; + + if (utils.isFormData(requestData)) { + delete requestHeaders['Content-Type']; // Let the browser set it + } + + var request = new XMLHttpRequest(); + + // HTTP basic authentication + if (config.auth) { + var username = config.auth.username || ''; + var password = config.auth.password || ''; + requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password); + } + + var fullPath = buildFullPath(config.baseURL, config.url); + request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); + + // Set the request timeout in MS + request.timeout = config.timeout; + + // Listen for ready state + request.onreadystatechange = function handleLoad() { + if (!request || request.readyState !== 4) { + return; + } + + // The request errored out and we didn't get a response, this will be + // handled by onerror instead + // With one exception: request that using file: protocol, most browsers + // will return status as 0 even though it's a successful request + if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) { + return; + } + + // Prepare the response + var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null; + var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response; + var response = { + data: responseData, + status: request.status, + statusText: request.statusText, + headers: responseHeaders, + config: config, + request: request + }; + + settle(resolve, reject, response); + + // Clean up request + request = null; + }; + + // Handle browser request cancellation (as opposed to a manual cancellation) + request.onabort = function handleAbort() { + if (!request) { + return; + } + + reject(createError('Request aborted', config, 'ECONNABORTED', request)); + + // Clean up request + request = null; + }; + + // Handle low level network errors + request.onerror = function handleError() { + // Real errors are hidden from us by the browser + // onerror should only fire if it's a network error + reject(createError('Network Error', config, null, request)); + + // Clean up request + request = null; + }; + + // Handle timeout + request.ontimeout = function handleTimeout() { + var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded'; + if (config.timeoutErrorMessage) { + timeoutErrorMessage = config.timeoutErrorMessage; + } + reject(createError(timeoutErrorMessage, config, 'ECONNABORTED', + request)); + + // Clean up request + request = null; + }; + + // Add xsrf header + // This is only done if running in a standard browser environment. + // Specifically not if we're in a web worker, or react-native. + if (utils.isStandardBrowserEnv()) { + var cookies = require('./../helpers/cookies'); + + // Add xsrf header + var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? + cookies.read(config.xsrfCookieName) : + undefined; + + if (xsrfValue) { + requestHeaders[config.xsrfHeaderName] = xsrfValue; + } + } + + // Add headers to the request + if ('setRequestHeader' in request) { + utils.forEach(requestHeaders, function setRequestHeader(val, key) { + if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') { + // Remove Content-Type if data is undefined + delete requestHeaders[key]; + } else { + // Otherwise add header to the request + request.setRequestHeader(key, val); + } + }); + } + + // Add withCredentials to request if needed + if (!utils.isUndefined(config.withCredentials)) { + request.withCredentials = !!config.withCredentials; + } + + // Add responseType to request if needed + if (config.responseType) { + try { + request.responseType = config.responseType; + } catch (e) { + // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2. + // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function. + if (config.responseType !== 'json') { + throw e; + } + } + } + + // Handle progress if needed + if (typeof config.onDownloadProgress === 'function') { + request.addEventListener('progress', config.onDownloadProgress); + } + + // Not all browsers support upload events + if (typeof config.onUploadProgress === 'function' && request.upload) { + request.upload.addEventListener('progress', config.onUploadProgress); + } + + if (config.cancelToken) { + // Handle cancellation + config.cancelToken.promise.then(function onCanceled(cancel) { + if (!request) { + return; + } + + request.abort(); + reject(cancel); + // Clean up request + request = null; + }); + } + + if (requestData === undefined) { + requestData = null; + } + + // Send the request + request.send(requestData); + }); +}; diff --git a/node_modules/axios/lib/axios.js b/node_modules/axios/lib/axios.js new file mode 100644 index 0000000..8142437 --- /dev/null +++ b/node_modules/axios/lib/axios.js @@ -0,0 +1,53 @@ +'use strict'; + +var utils = require('./utils'); +var bind = require('./helpers/bind'); +var Axios = require('./core/Axios'); +var mergeConfig = require('./core/mergeConfig'); +var defaults = require('./defaults'); + +/** + * Create an instance of Axios + * + * @param {Object} defaultConfig The default config for the instance + * @return {Axios} A new instance of Axios + */ +function createInstance(defaultConfig) { + var context = new Axios(defaultConfig); + var instance = bind(Axios.prototype.request, context); + + // Copy axios.prototype to instance + utils.extend(instance, Axios.prototype, context); + + // Copy context to instance + utils.extend(instance, context); + + return instance; +} + +// Create the default instance to be exported +var axios = createInstance(defaults); + +// Expose Axios class to allow class inheritance +axios.Axios = Axios; + +// Factory for creating new instances +axios.create = function create(instanceConfig) { + return createInstance(mergeConfig(axios.defaults, instanceConfig)); +}; + +// Expose Cancel & CancelToken +axios.Cancel = require('./cancel/Cancel'); +axios.CancelToken = require('./cancel/CancelToken'); +axios.isCancel = require('./cancel/isCancel'); + +// Expose all/spread +axios.all = function all(promises) { + return Promise.all(promises); +}; +axios.spread = require('./helpers/spread'); + +module.exports = axios; + +// Allow use of default import syntax in TypeScript +module.exports.default = axios; diff --git a/node_modules/axios/lib/cancel/Cancel.js b/node_modules/axios/lib/cancel/Cancel.js new file mode 100644 index 0000000..e0de400 --- /dev/null +++ b/node_modules/axios/lib/cancel/Cancel.js @@ -0,0 +1,19 @@ +'use strict'; + +/** + * A `Cancel` is an object that is thrown when an operation is canceled. + * + * @class + * @param {string=} message The message. + */ +function Cancel(message) { + this.message = message; +} + +Cancel.prototype.toString = function toString() { + return 'Cancel' + (this.message ? ': ' + this.message : ''); +}; + +Cancel.prototype.__CANCEL__ = true; + +module.exports = Cancel; diff --git a/node_modules/axios/lib/cancel/CancelToken.js b/node_modules/axios/lib/cancel/CancelToken.js new file mode 100644 index 0000000..6b46e66 --- /dev/null +++ b/node_modules/axios/lib/cancel/CancelToken.js @@ -0,0 +1,57 @@ +'use strict'; + +var Cancel = require('./Cancel'); + +/** + * A `CancelToken` is an object that can be used to request cancellation of an operation. + * + * @class + * @param {Function} executor The executor function. + */ +function CancelToken(executor) { + if (typeof executor !== 'function') { + throw new TypeError('executor must be a function.'); + } + + var resolvePromise; + this.promise = new Promise(function promiseExecutor(resolve) { + resolvePromise = resolve; + }); + + var token = this; + executor(function cancel(message) { + if (token.reason) { + // Cancellation has already been requested + return; + } + + token.reason = new Cancel(message); + resolvePromise(token.reason); + }); +} + +/** + * Throws a `Cancel` if cancellation has been requested. + */ +CancelToken.prototype.throwIfRequested = function throwIfRequested() { + if (this.reason) { + throw this.reason; + } +}; + +/** + * Returns an object that contains a new `CancelToken` and a function that, when called, + * cancels the `CancelToken`. + */ +CancelToken.source = function source() { + var cancel; + var token = new CancelToken(function executor(c) { + cancel = c; + }); + return { + token: token, + cancel: cancel + }; +}; + +module.exports = CancelToken; diff --git a/node_modules/axios/lib/cancel/isCancel.js b/node_modules/axios/lib/cancel/isCancel.js new file mode 100644 index 0000000..051f3ae --- /dev/null +++ b/node_modules/axios/lib/cancel/isCancel.js @@ -0,0 +1,5 @@ +'use strict'; + +module.exports = function isCancel(value) { + return !!(value && value.__CANCEL__); +}; diff --git a/node_modules/axios/lib/core/Axios.js b/node_modules/axios/lib/core/Axios.js new file mode 100644 index 0000000..fb34ace --- /dev/null +++ b/node_modules/axios/lib/core/Axios.js @@ -0,0 +1,94 @@ +'use strict'; + +var utils = require('./../utils'); +var buildURL = require('../helpers/buildURL'); +var InterceptorManager = require('./InterceptorManager'); +var dispatchRequest = require('./dispatchRequest'); +var mergeConfig = require('./mergeConfig'); + +/** + * Create a new instance of Axios + * + * @param {Object} instanceConfig The default config for the instance + */ +function Axios(instanceConfig) { + this.defaults = instanceConfig; + this.interceptors = { + request: new InterceptorManager(), + response: new InterceptorManager() + }; +} + +/** + * Dispatch a request + * + * @param {Object} config The config specific for this request (merged with this.defaults) + */ +Axios.prototype.request = function request(config) { + /*eslint no-param-reassign:0*/ + // Allow for axios('example/url'[, config]) a la fetch API + if (typeof config === 'string') { + config = arguments[1] || {}; + config.url = arguments[0]; + } else { + config = config || {}; + } + + config = mergeConfig(this.defaults, config); + + // Set config.method + if (config.method) { + config.method = config.method.toLowerCase(); + } else if (this.defaults.method) { + config.method = this.defaults.method.toLowerCase(); + } else { + config.method = 'get'; + } + + // Hook up interceptors middleware + var chain = [dispatchRequest, undefined]; + var promise = Promise.resolve(config); + + this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { + chain.unshift(interceptor.fulfilled, interceptor.rejected); + }); + + this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { + chain.push(interceptor.fulfilled, interceptor.rejected); + }); + + while (chain.length) { + promise = promise.then(chain.shift(), chain.shift()); + } + + return promise; +}; + +Axios.prototype.getUri = function getUri(config) { + config = mergeConfig(this.defaults, config); + return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\?/, ''); +}; + +// Provide aliases for supported request methods +utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { + /*eslint func-names:0*/ + Axios.prototype[method] = function(url, config) { + return this.request(utils.merge(config || {}, { + method: method, + url: url + })); + }; +}); + +utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + /*eslint func-names:0*/ + Axios.prototype[method] = function(url, data, config) { + return this.request(utils.merge(config || {}, { + method: method, + url: url, + data: data + })); + }; +}); + +module.exports = Axios; diff --git a/node_modules/axios/lib/core/InterceptorManager.js b/node_modules/axios/lib/core/InterceptorManager.js new file mode 100644 index 0000000..50d667b --- /dev/null +++ b/node_modules/axios/lib/core/InterceptorManager.js @@ -0,0 +1,52 @@ +'use strict'; + +var utils = require('./../utils'); + +function InterceptorManager() { + this.handlers = []; +} + +/** + * Add a new interceptor to the stack + * + * @param {Function} fulfilled The function to handle `then` for a `Promise` + * @param {Function} rejected The function to handle `reject` for a `Promise` + * + * @return {Number} An ID used to remove interceptor later + */ +InterceptorManager.prototype.use = function use(fulfilled, rejected) { + this.handlers.push({ + fulfilled: fulfilled, + rejected: rejected + }); + return this.handlers.length - 1; +}; + +/** + * Remove an interceptor from the stack + * + * @param {Number} id The ID that was returned by `use` + */ +InterceptorManager.prototype.eject = function eject(id) { + if (this.handlers[id]) { + this.handlers[id] = null; + } +}; + +/** + * Iterate over all the registered interceptors + * + * This method is particularly useful for skipping over any + * interceptors that may have become `null` calling `eject`. + * + * @param {Function} fn The function to call for each interceptor + */ +InterceptorManager.prototype.forEach = function forEach(fn) { + utils.forEach(this.handlers, function forEachHandler(h) { + if (h !== null) { + fn(h); + } + }); +}; + +module.exports = InterceptorManager; diff --git a/node_modules/axios/lib/core/README.md b/node_modules/axios/lib/core/README.md new file mode 100644 index 0000000..253bc48 --- /dev/null +++ b/node_modules/axios/lib/core/README.md @@ -0,0 +1,7 @@ +# axios // core + +The modules found in `core/` should be modules that are specific to the domain logic of axios. These modules would most likely not make sense to be consumed outside of the axios module, as their logic is too specific. Some examples of core modules are: + +- Dispatching requests +- Managing interceptors +- Handling config diff --git a/node_modules/axios/lib/core/buildFullPath.js b/node_modules/axios/lib/core/buildFullPath.js new file mode 100644 index 0000000..00b2b05 --- /dev/null +++ b/node_modules/axios/lib/core/buildFullPath.js @@ -0,0 +1,20 @@ +'use strict'; + +var isAbsoluteURL = require('../helpers/isAbsoluteURL'); +var combineURLs = require('../helpers/combineURLs'); + +/** + * Creates a new URL by combining the baseURL with the requestedURL, + * only when the requestedURL is not already an absolute URL. + * If the requestURL is absolute, this function returns the requestedURL untouched. + * + * @param {string} baseURL The base URL + * @param {string} requestedURL Absolute or relative URL to combine + * @returns {string} The combined full path + */ +module.exports = function buildFullPath(baseURL, requestedURL) { + if (baseURL && !isAbsoluteURL(requestedURL)) { + return combineURLs(baseURL, requestedURL); + } + return requestedURL; +}; diff --git a/node_modules/axios/lib/core/createError.js b/node_modules/axios/lib/core/createError.js new file mode 100644 index 0000000..933680f --- /dev/null +++ b/node_modules/axios/lib/core/createError.js @@ -0,0 +1,18 @@ +'use strict'; + +var enhanceError = require('./enhanceError'); + +/** + * Create an Error with the specified message, config, error code, request and response. + * + * @param {string} message The error message. + * @param {Object} config The config. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * @returns {Error} The created error. + */ +module.exports = function createError(message, config, code, request, response) { + var error = new Error(message); + return enhanceError(error, config, code, request, response); +}; diff --git a/node_modules/axios/lib/core/dispatchRequest.js b/node_modules/axios/lib/core/dispatchRequest.js new file mode 100644 index 0000000..c8267ad --- /dev/null +++ b/node_modules/axios/lib/core/dispatchRequest.js @@ -0,0 +1,79 @@ +'use strict'; + +var utils = require('./../utils'); +var transformData = require('./transformData'); +var isCancel = require('../cancel/isCancel'); +var defaults = require('../defaults'); + +/** + * Throws a `Cancel` if cancellation has been requested. + */ +function throwIfCancellationRequested(config) { + if (config.cancelToken) { + config.cancelToken.throwIfRequested(); + } +} + +/** + * Dispatch a request to the server using the configured adapter. + * + * @param {object} config The config that is to be used for the request + * @returns {Promise} The Promise to be fulfilled + */ +module.exports = function dispatchRequest(config) { + throwIfCancellationRequested(config); + + // Ensure headers exist + config.headers = config.headers || {}; + + // Transform request data + config.data = transformData( + config.data, + config.headers, + config.transformRequest + ); + + // Flatten headers + config.headers = utils.merge( + config.headers.common || {}, + config.headers[config.method] || {}, + config.headers + ); + + utils.forEach( + ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], + function cleanHeaderConfig(method) { + delete config.headers[method]; + } + ); + + var adapter = config.adapter || defaults.adapter; + + return adapter(config).then(function onAdapterResolution(response) { + throwIfCancellationRequested(config); + + // Transform response data + response.data = transformData( + response.data, + response.headers, + config.transformResponse + ); + + return response; + }, function onAdapterRejection(reason) { + if (!isCancel(reason)) { + throwIfCancellationRequested(config); + + // Transform response data + if (reason && reason.response) { + reason.response.data = transformData( + reason.response.data, + reason.response.headers, + config.transformResponse + ); + } + } + + return Promise.reject(reason); + }); +}; diff --git a/node_modules/axios/lib/core/enhanceError.js b/node_modules/axios/lib/core/enhanceError.js new file mode 100644 index 0000000..02fbbd6 --- /dev/null +++ b/node_modules/axios/lib/core/enhanceError.js @@ -0,0 +1,42 @@ +'use strict'; + +/** + * Update an Error with the specified config, error code, and response. + * + * @param {Error} error The error to update. + * @param {Object} config The config. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * @returns {Error} The error. + */ +module.exports = function enhanceError(error, config, code, request, response) { + error.config = config; + if (code) { + error.code = code; + } + + error.request = request; + error.response = response; + error.isAxiosError = true; + + error.toJSON = function() { + return { + // Standard + message: this.message, + name: this.name, + // Microsoft + description: this.description, + number: this.number, + // Mozilla + fileName: this.fileName, + lineNumber: this.lineNumber, + columnNumber: this.columnNumber, + stack: this.stack, + // Axios + config: this.config, + code: this.code + }; + }; + return error; +}; diff --git a/node_modules/axios/lib/core/mergeConfig.js b/node_modules/axios/lib/core/mergeConfig.js new file mode 100644 index 0000000..8e1ce61 --- /dev/null +++ b/node_modules/axios/lib/core/mergeConfig.js @@ -0,0 +1,73 @@ +'use strict'; + +var utils = require('../utils'); + +/** + * Config-specific merge-function which creates a new config-object + * by merging two configuration objects together. + * + * @param {Object} config1 + * @param {Object} config2 + * @returns {Object} New object resulting from merging config2 to config1 + */ +module.exports = function mergeConfig(config1, config2) { + // eslint-disable-next-line no-param-reassign + config2 = config2 || {}; + var config = {}; + + var valueFromConfig2Keys = ['url', 'method', 'params', 'data']; + var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy']; + var defaultToConfig2Keys = [ + 'baseURL', 'url', 'transformRequest', 'transformResponse', 'paramsSerializer', + 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', + 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', + 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent', + 'httpsAgent', 'cancelToken', 'socketPath' + ]; + + utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) { + if (typeof config2[prop] !== 'undefined') { + config[prop] = config2[prop]; + } + }); + + utils.forEach(mergeDeepPropertiesKeys, function mergeDeepProperties(prop) { + if (utils.isObject(config2[prop])) { + config[prop] = utils.deepMerge(config1[prop], config2[prop]); + } else if (typeof config2[prop] !== 'undefined') { + config[prop] = config2[prop]; + } else if (utils.isObject(config1[prop])) { + config[prop] = utils.deepMerge(config1[prop]); + } else if (typeof config1[prop] !== 'undefined') { + config[prop] = config1[prop]; + } + }); + + utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) { + if (typeof config2[prop] !== 'undefined') { + config[prop] = config2[prop]; + } else if (typeof config1[prop] !== 'undefined') { + config[prop] = config1[prop]; + } + }); + + var axiosKeys = valueFromConfig2Keys + .concat(mergeDeepPropertiesKeys) + .concat(defaultToConfig2Keys); + + var otherKeys = Object + .keys(config2) + .filter(function filterAxiosKeys(key) { + return axiosKeys.indexOf(key) === -1; + }); + + utils.forEach(otherKeys, function otherKeysDefaultToConfig2(prop) { + if (typeof config2[prop] !== 'undefined') { + config[prop] = config2[prop]; + } else if (typeof config1[prop] !== 'undefined') { + config[prop] = config1[prop]; + } + }); + + return config; +}; diff --git a/node_modules/axios/lib/core/settle.js b/node_modules/axios/lib/core/settle.js new file mode 100644 index 0000000..071d9e3 --- /dev/null +++ b/node_modules/axios/lib/core/settle.js @@ -0,0 +1,25 @@ +'use strict'; + +var createError = require('./createError'); + +/** + * Resolve or reject a Promise based on response status. + * + * @param {Function} resolve A function that resolves the promise. + * @param {Function} reject A function that rejects the promise. + * @param {object} response The response. + */ +module.exports = function settle(resolve, reject, response) { + var validateStatus = response.config.validateStatus; + if (!validateStatus || validateStatus(response.status)) { + resolve(response); + } else { + reject(createError( + 'Request failed with status code ' + response.status, + response.config, + null, + response.request, + response + )); + } +}; diff --git a/node_modules/axios/lib/core/transformData.js b/node_modules/axios/lib/core/transformData.js new file mode 100644 index 0000000..e065362 --- /dev/null +++ b/node_modules/axios/lib/core/transformData.js @@ -0,0 +1,20 @@ +'use strict'; + +var utils = require('./../utils'); + +/** + * Transform the data for a request or a response + * + * @param {Object|String} data The data to be transformed + * @param {Array} headers The headers for the request or response + * @param {Array|Function} fns A single function or Array of functions + * @returns {*} The resulting transformed data + */ +module.exports = function transformData(data, headers, fns) { + /*eslint no-param-reassign:0*/ + utils.forEach(fns, function transform(fn) { + data = fn(data, headers); + }); + + return data; +}; diff --git a/node_modules/axios/lib/defaults.js b/node_modules/axios/lib/defaults.js new file mode 100644 index 0000000..23e1cbd --- /dev/null +++ b/node_modules/axios/lib/defaults.js @@ -0,0 +1,97 @@ +'use strict'; + +var utils = require('./utils'); +var normalizeHeaderName = require('./helpers/normalizeHeaderName'); + +var DEFAULT_CONTENT_TYPE = { + 'Content-Type': 'application/x-www-form-urlencoded' +}; + +function setContentTypeIfUnset(headers, value) { + if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) { + headers['Content-Type'] = value; + } +} + +function getDefaultAdapter() { + var adapter; + if (typeof XMLHttpRequest !== 'undefined') { + // For browsers use XHR adapter + adapter = require('./adapters/xhr'); + } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') { + // For node use HTTP adapter + adapter = require('./adapters/http'); + } + return adapter; +} + +var defaults = { + adapter: getDefaultAdapter(), + + transformRequest: [function transformRequest(data, headers) { + normalizeHeaderName(headers, 'Accept'); + normalizeHeaderName(headers, 'Content-Type'); + if (utils.isFormData(data) || + utils.isArrayBuffer(data) || + utils.isBuffer(data) || + utils.isStream(data) || + utils.isFile(data) || + utils.isBlob(data) + ) { + return data; + } + if (utils.isArrayBufferView(data)) { + return data.buffer; + } + if (utils.isURLSearchParams(data)) { + setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8'); + return data.toString(); + } + if (utils.isObject(data)) { + setContentTypeIfUnset(headers, 'application/json;charset=utf-8'); + return JSON.stringify(data); + } + return data; + }], + + transformResponse: [function transformResponse(data) { + /*eslint no-param-reassign:0*/ + if (typeof data === 'string') { + try { + data = JSON.parse(data); + } catch (e) { /* Ignore */ } + } + return data; + }], + + /** + * A timeout in milliseconds to abort a request. If set to 0 (default) a + * timeout is not created. + */ + timeout: 0, + + xsrfCookieName: 'XSRF-TOKEN', + xsrfHeaderName: 'X-XSRF-TOKEN', + + maxContentLength: -1, + + validateStatus: function validateStatus(status) { + return status >= 200 && status < 300; + } +}; + +defaults.headers = { + common: { + 'Accept': 'application/json, text/plain, */*' + } +}; + +utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) { + defaults.headers[method] = {}; +}); + +utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE); +}); + +module.exports = defaults; diff --git a/node_modules/axios/lib/helpers/README.md b/node_modules/axios/lib/helpers/README.md new file mode 100644 index 0000000..4ae3419 --- /dev/null +++ b/node_modules/axios/lib/helpers/README.md @@ -0,0 +1,7 @@ +# axios // helpers + +The modules found in `helpers/` should be generic modules that are _not_ specific to the domain logic of axios. These modules could theoretically be published to npm on their own and consumed by other modules or apps. Some examples of generic modules are things like: + +- Browser polyfills +- Managing cookies +- Parsing HTTP headers diff --git a/node_modules/axios/lib/helpers/bind.js b/node_modules/axios/lib/helpers/bind.js new file mode 100644 index 0000000..6147c60 --- /dev/null +++ b/node_modules/axios/lib/helpers/bind.js @@ -0,0 +1,11 @@ +'use strict'; + +module.exports = function bind(fn, thisArg) { + return function wrap() { + var args = new Array(arguments.length); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i]; + } + return fn.apply(thisArg, args); + }; +}; diff --git a/node_modules/axios/lib/helpers/buildURL.js b/node_modules/axios/lib/helpers/buildURL.js new file mode 100644 index 0000000..8c40e40 --- /dev/null +++ b/node_modules/axios/lib/helpers/buildURL.js @@ -0,0 +1,71 @@ +'use strict'; + +var utils = require('./../utils'); + +function encode(val) { + return encodeURIComponent(val). + replace(/%40/gi, '@'). + replace(/%3A/gi, ':'). + replace(/%24/g, '$'). + replace(/%2C/gi, ','). + replace(/%20/g, '+'). + replace(/%5B/gi, '['). + replace(/%5D/gi, ']'); +} + +/** + * Build a URL by appending params to the end + * + * @param {string} url The base of the url (e.g., http://www.google.com) + * @param {object} [params] The params to be appended + * @returns {string} The formatted url + */ +module.exports = function buildURL(url, params, paramsSerializer) { + /*eslint no-param-reassign:0*/ + if (!params) { + return url; + } + + var serializedParams; + if (paramsSerializer) { + serializedParams = paramsSerializer(params); + } else if (utils.isURLSearchParams(params)) { + serializedParams = params.toString(); + } else { + var parts = []; + + utils.forEach(params, function serialize(val, key) { + if (val === null || typeof val === 'undefined') { + return; + } + + if (utils.isArray(val)) { + key = key + '[]'; + } else { + val = [val]; + } + + utils.forEach(val, function parseValue(v) { + if (utils.isDate(v)) { + v = v.toISOString(); + } else if (utils.isObject(v)) { + v = JSON.stringify(v); + } + parts.push(encode(key) + '=' + encode(v)); + }); + }); + + serializedParams = parts.join('&'); + } + + if (serializedParams) { + var hashmarkIndex = url.indexOf('#'); + if (hashmarkIndex !== -1) { + url = url.slice(0, hashmarkIndex); + } + + url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; + } + + return url; +}; diff --git a/node_modules/axios/lib/helpers/combineURLs.js b/node_modules/axios/lib/helpers/combineURLs.js new file mode 100644 index 0000000..f1b58a5 --- /dev/null +++ b/node_modules/axios/lib/helpers/combineURLs.js @@ -0,0 +1,14 @@ +'use strict'; + +/** + * Creates a new URL by combining the specified URLs + * + * @param {string} baseURL The base URL + * @param {string} relativeURL The relative URL + * @returns {string} The combined URL + */ +module.exports = function combineURLs(baseURL, relativeURL) { + return relativeURL + ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '') + : baseURL; +}; diff --git a/node_modules/axios/lib/helpers/cookies.js b/node_modules/axios/lib/helpers/cookies.js new file mode 100644 index 0000000..5a8a666 --- /dev/null +++ b/node_modules/axios/lib/helpers/cookies.js @@ -0,0 +1,53 @@ +'use strict'; + +var utils = require('./../utils'); + +module.exports = ( + utils.isStandardBrowserEnv() ? + + // Standard browser envs support document.cookie + (function standardBrowserEnv() { + return { + write: function write(name, value, expires, path, domain, secure) { + var cookie = []; + cookie.push(name + '=' + encodeURIComponent(value)); + + if (utils.isNumber(expires)) { + cookie.push('expires=' + new Date(expires).toGMTString()); + } + + if (utils.isString(path)) { + cookie.push('path=' + path); + } + + if (utils.isString(domain)) { + cookie.push('domain=' + domain); + } + + if (secure === true) { + cookie.push('secure'); + } + + document.cookie = cookie.join('; '); + }, + + read: function read(name) { + var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); + return (match ? decodeURIComponent(match[3]) : null); + }, + + remove: function remove(name) { + this.write(name, '', Date.now() - 86400000); + } + }; + })() : + + // Non standard browser env (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return { + write: function write() {}, + read: function read() { return null; }, + remove: function remove() {} + }; + })() +); diff --git a/node_modules/axios/lib/helpers/deprecatedMethod.js b/node_modules/axios/lib/helpers/deprecatedMethod.js new file mode 100644 index 0000000..ed40965 --- /dev/null +++ b/node_modules/axios/lib/helpers/deprecatedMethod.js @@ -0,0 +1,24 @@ +'use strict'; + +/*eslint no-console:0*/ + +/** + * Supply a warning to the developer that a method they are using + * has been deprecated. + * + * @param {string} method The name of the deprecated method + * @param {string} [instead] The alternate method to use if applicable + * @param {string} [docs] The documentation URL to get further details + */ +module.exports = function deprecatedMethod(method, instead, docs) { + try { + console.warn( + 'DEPRECATED method `' + method + '`.' + + (instead ? ' Use `' + instead + '` instead.' : '') + + ' This method will be removed in a future release.'); + + if (docs) { + console.warn('For more information about usage see ' + docs); + } + } catch (e) { /* Ignore */ } +}; diff --git a/node_modules/axios/lib/helpers/isAbsoluteURL.js b/node_modules/axios/lib/helpers/isAbsoluteURL.js new file mode 100644 index 0000000..d33e992 --- /dev/null +++ b/node_modules/axios/lib/helpers/isAbsoluteURL.js @@ -0,0 +1,14 @@ +'use strict'; + +/** + * Determines whether the specified URL is absolute + * + * @param {string} url The URL to test + * @returns {boolean} True if the specified URL is absolute, otherwise false + */ +module.exports = function isAbsoluteURL(url) { + // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). + // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed + // by any combination of letters, digits, plus, period, or hyphen. + return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(url); +}; diff --git a/node_modules/axios/lib/helpers/isURLSameOrigin.js b/node_modules/axios/lib/helpers/isURLSameOrigin.js new file mode 100644 index 0000000..f1d89ad --- /dev/null +++ b/node_modules/axios/lib/helpers/isURLSameOrigin.js @@ -0,0 +1,68 @@ +'use strict'; + +var utils = require('./../utils'); + +module.exports = ( + utils.isStandardBrowserEnv() ? + + // Standard browser envs have full support of the APIs needed to test + // whether the request URL is of the same origin as current location. + (function standardBrowserEnv() { + var msie = /(msie|trident)/i.test(navigator.userAgent); + var urlParsingNode = document.createElement('a'); + var originURL; + + /** + * Parse a URL to discover it's components + * + * @param {String} url The URL to be parsed + * @returns {Object} + */ + function resolveURL(url) { + var href = url; + + if (msie) { + // IE needs attribute set twice to normalize properties + urlParsingNode.setAttribute('href', href); + href = urlParsingNode.href; + } + + urlParsingNode.setAttribute('href', href); + + // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils + return { + href: urlParsingNode.href, + protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '', + host: urlParsingNode.host, + search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', + hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', + hostname: urlParsingNode.hostname, + port: urlParsingNode.port, + pathname: (urlParsingNode.pathname.charAt(0) === '/') ? + urlParsingNode.pathname : + '/' + urlParsingNode.pathname + }; + } + + originURL = resolveURL(window.location.href); + + /** + * Determine if a URL shares the same origin as the current location + * + * @param {String} requestURL The URL to test + * @returns {boolean} True if URL shares the same origin, otherwise false + */ + return function isURLSameOrigin(requestURL) { + var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL; + return (parsed.protocol === originURL.protocol && + parsed.host === originURL.host); + }; + })() : + + // Non standard browser envs (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return function isURLSameOrigin() { + return true; + }; + })() +); diff --git a/node_modules/axios/lib/helpers/normalizeHeaderName.js b/node_modules/axios/lib/helpers/normalizeHeaderName.js new file mode 100644 index 0000000..738c9fe --- /dev/null +++ b/node_modules/axios/lib/helpers/normalizeHeaderName.js @@ -0,0 +1,12 @@ +'use strict'; + +var utils = require('../utils'); + +module.exports = function normalizeHeaderName(headers, normalizedName) { + utils.forEach(headers, function processHeader(value, name) { + if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) { + headers[normalizedName] = value; + delete headers[name]; + } + }); +}; diff --git a/node_modules/axios/lib/helpers/parseHeaders.js b/node_modules/axios/lib/helpers/parseHeaders.js new file mode 100644 index 0000000..8af2cc7 --- /dev/null +++ b/node_modules/axios/lib/helpers/parseHeaders.js @@ -0,0 +1,53 @@ +'use strict'; + +var utils = require('./../utils'); + +// Headers whose duplicates are ignored by node +// c.f. https://nodejs.org/api/http.html#http_message_headers +var ignoreDuplicateOf = [ + 'age', 'authorization', 'content-length', 'content-type', 'etag', + 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', + 'last-modified', 'location', 'max-forwards', 'proxy-authorization', + 'referer', 'retry-after', 'user-agent' +]; + +/** + * Parse headers into an object + * + * ``` + * Date: Wed, 27 Aug 2014 08:58:49 GMT + * Content-Type: application/json + * Connection: keep-alive + * Transfer-Encoding: chunked + * ``` + * + * @param {String} headers Headers needing to be parsed + * @returns {Object} Headers parsed into an object + */ +module.exports = function parseHeaders(headers) { + var parsed = {}; + var key; + var val; + var i; + + if (!headers) { return parsed; } + + utils.forEach(headers.split('\n'), function parser(line) { + i = line.indexOf(':'); + key = utils.trim(line.substr(0, i)).toLowerCase(); + val = utils.trim(line.substr(i + 1)); + + if (key) { + if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) { + return; + } + if (key === 'set-cookie') { + parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]); + } else { + parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; + } + } + }); + + return parsed; +}; diff --git a/node_modules/axios/lib/helpers/spread.js b/node_modules/axios/lib/helpers/spread.js new file mode 100644 index 0000000..25e3cdd --- /dev/null +++ b/node_modules/axios/lib/helpers/spread.js @@ -0,0 +1,27 @@ +'use strict'; + +/** + * Syntactic sugar for invoking a function and expanding an array for arguments. + * + * Common use case would be to use `Function.prototype.apply`. + * + * ```js + * function f(x, y, z) {} + * var args = [1, 2, 3]; + * f.apply(null, args); + * ``` + * + * With `spread` this example can be re-written. + * + * ```js + * spread(function(x, y, z) {})([1, 2, 3]); + * ``` + * + * @param {Function} callback + * @returns {Function} + */ +module.exports = function spread(callback) { + return function wrap(arr) { + return callback.apply(null, arr); + }; +}; diff --git a/node_modules/axios/lib/utils.js b/node_modules/axios/lib/utils.js new file mode 100644 index 0000000..e028c67 --- /dev/null +++ b/node_modules/axios/lib/utils.js @@ -0,0 +1,344 @@ +'use strict'; + +var bind = require('./helpers/bind'); + +/*global toString:true*/ + +// utils is a library of generic helper functions non-specific to axios + +var toString = Object.prototype.toString; + +/** + * Determine if a value is an Array + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an Array, otherwise false + */ +function isArray(val) { + return toString.call(val) === '[object Array]'; +} + +/** + * Determine if a value is undefined + * + * @param {Object} val The value to test + * @returns {boolean} True if the value is undefined, otherwise false + */ +function isUndefined(val) { + return typeof val === 'undefined'; +} + +/** + * Determine if a value is a Buffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Buffer, otherwise false + */ +function isBuffer(val) { + return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) + && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val); +} + +/** + * Determine if a value is an ArrayBuffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an ArrayBuffer, otherwise false + */ +function isArrayBuffer(val) { + return toString.call(val) === '[object ArrayBuffer]'; +} + +/** + * Determine if a value is a FormData + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an FormData, otherwise false + */ +function isFormData(val) { + return (typeof FormData !== 'undefined') && (val instanceof FormData); +} + +/** + * Determine if a value is a view on an ArrayBuffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false + */ +function isArrayBufferView(val) { + var result; + if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) { + result = ArrayBuffer.isView(val); + } else { + result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer); + } + return result; +} + +/** + * Determine if a value is a String + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a String, otherwise false + */ +function isString(val) { + return typeof val === 'string'; +} + +/** + * Determine if a value is a Number + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Number, otherwise false + */ +function isNumber(val) { + return typeof val === 'number'; +} + +/** + * Determine if a value is an Object + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an Object, otherwise false + */ +function isObject(val) { + return val !== null && typeof val === 'object'; +} + +/** + * Determine if a value is a Date + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Date, otherwise false + */ +function isDate(val) { + return toString.call(val) === '[object Date]'; +} + +/** + * Determine if a value is a File + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a File, otherwise false + */ +function isFile(val) { + return toString.call(val) === '[object File]'; +} + +/** + * Determine if a value is a Blob + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Blob, otherwise false + */ +function isBlob(val) { + return toString.call(val) === '[object Blob]'; +} + +/** + * Determine if a value is a Function + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Function, otherwise false + */ +function isFunction(val) { + return toString.call(val) === '[object Function]'; +} + +/** + * Determine if a value is a Stream + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Stream, otherwise false + */ +function isStream(val) { + return isObject(val) && isFunction(val.pipe); +} + +/** + * Determine if a value is a URLSearchParams object + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a URLSearchParams object, otherwise false + */ +function isURLSearchParams(val) { + return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams; +} + +/** + * Trim excess whitespace off the beginning and end of a string + * + * @param {String} str The String to trim + * @returns {String} The String freed of excess whitespace + */ +function trim(str) { + return str.replace(/^\s*/, '').replace(/\s*$/, ''); +} + +/** + * Determine if we're running in a standard browser environment + * + * This allows axios to run in a web worker, and react-native. + * Both environments support XMLHttpRequest, but not fully standard globals. + * + * web workers: + * typeof window -> undefined + * typeof document -> undefined + * + * react-native: + * navigator.product -> 'ReactNative' + * nativescript + * navigator.product -> 'NativeScript' or 'NS' + */ +function isStandardBrowserEnv() { + if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || + navigator.product === 'NativeScript' || + navigator.product === 'NS')) { + return false; + } + return ( + typeof window !== 'undefined' && + typeof document !== 'undefined' + ); +} + +/** + * Iterate over an Array or an Object invoking a function for each item. + * + * If `obj` is an Array callback will be called passing + * the value, index, and complete array for each item. + * + * If 'obj' is an Object callback will be called passing + * the value, key, and complete object for each property. + * + * @param {Object|Array} obj The object to iterate + * @param {Function} fn The callback to invoke for each item + */ +function forEach(obj, fn) { + // Don't bother if no value provided + if (obj === null || typeof obj === 'undefined') { + return; + } + + // Force an array if not already something iterable + if (typeof obj !== 'object') { + /*eslint no-param-reassign:0*/ + obj = [obj]; + } + + if (isArray(obj)) { + // Iterate over array values + for (var i = 0, l = obj.length; i < l; i++) { + fn.call(null, obj[i], i, obj); + } + } else { + // Iterate over object keys + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + fn.call(null, obj[key], key, obj); + } + } + } +} + +/** + * Accepts varargs expecting each argument to be an object, then + * immutably merges the properties of each object and returns result. + * + * When multiple objects contain the same key the later object in + * the arguments list will take precedence. + * + * Example: + * + * ```js + * var result = merge({foo: 123}, {foo: 456}); + * console.log(result.foo); // outputs 456 + * ``` + * + * @param {Object} obj1 Object to merge + * @returns {Object} Result of all merge properties + */ +function merge(/* obj1, obj2, obj3, ... */) { + var result = {}; + function assignValue(val, key) { + if (typeof result[key] === 'object' && typeof val === 'object') { + result[key] = merge(result[key], val); + } else { + result[key] = val; + } + } + + for (var i = 0, l = arguments.length; i < l; i++) { + forEach(arguments[i], assignValue); + } + return result; +} + +/** + * Function equal to merge with the difference being that no reference + * to original objects is kept. + * + * @see merge + * @param {Object} obj1 Object to merge + * @returns {Object} Result of all merge properties + */ +function deepMerge(/* obj1, obj2, obj3, ... */) { + var result = {}; + function assignValue(val, key) { + if (typeof result[key] === 'object' && typeof val === 'object') { + result[key] = deepMerge(result[key], val); + } else if (typeof val === 'object') { + result[key] = deepMerge({}, val); + } else { + result[key] = val; + } + } + + for (var i = 0, l = arguments.length; i < l; i++) { + forEach(arguments[i], assignValue); + } + return result; +} + +/** + * Extends object a by mutably adding to it the properties of object b. + * + * @param {Object} a The object to be extended + * @param {Object} b The object to copy properties from + * @param {Object} thisArg The object to bind function to + * @return {Object} The resulting value of object a + */ +function extend(a, b, thisArg) { + forEach(b, function assignValue(val, key) { + if (thisArg && typeof val === 'function') { + a[key] = bind(val, thisArg); + } else { + a[key] = val; + } + }); + return a; +} + +module.exports = { + isArray: isArray, + isArrayBuffer: isArrayBuffer, + isBuffer: isBuffer, + isFormData: isFormData, + isArrayBufferView: isArrayBufferView, + isString: isString, + isNumber: isNumber, + isObject: isObject, + isUndefined: isUndefined, + isDate: isDate, + isFile: isFile, + isBlob: isBlob, + isFunction: isFunction, + isStream: isStream, + isURLSearchParams: isURLSearchParams, + isStandardBrowserEnv: isStandardBrowserEnv, + forEach: forEach, + merge: merge, + deepMerge: deepMerge, + extend: extend, + trim: trim +}; diff --git a/node_modules/axios/package.json b/node_modules/axios/package.json new file mode 100644 index 0000000..310a555 --- /dev/null +++ b/node_modules/axios/package.json @@ -0,0 +1,111 @@ +{ + "_from": "axios@^0.19.2", + "_id": "axios@0.19.2", + "_inBundle": false, + "_integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", + "_location": "/axios", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "axios@^0.19.2", + "name": "axios", + "escapedName": "axios", + "rawSpec": "^0.19.2", + "saveSpec": null, + "fetchSpec": "^0.19.2" + }, + "_requiredBy": [ + "/wait-on" + ], + "_resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", + "_shasum": "3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27", + "_spec": "axios@^0.19.2", + "_where": "/home/wyrihaximus/Projects/WyriHaximus/github-action-helm3/node_modules/wait-on", + "author": { + "name": "Matt Zabriskie" + }, + "browser": { + "./lib/adapters/http.js": "./lib/adapters/xhr.js" + }, + "bugs": { + "url": "https://github.com/axios/axios/issues" + }, + "bundleDependencies": false, + "bundlesize": [ + { + "path": "./dist/axios.min.js", + "threshold": "5kB" + } + ], + "dependencies": { + "follow-redirects": "1.5.10" + }, + "deprecated": "Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410", + "description": "Promise based HTTP client for the browser and node.js", + "devDependencies": { + "bundlesize": "^0.17.0", + "coveralls": "^3.0.0", + "es6-promise": "^4.2.4", + "grunt": "^1.0.2", + "grunt-banner": "^0.6.0", + "grunt-cli": "^1.2.0", + "grunt-contrib-clean": "^1.1.0", + "grunt-contrib-watch": "^1.0.0", + "grunt-eslint": "^20.1.0", + "grunt-karma": "^2.0.0", + "grunt-mocha-test": "^0.13.3", + "grunt-ts": "^6.0.0-beta.19", + "grunt-webpack": "^1.0.18", + "istanbul-instrumenter-loader": "^1.0.0", + "jasmine-core": "^2.4.1", + "karma": "^1.3.0", + "karma-chrome-launcher": "^2.2.0", + "karma-coverage": "^1.1.1", + "karma-firefox-launcher": "^1.1.0", + "karma-jasmine": "^1.1.1", + "karma-jasmine-ajax": "^0.1.13", + "karma-opera-launcher": "^1.0.0", + "karma-safari-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.2.0", + "karma-sinon": "^1.0.5", + "karma-sourcemap-loader": "^0.3.7", + "karma-webpack": "^1.7.0", + "load-grunt-tasks": "^3.5.2", + "minimist": "^1.2.0", + "mocha": "^5.2.0", + "sinon": "^4.5.0", + "typescript": "^2.8.1", + "url-search-params": "^0.10.0", + "webpack": "^1.13.1", + "webpack-dev-server": "^1.14.1" + }, + "homepage": "https://github.com/axios/axios", + "keywords": [ + "xhr", + "http", + "ajax", + "promise", + "node" + ], + "license": "MIT", + "main": "index.js", + "name": "axios", + "repository": { + "type": "git", + "url": "git+https://github.com/axios/axios.git" + }, + "scripts": { + "build": "NODE_ENV=production grunt build", + "coveralls": "cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js", + "examples": "node ./examples/server.js", + "fix": "eslint --fix lib/**/*.js", + "postversion": "git push && git push --tags", + "preversion": "npm test", + "start": "node ./sandbox/server.js", + "test": "grunt test && bundlesize", + "version": "npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json" + }, + "typings": "./index.d.ts", + "version": "0.19.2" +} diff --git a/node_modules/debug/.coveralls.yml b/node_modules/debug/.coveralls.yml new file mode 100644 index 0000000..20a7068 --- /dev/null +++ b/node_modules/debug/.coveralls.yml @@ -0,0 +1 @@ +repo_token: SIAeZjKYlHK74rbcFvNHMUzjRiMpflxve diff --git a/node_modules/debug/.eslintrc b/node_modules/debug/.eslintrc new file mode 100644 index 0000000..146371e --- /dev/null +++ b/node_modules/debug/.eslintrc @@ -0,0 +1,14 @@ +{ + "env": { + "browser": true, + "node": true + }, + "globals": { + "chrome": true + }, + "rules": { + "no-console": 0, + "no-empty": [1, { "allowEmptyCatch": true }] + }, + "extends": "eslint:recommended" +} diff --git a/node_modules/debug/.npmignore b/node_modules/debug/.npmignore new file mode 100644 index 0000000..5f60eec --- /dev/null +++ b/node_modules/debug/.npmignore @@ -0,0 +1,9 @@ +support +test +examples +example +*.sock +dist +yarn.lock +coverage +bower.json diff --git a/node_modules/debug/.travis.yml b/node_modules/debug/.travis.yml new file mode 100644 index 0000000..a764300 --- /dev/null +++ b/node_modules/debug/.travis.yml @@ -0,0 +1,20 @@ +sudo: false + +language: node_js + +node_js: + - "4" + - "6" + - "8" + +install: + - make install + +script: + - make lint + - make test + +matrix: + include: + - node_js: '8' + env: BROWSER=1 diff --git a/node_modules/debug/CHANGELOG.md b/node_modules/debug/CHANGELOG.md new file mode 100644 index 0000000..820d21e --- /dev/null +++ b/node_modules/debug/CHANGELOG.md @@ -0,0 +1,395 @@ + +3.1.0 / 2017-09-26 +================== + + * Add `DEBUG_HIDE_DATE` env var (#486) + * Remove ReDoS regexp in %o formatter (#504) + * Remove "component" from package.json + * Remove `component.json` + * Ignore package-lock.json + * Examples: fix colors printout + * Fix: browser detection + * Fix: spelling mistake (#496, @EdwardBetts) + +3.0.1 / 2017-08-24 +================== + + * Fix: Disable colors in Edge and Internet Explorer (#489) + +3.0.0 / 2017-08-08 +================== + + * Breaking: Remove DEBUG_FD (#406) + * Breaking: Use `Date#toISOString()` instead to `Date#toUTCString()` when output is not a TTY (#418) + * Breaking: Make millisecond timer namespace specific and allow 'always enabled' output (#408) + * Addition: document `enabled` flag (#465) + * Addition: add 256 colors mode (#481) + * Addition: `enabled()` updates existing debug instances, add `destroy()` function (#440) + * Update: component: update "ms" to v2.0.0 + * Update: separate the Node and Browser tests in Travis-CI + * Update: refactor Readme, fixed documentation, added "Namespace Colors" section, redid screenshots + * Update: separate Node.js and web browser examples for organization + * Update: update "browserify" to v14.4.0 + * Fix: fix Readme typo (#473) + +2.6.9 / 2017-09-22 +================== + + * remove ReDoS regexp in %o formatter (#504) + +2.6.8 / 2017-05-18 +================== + + * Fix: Check for undefined on browser globals (#462, @marbemac) + +2.6.7 / 2017-05-16 +================== + + * Fix: Update ms to 2.0.0 to fix regular expression denial of service vulnerability (#458, @hubdotcom) + * Fix: Inline extend function in node implementation (#452, @dougwilson) + * Docs: Fix typo (#455, @msasad) + +2.6.5 / 2017-04-27 +================== + + * Fix: null reference check on window.documentElement.style.WebkitAppearance (#447, @thebigredgeek) + * Misc: clean up browser reference checks (#447, @thebigredgeek) + * Misc: add npm-debug.log to .gitignore (@thebigredgeek) + + +2.6.4 / 2017-04-20 +================== + + * Fix: bug that would occur if process.env.DEBUG is a non-string value. (#444, @LucianBuzzo) + * Chore: ignore bower.json in npm installations. (#437, @joaovieira) + * Misc: update "ms" to v0.7.3 (@tootallnate) + +2.6.3 / 2017-03-13 +================== + + * Fix: Electron reference to `process.env.DEBUG` (#431, @paulcbetts) + * Docs: Changelog fix (@thebigredgeek) + +2.6.2 / 2017-03-10 +================== + + * Fix: DEBUG_MAX_ARRAY_LENGTH (#420, @slavaGanzin) + * Docs: Add backers and sponsors from Open Collective (#422, @piamancini) + * Docs: Add Slackin invite badge (@tootallnate) + +2.6.1 / 2017-02-10 +================== + + * Fix: Module's `export default` syntax fix for IE8 `Expected identifier` error + * Fix: Whitelist DEBUG_FD for values 1 and 2 only (#415, @pi0) + * Fix: IE8 "Expected identifier" error (#414, @vgoma) + * Fix: Namespaces would not disable once enabled (#409, @musikov) + +2.6.0 / 2016-12-28 +================== + + * Fix: added better null pointer checks for browser useColors (@thebigredgeek) + * Improvement: removed explicit `window.debug` export (#404, @tootallnate) + * Improvement: deprecated `DEBUG_FD` environment variable (#405, @tootallnate) + +2.5.2 / 2016-12-25 +================== + + * Fix: reference error on window within webworkers (#393, @KlausTrainer) + * Docs: fixed README typo (#391, @lurch) + * Docs: added notice about v3 api discussion (@thebigredgeek) + +2.5.1 / 2016-12-20 +================== + + * Fix: babel-core compatibility + +2.5.0 / 2016-12-20 +================== + + * Fix: wrong reference in bower file (@thebigredgeek) + * Fix: webworker compatibility (@thebigredgeek) + * Fix: output formatting issue (#388, @kribblo) + * Fix: babel-loader compatibility (#383, @escwald) + * Misc: removed built asset from repo and publications (@thebigredgeek) + * Misc: moved source files to /src (#378, @yamikuronue) + * Test: added karma integration and replaced babel with browserify for browser tests (#378, @yamikuronue) + * Test: coveralls integration (#378, @yamikuronue) + * Docs: simplified language in the opening paragraph (#373, @yamikuronue) + +2.4.5 / 2016-12-17 +================== + + * Fix: `navigator` undefined in Rhino (#376, @jochenberger) + * Fix: custom log function (#379, @hsiliev) + * Improvement: bit of cleanup + linting fixes (@thebigredgeek) + * Improvement: rm non-maintainted `dist/` dir (#375, @freewil) + * Docs: simplified language in the opening paragraph. (#373, @yamikuronue) + +2.4.4 / 2016-12-14 +================== + + * Fix: work around debug being loaded in preload scripts for electron (#368, @paulcbetts) + +2.4.3 / 2016-12-14 +================== + + * Fix: navigation.userAgent error for react native (#364, @escwald) + +2.4.2 / 2016-12-14 +================== + + * Fix: browser colors (#367, @tootallnate) + * Misc: travis ci integration (@thebigredgeek) + * Misc: added linting and testing boilerplate with sanity check (@thebigredgeek) + +2.4.1 / 2016-12-13 +================== + + * Fix: typo that broke the package (#356) + +2.4.0 / 2016-12-13 +================== + + * Fix: bower.json references unbuilt src entry point (#342, @justmatt) + * Fix: revert "handle regex special characters" (@tootallnate) + * Feature: configurable util.inspect()`options for NodeJS (#327, @tootallnate) + * Feature: %O`(big O) pretty-prints objects (#322, @tootallnate) + * Improvement: allow colors in workers (#335, @botverse) + * Improvement: use same color for same namespace. (#338, @lchenay) + +2.3.3 / 2016-11-09 +================== + + * Fix: Catch `JSON.stringify()` errors (#195, Jovan Alleyne) + * Fix: Returning `localStorage` saved values (#331, Levi Thomason) + * Improvement: Don't create an empty object when no `process` (Nathan Rajlich) + +2.3.2 / 2016-11-09 +================== + + * Fix: be super-safe in index.js as well (@TooTallNate) + * Fix: should check whether process exists (Tom Newby) + +2.3.1 / 2016-11-09 +================== + + * Fix: Added electron compatibility (#324, @paulcbetts) + * Improvement: Added performance optimizations (@tootallnate) + * Readme: Corrected PowerShell environment variable example (#252, @gimre) + * Misc: Removed yarn lock file from source control (#321, @fengmk2) + +2.3.0 / 2016-11-07 +================== + + * Fix: Consistent placement of ms diff at end of output (#215, @gorangajic) + * Fix: Escaping of regex special characters in namespace strings (#250, @zacronos) + * Fix: Fixed bug causing crash on react-native (#282, @vkarpov15) + * Feature: Enabled ES6+ compatible import via default export (#212 @bucaran) + * Feature: Added %O formatter to reflect Chrome's console.log capability (#279, @oncletom) + * Package: Update "ms" to 0.7.2 (#315, @DevSide) + * Package: removed superfluous version property from bower.json (#207 @kkirsche) + * Readme: fix USE_COLORS to DEBUG_COLORS + * Readme: Doc fixes for format string sugar (#269, @mlucool) + * Readme: Updated docs for DEBUG_FD and DEBUG_COLORS environment variables (#232, @mattlyons0) + * Readme: doc fixes for PowerShell (#271 #243, @exoticknight @unreadable) + * Readme: better docs for browser support (#224, @matthewmueller) + * Tooling: Added yarn integration for development (#317, @thebigredgeek) + * Misc: Renamed History.md to CHANGELOG.md (@thebigredgeek) + * Misc: Added license file (#226 #274, @CantemoInternal @sdaitzman) + * Misc: Updated contributors (@thebigredgeek) + +2.2.0 / 2015-05-09 +================== + + * package: update "ms" to v0.7.1 (#202, @dougwilson) + * README: add logging to file example (#193, @DanielOchoa) + * README: fixed a typo (#191, @amir-s) + * browser: expose `storage` (#190, @stephenmathieson) + * Makefile: add a `distclean` target (#189, @stephenmathieson) + +2.1.3 / 2015-03-13 +================== + + * Updated stdout/stderr example (#186) + * Updated example/stdout.js to match debug current behaviour + * Renamed example/stderr.js to stdout.js + * Update Readme.md (#184) + * replace high intensity foreground color for bold (#182, #183) + +2.1.2 / 2015-03-01 +================== + + * dist: recompile + * update "ms" to v0.7.0 + * package: update "browserify" to v9.0.3 + * component: fix "ms.js" repo location + * changed bower package name + * updated documentation about using debug in a browser + * fix: security error on safari (#167, #168, @yields) + +2.1.1 / 2014-12-29 +================== + + * browser: use `typeof` to check for `console` existence + * browser: check for `console.log` truthiness (fix IE 8/9) + * browser: add support for Chrome apps + * Readme: added Windows usage remarks + * Add `bower.json` to properly support bower install + +2.1.0 / 2014-10-15 +================== + + * node: implement `DEBUG_FD` env variable support + * package: update "browserify" to v6.1.0 + * package: add "license" field to package.json (#135, @panuhorsmalahti) + +2.0.0 / 2014-09-01 +================== + + * package: update "browserify" to v5.11.0 + * node: use stderr rather than stdout for logging (#29, @stephenmathieson) + +1.0.4 / 2014-07-15 +================== + + * dist: recompile + * example: remove `console.info()` log usage + * example: add "Content-Type" UTF-8 header to browser example + * browser: place %c marker after the space character + * browser: reset the "content" color via `color: inherit` + * browser: add colors support for Firefox >= v31 + * debug: prefer an instance `log()` function over the global one (#119) + * Readme: update documentation about styled console logs for FF v31 (#116, @wryk) + +1.0.3 / 2014-07-09 +================== + + * Add support for multiple wildcards in namespaces (#122, @seegno) + * browser: fix lint + +1.0.2 / 2014-06-10 +================== + + * browser: update color palette (#113, @gscottolson) + * common: make console logging function configurable (#108, @timoxley) + * node: fix %o colors on old node <= 0.8.x + * Makefile: find node path using shell/which (#109, @timoxley) + +1.0.1 / 2014-06-06 +================== + + * browser: use `removeItem()` to clear localStorage + * browser, node: don't set DEBUG if namespaces is undefined (#107, @leedm777) + * package: add "contributors" section + * node: fix comment typo + * README: list authors + +1.0.0 / 2014-06-04 +================== + + * make ms diff be global, not be scope + * debug: ignore empty strings in enable() + * node: make DEBUG_COLORS able to disable coloring + * *: export the `colors` array + * npmignore: don't publish the `dist` dir + * Makefile: refactor to use browserify + * package: add "browserify" as a dev dependency + * Readme: add Web Inspector Colors section + * node: reset terminal color for the debug content + * node: map "%o" to `util.inspect()` + * browser: map "%j" to `JSON.stringify()` + * debug: add custom "formatters" + * debug: use "ms" module for humanizing the diff + * Readme: add "bash" syntax highlighting + * browser: add Firebug color support + * browser: add colors for WebKit browsers + * node: apply log to `console` + * rewrite: abstract common logic for Node & browsers + * add .jshintrc file + +0.8.1 / 2014-04-14 +================== + + * package: re-add the "component" section + +0.8.0 / 2014-03-30 +================== + + * add `enable()` method for nodejs. Closes #27 + * change from stderr to stdout + * remove unnecessary index.js file + +0.7.4 / 2013-11-13 +================== + + * remove "browserify" key from package.json (fixes something in browserify) + +0.7.3 / 2013-10-30 +================== + + * fix: catch localStorage security error when cookies are blocked (Chrome) + * add debug(err) support. Closes #46 + * add .browser prop to package.json. Closes #42 + +0.7.2 / 2013-02-06 +================== + + * fix package.json + * fix: Mobile Safari (private mode) is broken with debug + * fix: Use unicode to send escape character to shell instead of octal to work with strict mode javascript + +0.7.1 / 2013-02-05 +================== + + * add repository URL to package.json + * add DEBUG_COLORED to force colored output + * add browserify support + * fix component. Closes #24 + +0.7.0 / 2012-05-04 +================== + + * Added .component to package.json + * Added debug.component.js build + +0.6.0 / 2012-03-16 +================== + + * Added support for "-" prefix in DEBUG [Vinay Pulim] + * Added `.enabled` flag to the node version [TooTallNate] + +0.5.0 / 2012-02-02 +================== + + * Added: humanize diffs. Closes #8 + * Added `debug.disable()` to the CS variant + * Removed padding. Closes #10 + * Fixed: persist client-side variant again. Closes #9 + +0.4.0 / 2012-02-01 +================== + + * Added browser variant support for older browsers [TooTallNate] + * Added `debug.enable('project:*')` to browser variant [TooTallNate] + * Added padding to diff (moved it to the right) + +0.3.0 / 2012-01-26 +================== + + * Added millisecond diff when isatty, otherwise UTC string + +0.2.0 / 2012-01-22 +================== + + * Added wildcard support + +0.1.0 / 2011-12-02 +================== + + * Added: remove colors unless stderr isatty [TooTallNate] + +0.0.1 / 2010-01-03 +================== + + * Initial release diff --git a/node_modules/debug/LICENSE b/node_modules/debug/LICENSE new file mode 100644 index 0000000..658c933 --- /dev/null +++ b/node_modules/debug/LICENSE @@ -0,0 +1,19 @@ +(The MIT License) + +Copyright (c) 2014 TJ Holowaychuk + +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/debug/Makefile b/node_modules/debug/Makefile new file mode 100644 index 0000000..3ddd136 --- /dev/null +++ b/node_modules/debug/Makefile @@ -0,0 +1,58 @@ +# get Makefile directory name: http://stackoverflow.com/a/5982798/376773 +THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) +THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd) + +# BIN directory +BIN := $(THIS_DIR)/node_modules/.bin + +# Path +PATH := node_modules/.bin:$(PATH) +SHELL := /bin/bash + +# applications +NODE ?= $(shell which node) +YARN ?= $(shell which yarn) +PKG ?= $(if $(YARN),$(YARN),$(NODE) $(shell which npm)) +BROWSERIFY ?= $(NODE) $(BIN)/browserify + +install: node_modules + +browser: dist/debug.js + +node_modules: package.json + @NODE_ENV= $(PKG) install + @touch node_modules + +dist/debug.js: src/*.js node_modules + @mkdir -p dist + @$(BROWSERIFY) \ + --standalone debug \ + . > dist/debug.js + +lint: + @eslint *.js src/*.js + +test-node: + @istanbul cover node_modules/mocha/bin/_mocha -- test/**.js + @cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js + +test-browser: + @$(MAKE) browser + @karma start --single-run + +test-all: + @concurrently \ + "make test-node" \ + "make test-browser" + +test: + @if [ "x$(BROWSER)" = "x" ]; then \ + $(MAKE) test-node; \ + else \ + $(MAKE) test-browser; \ + fi + +clean: + rimraf dist coverage + +.PHONY: browser install clean lint test test-all test-node test-browser diff --git a/node_modules/debug/README.md b/node_modules/debug/README.md new file mode 100644 index 0000000..8e754d1 --- /dev/null +++ b/node_modules/debug/README.md @@ -0,0 +1,368 @@ +# debug +[![Build Status](https://travis-ci.org/visionmedia/debug.svg?branch=master)](https://travis-ci.org/visionmedia/debug) [![Coverage Status](https://coveralls.io/repos/github/visionmedia/debug/badge.svg?branch=master)](https://coveralls.io/github/visionmedia/debug?branch=master) [![Slack](https://visionmedia-community-slackin.now.sh/badge.svg)](https://visionmedia-community-slackin.now.sh/) [![OpenCollective](https://opencollective.com/debug/backers/badge.svg)](#backers) +[![OpenCollective](https://opencollective.com/debug/sponsors/badge.svg)](#sponsors) + + + +A tiny JavaScript debugging utility modelled after Node.js core's debugging +technique. Works in Node.js and web browsers. + +## Installation + +```bash +$ npm install debug +``` + +## Usage + +`debug` exposes a function; simply pass this function the name of your module, and it will return a decorated version of `console.error` for you to pass debug statements to. This will allow you to toggle the debug output for different parts of your module as well as the module as a whole. + +Example [_app.js_](./examples/node/app.js): + +```js +var debug = require('debug')('http') + , http = require('http') + , name = 'My App'; + +// fake app + +debug('booting %o', name); + +http.createServer(function(req, res){ + debug(req.method + ' ' + req.url); + res.end('hello\n'); +}).listen(3000, function(){ + debug('listening'); +}); + +// fake worker of some kind + +require('./worker'); +``` + +Example [_worker.js_](./examples/node/worker.js): + +```js +var a = require('debug')('worker:a') + , b = require('debug')('worker:b'); + +function work() { + a('doing lots of uninteresting work'); + setTimeout(work, Math.random() * 1000); +} + +work(); + +function workb() { + b('doing some work'); + setTimeout(workb, Math.random() * 2000); +} + +workb(); +``` + +The `DEBUG` environment variable is then used to enable these based on space or +comma-delimited names. + +Here are some examples: + +screen shot 2017-08-08 at 12 53 04 pm +screen shot 2017-08-08 at 12 53 38 pm +screen shot 2017-08-08 at 12 53 25 pm + +#### Windows note + +On Windows the environment variable is set using the `set` command. + +```cmd +set DEBUG=*,-not_this +``` + +Note that PowerShell uses different syntax to set environment variables. + +```cmd +$env:DEBUG = "*,-not_this" +``` + +Then, run the program to be debugged as usual. + + +## Namespace Colors + +Every debug instance has a color generated for it based on its namespace name. +This helps when visually parsing the debug output to identify which debug instance +a debug line belongs to. + +#### Node.js + +In Node.js, colors are enabled when stderr is a TTY. You also _should_ install +the [`supports-color`](https://npmjs.org/supports-color) module alongside debug, +otherwise debug will only use a small handful of basic colors. + + + +#### Web Browser + +Colors are also enabled on "Web Inspectors" that understand the `%c` formatting +option. These are WebKit web inspectors, Firefox ([since version +31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/)) +and the Firebug plugin for Firefox (any version). + + + + +## Millisecond diff + +When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls. + + + +When stdout is not a TTY, `Date#toISOString()` is used, making it more useful for logging the debug information as shown below: + + + + +## Conventions + +If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser". If you append a "*" to the end of your name, it will always be enabled regardless of the setting of the DEBUG environment variable. You can then use it for normal output as well as debug output. + +## Wildcards + +The `*` character may be used as a wildcard. Suppose for example your library has +debuggers named "connect:bodyParser", "connect:compress", "connect:session", +instead of listing all three with +`DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do +`DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`. + +You can also exclude specific debuggers by prefixing them with a "-" character. +For example, `DEBUG=*,-connect:*` would include all debuggers except those +starting with "connect:". + +## Environment Variables + +When running through Node.js, you can set a few environment variables that will +change the behavior of the debug logging: + +| Name | Purpose | +|-----------|-------------------------------------------------| +| `DEBUG` | Enables/disables specific debugging namespaces. | +| `DEBUG_HIDE_DATE` | Hide date from debug output (non-TTY). | +| `DEBUG_COLORS`| Whether or not to use colors in the debug output. | +| `DEBUG_DEPTH` | Object inspection depth. | +| `DEBUG_SHOW_HIDDEN` | Shows hidden properties on inspected objects. | + + +__Note:__ The environment variables beginning with `DEBUG_` end up being +converted into an Options object that gets used with `%o`/`%O` formatters. +See the Node.js documentation for +[`util.inspect()`](https://nodejs.org/api/util.html#util_util_inspect_object_options) +for the complete list. + +## Formatters + +Debug uses [printf-style](https://wikipedia.org/wiki/Printf_format_string) formatting. +Below are the officially supported formatters: + +| Formatter | Representation | +|-----------|----------------| +| `%O` | Pretty-print an Object on multiple lines. | +| `%o` | Pretty-print an Object all on a single line. | +| `%s` | String. | +| `%d` | Number (both integer and float). | +| `%j` | JSON. Replaced with the string '[Circular]' if the argument contains circular references. | +| `%%` | Single percent sign ('%'). This does not consume an argument. | + + +### Custom formatters + +You can add custom formatters by extending the `debug.formatters` object. +For example, if you wanted to add support for rendering a Buffer as hex with +`%h`, you could do something like: + +```js +const createDebug = require('debug') +createDebug.formatters.h = (v) => { + return v.toString('hex') +} + +// …elsewhere +const debug = createDebug('foo') +debug('this is hex: %h', new Buffer('hello world')) +// foo this is hex: 68656c6c6f20776f726c6421 +0ms +``` + + +## Browser Support + +You can build a browser-ready script using [browserify](https://github.com/substack/node-browserify), +or just use the [browserify-as-a-service](https://wzrd.in/) [build](https://wzrd.in/standalone/debug@latest), +if you don't want to build it yourself. + +Debug's enable state is currently persisted by `localStorage`. +Consider the situation shown below where you have `worker:a` and `worker:b`, +and wish to debug both. You can enable this using `localStorage.debug`: + +```js +localStorage.debug = 'worker:*' +``` + +And then refresh the page. + +```js +a = debug('worker:a'); +b = debug('worker:b'); + +setInterval(function(){ + a('doing some work'); +}, 1000); + +setInterval(function(){ + b('doing some work'); +}, 1200); +``` + + +## Output streams + + By default `debug` will log to stderr, however this can be configured per-namespace by overriding the `log` method: + +Example [_stdout.js_](./examples/node/stdout.js): + +```js +var debug = require('debug'); +var error = debug('app:error'); + +// by default stderr is used +error('goes to stderr!'); + +var log = debug('app:log'); +// set this namespace to log via console.log +log.log = console.log.bind(console); // don't forget to bind to console! +log('goes to stdout'); +error('still goes to stderr!'); + +// set all output to go via console.info +// overrides all per-namespace log settings +debug.log = console.info.bind(console); +error('now goes to stdout via console.info'); +log('still goes to stdout, but via console.info now'); +``` + +## Checking whether a debug target is enabled + +After you've created a debug instance, you can determine whether or not it is +enabled by checking the `enabled` property: + +```javascript +const debug = require('debug')('http'); + +if (debug.enabled) { + // do stuff... +} +``` + +You can also manually toggle this property to force the debug instance to be +enabled or disabled. + + +## Authors + + - TJ Holowaychuk + - Nathan Rajlich + - Andrew Rhyne + +## Backers + +Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/debug#backer)] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +## Sponsors + +Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/debug#sponsor)] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +## License + +(The MIT License) + +Copyright (c) 2014-2017 TJ Holowaychuk <tj@vision-media.ca> + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/debug/karma.conf.js b/node_modules/debug/karma.conf.js new file mode 100644 index 0000000..103a82d --- /dev/null +++ b/node_modules/debug/karma.conf.js @@ -0,0 +1,70 @@ +// Karma configuration +// Generated on Fri Dec 16 2016 13:09:51 GMT+0000 (UTC) + +module.exports = function(config) { + config.set({ + + // base path that will be used to resolve all patterns (eg. files, exclude) + basePath: '', + + + // frameworks to use + // available frameworks: https://npmjs.org/browse/keyword/karma-adapter + frameworks: ['mocha', 'chai', 'sinon'], + + + // list of files / patterns to load in the browser + files: [ + 'dist/debug.js', + 'test/*spec.js' + ], + + + // list of files to exclude + exclude: [ + 'src/node.js' + ], + + + // preprocess matching files before serving them to the browser + // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor + preprocessors: { + }, + + // test results reporter to use + // possible values: 'dots', 'progress' + // available reporters: https://npmjs.org/browse/keyword/karma-reporter + reporters: ['progress'], + + + // web server port + port: 9876, + + + // enable / disable colors in the output (reporters and logs) + colors: true, + + + // level of logging + // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG + logLevel: config.LOG_INFO, + + + // enable / disable watching file and executing tests whenever any file changes + autoWatch: true, + + + // start these browsers + // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher + browsers: ['PhantomJS'], + + + // Continuous Integration mode + // if true, Karma captures browsers, runs the tests and exits + singleRun: false, + + // Concurrency level + // how many browser should be started simultaneous + concurrency: Infinity + }) +} diff --git a/node_modules/debug/node.js b/node_modules/debug/node.js new file mode 100644 index 0000000..7fc36fe --- /dev/null +++ b/node_modules/debug/node.js @@ -0,0 +1 @@ +module.exports = require('./src/node'); diff --git a/node_modules/debug/package.json b/node_modules/debug/package.json new file mode 100644 index 0000000..708840d --- /dev/null +++ b/node_modules/debug/package.json @@ -0,0 +1,82 @@ +{ + "_from": "debug@=3.1.0", + "_id": "debug@3.1.0", + "_inBundle": false, + "_integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "_location": "/debug", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "debug@=3.1.0", + "name": "debug", + "escapedName": "debug", + "rawSpec": "=3.1.0", + "saveSpec": null, + "fetchSpec": "=3.1.0" + }, + "_requiredBy": [ + "/follow-redirects" + ], + "_resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "_shasum": "5bb5a0672628b64149566ba16819e61518c67261", + "_spec": "debug@=3.1.0", + "_where": "/home/wyrihaximus/Projects/WyriHaximus/github-action-helm3/node_modules/follow-redirects", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "browser": "./src/browser.js", + "bugs": { + "url": "https://github.com/visionmedia/debug/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Nathan Rajlich", + "email": "nathan@tootallnate.net", + "url": "http://n8.io" + }, + { + "name": "Andrew Rhyne", + "email": "rhyneandrew@gmail.com" + } + ], + "dependencies": { + "ms": "2.0.0" + }, + "deprecated": false, + "description": "small debugging utility", + "devDependencies": { + "browserify": "14.4.0", + "chai": "^3.5.0", + "concurrently": "^3.1.0", + "coveralls": "^2.11.15", + "eslint": "^3.12.1", + "istanbul": "^0.4.5", + "karma": "^1.3.0", + "karma-chai": "^0.1.0", + "karma-mocha": "^1.3.0", + "karma-phantomjs-launcher": "^1.0.2", + "karma-sinon": "^1.0.5", + "mocha": "^3.2.0", + "mocha-lcov-reporter": "^1.2.0", + "rimraf": "^2.5.4", + "sinon": "^1.17.6", + "sinon-chai": "^2.8.0" + }, + "homepage": "https://github.com/visionmedia/debug#readme", + "keywords": [ + "debug", + "log", + "debugger" + ], + "license": "MIT", + "main": "./src/index.js", + "name": "debug", + "repository": { + "type": "git", + "url": "git://github.com/visionmedia/debug.git" + }, + "version": "3.1.0" +} diff --git a/node_modules/debug/src/browser.js b/node_modules/debug/src/browser.js new file mode 100644 index 0000000..f5149ff --- /dev/null +++ b/node_modules/debug/src/browser.js @@ -0,0 +1,195 @@ +/** + * This is the web browser implementation of `debug()`. + * + * Expose `debug()` as the module. + */ + +exports = module.exports = require('./debug'); +exports.log = log; +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; +exports.storage = 'undefined' != typeof chrome + && 'undefined' != typeof chrome.storage + ? chrome.storage.local + : localstorage(); + +/** + * Colors. + */ + +exports.colors = [ + '#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC', + '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF', + '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC', + '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF', + '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC', + '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033', + '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366', + '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933', + '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC', + '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF', + '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33' +]; + +/** + * Currently only WebKit-based Web Inspectors, Firefox >= v31, + * and the Firebug extension (any Firefox version) are known + * to support "%c" CSS customizations. + * + * TODO: add a `localStorage` variable to explicitly enable/disable colors + */ + +function useColors() { + // NB: In an Electron preload script, document will be defined but not fully + // initialized. Since we know we're in Chrome, we'll just detect this case + // explicitly + if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') { + return true; + } + + // Internet Explorer and Edge do not support colors. + if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { + return false; + } + + // is webkit? http://stackoverflow.com/a/16459606/376773 + // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 + return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || + // is firebug? http://stackoverflow.com/a/398120/376773 + (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || + // is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) || + // double check webkit in userAgent just in case we are in a worker + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); +} + +/** + * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. + */ + +exports.formatters.j = function(v) { + try { + return JSON.stringify(v); + } catch (err) { + return '[UnexpectedJSONParseError]: ' + err.message; + } +}; + + +/** + * Colorize log arguments if enabled. + * + * @api public + */ + +function formatArgs(args) { + var useColors = this.useColors; + + args[0] = (useColors ? '%c' : '') + + this.namespace + + (useColors ? ' %c' : ' ') + + args[0] + + (useColors ? '%c ' : ' ') + + '+' + exports.humanize(this.diff); + + if (!useColors) return; + + var c = 'color: ' + this.color; + args.splice(1, 0, c, 'color: inherit') + + // the final "%c" is somewhat tricky, because there could be other + // arguments passed either before or after the %c, so we need to + // figure out the correct index to insert the CSS into + var index = 0; + var lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, function(match) { + if ('%%' === match) return; + index++; + if ('%c' === match) { + // we only are interested in the *last* %c + // (the user may have provided their own) + lastC = index; + } + }); + + args.splice(lastC, 0, c); +} + +/** + * Invokes `console.log()` when available. + * No-op when `console.log` is not a "function". + * + * @api public + */ + +function log() { + // this hackery is required for IE8/9, where + // the `console.log` function doesn't have 'apply' + return 'object' === typeof console + && console.log + && Function.prototype.apply.call(console.log, console, arguments); +} + +/** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ + +function save(namespaces) { + try { + if (null == namespaces) { + exports.storage.removeItem('debug'); + } else { + exports.storage.debug = namespaces; + } + } catch(e) {} +} + +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ + +function load() { + var r; + try { + r = exports.storage.debug; + } catch(e) {} + + // If debug isn't set in LS, and we're in Electron, try to load $DEBUG + if (!r && typeof process !== 'undefined' && 'env' in process) { + r = process.env.DEBUG; + } + + return r; +} + +/** + * Enable namespaces listed in `localStorage.debug` initially. + */ + +exports.enable(load()); + +/** + * Localstorage attempts to return the localstorage. + * + * This is necessary because safari throws + * when a user disables cookies/localstorage + * and you attempt to access it. + * + * @return {LocalStorage} + * @api private + */ + +function localstorage() { + try { + return window.localStorage; + } catch (e) {} +} diff --git a/node_modules/debug/src/debug.js b/node_modules/debug/src/debug.js new file mode 100644 index 0000000..77e6384 --- /dev/null +++ b/node_modules/debug/src/debug.js @@ -0,0 +1,225 @@ + +/** + * This is the common logic for both the Node.js and web browser + * implementations of `debug()`. + * + * Expose `debug()` as the module. + */ + +exports = module.exports = createDebug.debug = createDebug['default'] = createDebug; +exports.coerce = coerce; +exports.disable = disable; +exports.enable = enable; +exports.enabled = enabled; +exports.humanize = require('ms'); + +/** + * Active `debug` instances. + */ +exports.instances = []; + +/** + * The currently active debug mode names, and names to skip. + */ + +exports.names = []; +exports.skips = []; + +/** + * Map of special "%n" handling functions, for the debug "format" argument. + * + * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". + */ + +exports.formatters = {}; + +/** + * Select a color. + * @param {String} namespace + * @return {Number} + * @api private + */ + +function selectColor(namespace) { + var hash = 0, i; + + for (i in namespace) { + hash = ((hash << 5) - hash) + namespace.charCodeAt(i); + hash |= 0; // Convert to 32bit integer + } + + return exports.colors[Math.abs(hash) % exports.colors.length]; +} + +/** + * Create a debugger with the given `namespace`. + * + * @param {String} namespace + * @return {Function} + * @api public + */ + +function createDebug(namespace) { + + var prevTime; + + function debug() { + // disabled? + if (!debug.enabled) return; + + var self = debug; + + // set `diff` timestamp + var curr = +new Date(); + var ms = curr - (prevTime || curr); + self.diff = ms; + self.prev = prevTime; + self.curr = curr; + prevTime = curr; + + // turn the `arguments` into a proper Array + var args = new Array(arguments.length); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i]; + } + + args[0] = exports.coerce(args[0]); + + if ('string' !== typeof args[0]) { + // anything else let's inspect with %O + args.unshift('%O'); + } + + // apply any `formatters` transformations + var index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) { + // if we encounter an escaped % then don't increase the array index + if (match === '%%') return match; + index++; + var formatter = exports.formatters[format]; + if ('function' === typeof formatter) { + var val = args[index]; + match = formatter.call(self, val); + + // now we need to remove `args[index]` since it's inlined in the `format` + args.splice(index, 1); + index--; + } + return match; + }); + + // apply env-specific formatting (colors, etc.) + exports.formatArgs.call(self, args); + + var logFn = debug.log || exports.log || console.log.bind(console); + logFn.apply(self, args); + } + + debug.namespace = namespace; + debug.enabled = exports.enabled(namespace); + debug.useColors = exports.useColors(); + debug.color = selectColor(namespace); + debug.destroy = destroy; + + // env-specific initialization logic for debug instances + if ('function' === typeof exports.init) { + exports.init(debug); + } + + exports.instances.push(debug); + + return debug; +} + +function destroy () { + var index = exports.instances.indexOf(this); + if (index !== -1) { + exports.instances.splice(index, 1); + return true; + } else { + return false; + } +} + +/** + * Enables a debug mode by namespaces. This can include modes + * separated by a colon and wildcards. + * + * @param {String} namespaces + * @api public + */ + +function enable(namespaces) { + exports.save(namespaces); + + exports.names = []; + exports.skips = []; + + var i; + var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); + var len = split.length; + + for (i = 0; i < len; i++) { + if (!split[i]) continue; // ignore empty strings + namespaces = split[i].replace(/\*/g, '.*?'); + if (namespaces[0] === '-') { + exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); + } else { + exports.names.push(new RegExp('^' + namespaces + '$')); + } + } + + for (i = 0; i < exports.instances.length; i++) { + var instance = exports.instances[i]; + instance.enabled = exports.enabled(instance.namespace); + } +} + +/** + * Disable debug output. + * + * @api public + */ + +function disable() { + exports.enable(''); +} + +/** + * Returns true if the given mode name is enabled, false otherwise. + * + * @param {String} name + * @return {Boolean} + * @api public + */ + +function enabled(name) { + if (name[name.length - 1] === '*') { + return true; + } + var i, len; + for (i = 0, len = exports.skips.length; i < len; i++) { + if (exports.skips[i].test(name)) { + return false; + } + } + for (i = 0, len = exports.names.length; i < len; i++) { + if (exports.names[i].test(name)) { + return true; + } + } + return false; +} + +/** + * Coerce `val`. + * + * @param {Mixed} val + * @return {Mixed} + * @api private + */ + +function coerce(val) { + if (val instanceof Error) return val.stack || val.message; + return val; +} diff --git a/node_modules/debug/src/index.js b/node_modules/debug/src/index.js new file mode 100644 index 0000000..cabcbcd --- /dev/null +++ b/node_modules/debug/src/index.js @@ -0,0 +1,10 @@ +/** + * Detect Electron renderer process, which is node, but we should + * treat as a browser. + */ + +if (typeof process === 'undefined' || process.type === 'renderer') { + module.exports = require('./browser.js'); +} else { + module.exports = require('./node.js'); +} diff --git a/node_modules/debug/src/node.js b/node_modules/debug/src/node.js new file mode 100644 index 0000000..d666fb9 --- /dev/null +++ b/node_modules/debug/src/node.js @@ -0,0 +1,186 @@ +/** + * Module dependencies. + */ + +var tty = require('tty'); +var util = require('util'); + +/** + * This is the Node.js implementation of `debug()`. + * + * Expose `debug()` as the module. + */ + +exports = module.exports = require('./debug'); +exports.init = init; +exports.log = log; +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; + +/** + * Colors. + */ + +exports.colors = [ 6, 2, 3, 4, 5, 1 ]; + +try { + var supportsColor = require('supports-color'); + if (supportsColor && supportsColor.level >= 2) { + exports.colors = [ + 20, 21, 26, 27, 32, 33, 38, 39, 40, 41, 42, 43, 44, 45, 56, 57, 62, 63, 68, + 69, 74, 75, 76, 77, 78, 79, 80, 81, 92, 93, 98, 99, 112, 113, 128, 129, 134, + 135, 148, 149, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 178, 179, 184, 185, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 214, 215, 220, 221 + ]; + } +} catch (err) { + // swallow - we only care if `supports-color` is available; it doesn't have to be. +} + +/** + * Build up the default `inspectOpts` object from the environment variables. + * + * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js + */ + +exports.inspectOpts = Object.keys(process.env).filter(function (key) { + return /^debug_/i.test(key); +}).reduce(function (obj, key) { + // camel-case + var prop = key + .substring(6) + .toLowerCase() + .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() }); + + // coerce string value into JS value + var val = process.env[key]; + if (/^(yes|on|true|enabled)$/i.test(val)) val = true; + else if (/^(no|off|false|disabled)$/i.test(val)) val = false; + else if (val === 'null') val = null; + else val = Number(val); + + obj[prop] = val; + return obj; +}, {}); + +/** + * Is stdout a TTY? Colored output is enabled when `true`. + */ + +function useColors() { + return 'colors' in exports.inspectOpts + ? Boolean(exports.inspectOpts.colors) + : tty.isatty(process.stderr.fd); +} + +/** + * Map %o to `util.inspect()`, all on a single line. + */ + +exports.formatters.o = function(v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts) + .split('\n').map(function(str) { + return str.trim() + }).join(' '); +}; + +/** + * Map %o to `util.inspect()`, allowing multiple lines if needed. + */ + +exports.formatters.O = function(v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts); +}; + +/** + * Adds ANSI color escape codes if enabled. + * + * @api public + */ + +function formatArgs(args) { + var name = this.namespace; + var useColors = this.useColors; + + if (useColors) { + var c = this.color; + var colorCode = '\u001b[3' + (c < 8 ? c : '8;5;' + c); + var prefix = ' ' + colorCode + ';1m' + name + ' ' + '\u001b[0m'; + + args[0] = prefix + args[0].split('\n').join('\n' + prefix); + args.push(colorCode + 'm+' + exports.humanize(this.diff) + '\u001b[0m'); + } else { + args[0] = getDate() + name + ' ' + args[0]; + } +} + +function getDate() { + if (exports.inspectOpts.hideDate) { + return ''; + } else { + return new Date().toISOString() + ' '; + } +} + +/** + * Invokes `util.format()` with the specified arguments and writes to stderr. + */ + +function log() { + return process.stderr.write(util.format.apply(util, arguments) + '\n'); +} + +/** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ + +function save(namespaces) { + if (null == namespaces) { + // If you set a process.env field to null or undefined, it gets cast to the + // string 'null' or 'undefined'. Just delete instead. + delete process.env.DEBUG; + } else { + process.env.DEBUG = namespaces; + } +} + +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ + +function load() { + return process.env.DEBUG; +} + +/** + * Init logic for `debug` instances. + * + * Create a new `inspectOpts` object in case `useColors` is set + * differently for a particular `debug` instance. + */ + +function init (debug) { + debug.inspectOpts = {}; + + var keys = Object.keys(exports.inspectOpts); + for (var i = 0; i < keys.length; i++) { + debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; + } +} + +/** + * Enable namespaces listed in `process.env.DEBUG` initially. + */ + +exports.enable(load()); diff --git a/node_modules/follow-redirects/LICENSE b/node_modules/follow-redirects/LICENSE new file mode 100644 index 0000000..742cbad --- /dev/null +++ b/node_modules/follow-redirects/LICENSE @@ -0,0 +1,18 @@ +Copyright 2014–present Olivier Lalonde , James Talmage , Ruben Verborgh + +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/follow-redirects/README.md b/node_modules/follow-redirects/README.md new file mode 100644 index 0000000..6d41337 --- /dev/null +++ b/node_modules/follow-redirects/README.md @@ -0,0 +1,155 @@ +## Follow Redirects + +Drop-in replacement for Nodes `http` and `https` that automatically follows redirects. + +[![npm version](https://img.shields.io/npm/v/follow-redirects.svg)](https://www.npmjs.com/package/follow-redirects) +[![Build Status](https://travis-ci.org/follow-redirects/follow-redirects.svg?branch=master)](https://travis-ci.org/follow-redirects/follow-redirects) +[![Coverage Status](https://coveralls.io/repos/follow-redirects/follow-redirects/badge.svg?branch=master)](https://coveralls.io/r/follow-redirects/follow-redirects?branch=master) +[![Dependency Status](https://david-dm.org/follow-redirects/follow-redirects.svg)](https://david-dm.org/follow-redirects/follow-redirects) +[![npm downloads](https://img.shields.io/npm/dm/follow-redirects.svg)](https://www.npmjs.com/package/follow-redirects) + +`follow-redirects` provides [request](https://nodejs.org/api/http.html#http_http_request_options_callback) and [get](https://nodejs.org/api/http.html#http_http_get_options_callback) + methods that behave identically to those found on the native [http](https://nodejs.org/api/http.html#http_http_request_options_callback) and [https](https://nodejs.org/api/https.html#https_https_request_options_callback) + modules, with the exception that they will seamlessly follow redirects. + +```javascript +var http = require('follow-redirects').http; +var https = require('follow-redirects').https; + +http.get('http://bit.ly/900913', function (response) { + response.on('data', function (chunk) { + console.log(chunk); + }); +}).on('error', function (err) { + console.error(err); +}); +``` + +You can inspect the final redirected URL through the `responseUrl` property on the `response`. +If no redirection happened, `responseUrl` is the original request URL. + +```javascript +https.request({ + host: 'bitly.com', + path: '/UHfDGO', +}, function (response) { + console.log(response.responseUrl); + // 'http://duckduckgo.com/robots.txt' +}); +``` + +## Options +### Global options +Global options are set directly on the `follow-redirects` module: + +```javascript +var followRedirects = require('follow-redirects'); +followRedirects.maxRedirects = 10; +followRedirects.maxBodyLength = 20 * 1024 * 1024; // 20 MB +``` + +The following global options are supported: + +- `maxRedirects` (default: `21`) – sets the maximum number of allowed redirects; if exceeded, an error will be emitted. + +- `maxBodyLength` (default: 10MB) – sets the maximum size of the request body; if exceeded, an error will be emitted. + + +### Per-request options +Per-request options are set by passing an `options` object: + +```javascript +var url = require('url'); +var followRedirects = require('follow-redirects'); + +var options = url.parse('http://bit.ly/900913'); +options.maxRedirects = 10; +http.request(options); +``` + +In addition to the [standard HTTP](https://nodejs.org/api/http.html#http_http_request_options_callback) and [HTTPS options](https://nodejs.org/api/https.html#https_https_request_options_callback), +the following per-request options are supported: +- `followRedirects` (default: `true`) – whether redirects should be followed. + +- `maxRedirects` (default: `21`) – sets the maximum number of allowed redirects; if exceeded, an error will be emitted. + +- `maxBodyLength` (default: 10MB) – sets the maximum size of the request body; if exceeded, an error will be emitted. + +- `agents` (default: `undefined`) – sets the `agent` option per protocol, since HTTP and HTTPS use different agents. Example value: `{ http: new http.Agent(), https: new https.Agent() }` + +- `trackRedirects` (default: `false`) – whether to store the redirected response details into the `redirects` array on the response object. + + +### Advanced usage +By default, `follow-redirects` will use the Node.js default implementations +of [`http`](https://nodejs.org/api/http.html) +and [`https`](https://nodejs.org/api/https.html). +To enable features such as caching and/or intermediate request tracking, +you might instead want to wrap `follow-redirects` around custom protocol implementations: + +```javascript +var followRedirects = require('follow-redirects').wrap({ + http: require('your-custom-http'), + https: require('your-custom-https'), +}); +``` + +Such custom protocols only need an implementation of the `request` method. + +## Browserify Usage + +Due to the way `XMLHttpRequest` works, the `browserify` versions of `http` and `https` already follow redirects. + If you are *only* targeting the browser, then this library has little value for you. If you want to write cross + platform code for node and the browser, `follow-redirects` provides a great solution for making the native node + modules behave the same as they do in browserified builds in the browser. To avoid bundling unnecessary code + you should tell browserify to swap out `follow-redirects` with the standard modules when bundling. + To make this easier, you need to change how you require the modules: + +```javascript +var http = require('follow-redirects/http'); +var https = require('follow-redirects/https'); +``` + +You can then replace `follow-redirects` in your browserify configuration like so: + +```javascript +"browser": { + "follow-redirects/http" : "http", + "follow-redirects/https" : "https" +} +``` + +The `browserify-http` module has not kept pace with node development, and no long behaves identically to the native + module when running in the browser. If you are experiencing problems, you may want to check out + [browserify-http-2](https://www.npmjs.com/package/http-browserify-2). It is more actively maintained and + attempts to address a few of the shortcomings of `browserify-http`. In that case, your browserify config should + look something like this: + +```javascript +"browser": { + "follow-redirects/http" : "browserify-http-2/http", + "follow-redirects/https" : "browserify-http-2/https" +} +``` + +## Contributing + +Pull Requests are always welcome. Please [file an issue](https://github.com/follow-redirects/follow-redirects/issues) + detailing your proposal before you invest your valuable time. Additional features and bug fixes should be accompanied + by tests. You can run the test suite locally with a simple `npm test` command. + +## Debug Logging + +`follow-redirects` uses the excellent [debug](https://www.npmjs.com/package/debug) for logging. To turn on logging + set the environment variable `DEBUG=follow-redirects` for debug output from just this module. When running the test + suite it is sometimes advantageous to set `DEBUG=*` to see output from the express server as well. + +## Authors + +- Olivier Lalonde (olalonde@gmail.com) +- James Talmage (james@talmage.io) +- [Ruben Verborgh](https://ruben.verborgh.org/) + +## License + +[https://github.com/follow-redirects/follow-redirects/blob/master/LICENSE](MIT License) diff --git a/node_modules/follow-redirects/http.js b/node_modules/follow-redirects/http.js new file mode 100644 index 0000000..695e356 --- /dev/null +++ b/node_modules/follow-redirects/http.js @@ -0,0 +1 @@ +module.exports = require("./").http; diff --git a/node_modules/follow-redirects/https.js b/node_modules/follow-redirects/https.js new file mode 100644 index 0000000..d21c921 --- /dev/null +++ b/node_modules/follow-redirects/https.js @@ -0,0 +1 @@ +module.exports = require("./").https; diff --git a/node_modules/follow-redirects/index.js b/node_modules/follow-redirects/index.js new file mode 100644 index 0000000..4d7297a --- /dev/null +++ b/node_modules/follow-redirects/index.js @@ -0,0 +1,322 @@ +var url = require("url"); +var http = require("http"); +var https = require("https"); +var assert = require("assert"); +var Writable = require("stream").Writable; +var debug = require("debug")("follow-redirects"); + +// RFC7231§4.2.1: Of the request methods defined by this specification, +// the GET, HEAD, OPTIONS, and TRACE methods are defined to be safe. +var SAFE_METHODS = { GET: true, HEAD: true, OPTIONS: true, TRACE: true }; + +// Create handlers that pass events from native requests +var eventHandlers = Object.create(null); +["abort", "aborted", "error", "socket", "timeout"].forEach(function (event) { + eventHandlers[event] = function (arg) { + this._redirectable.emit(event, arg); + }; +}); + +// An HTTP(S) request that can be redirected +function RedirectableRequest(options, responseCallback) { + // Initialize the request + Writable.call(this); + options.headers = options.headers || {}; + this._options = options; + this._redirectCount = 0; + this._redirects = []; + this._requestBodyLength = 0; + this._requestBodyBuffers = []; + + // Since http.request treats host as an alias of hostname, + // but the url module interprets host as hostname plus port, + // eliminate the host property to avoid confusion. + if (options.host) { + // Use hostname if set, because it has precedence + if (!options.hostname) { + options.hostname = options.host; + } + delete options.host; + } + + // Attach a callback if passed + if (responseCallback) { + this.on("response", responseCallback); + } + + // React to responses of native requests + var self = this; + this._onNativeResponse = function (response) { + self._processResponse(response); + }; + + // Complete the URL object when necessary + if (!options.pathname && options.path) { + var searchPos = options.path.indexOf("?"); + if (searchPos < 0) { + options.pathname = options.path; + } + else { + options.pathname = options.path.substring(0, searchPos); + options.search = options.path.substring(searchPos); + } + } + + // Perform the first request + this._performRequest(); +} +RedirectableRequest.prototype = Object.create(Writable.prototype); + +// Writes buffered data to the current native request +RedirectableRequest.prototype.write = function (data, encoding, callback) { + // Validate input and shift parameters if necessary + if (!(typeof data === "string" || typeof data === "object" && ("length" in data))) { + throw new Error("data should be a string, Buffer or Uint8Array"); + } + if (typeof encoding === "function") { + callback = encoding; + encoding = null; + } + + // Ignore empty buffers, since writing them doesn't invoke the callback + // https://github.com/nodejs/node/issues/22066 + if (data.length === 0) { + if (callback) { + callback(); + } + return; + } + // Only write when we don't exceed the maximum body length + if (this._requestBodyLength + data.length <= this._options.maxBodyLength) { + this._requestBodyLength += data.length; + this._requestBodyBuffers.push({ data: data, encoding: encoding }); + this._currentRequest.write(data, encoding, callback); + } + // Error when we exceed the maximum body length + else { + this.emit("error", new Error("Request body larger than maxBodyLength limit")); + this.abort(); + } +}; + +// Ends the current native request +RedirectableRequest.prototype.end = function (data, encoding, callback) { + // Shift parameters if necessary + if (typeof data === "function") { + callback = data; + data = encoding = null; + } + else if (typeof encoding === "function") { + callback = encoding; + encoding = null; + } + + // Write data and end + var currentRequest = this._currentRequest; + this.write(data || "", encoding, function () { + currentRequest.end(null, null, callback); + }); +}; + +// Sets a header value on the current native request +RedirectableRequest.prototype.setHeader = function (name, value) { + this._options.headers[name] = value; + this._currentRequest.setHeader(name, value); +}; + +// Clears a header value on the current native request +RedirectableRequest.prototype.removeHeader = function (name) { + delete this._options.headers[name]; + this._currentRequest.removeHeader(name); +}; + +// Proxy all other public ClientRequest methods +[ + "abort", "flushHeaders", "getHeader", + "setNoDelay", "setSocketKeepAlive", "setTimeout", +].forEach(function (method) { + RedirectableRequest.prototype[method] = function (a, b) { + return this._currentRequest[method](a, b); + }; +}); + +// Proxy all public ClientRequest properties +["aborted", "connection", "socket"].forEach(function (property) { + Object.defineProperty(RedirectableRequest.prototype, property, { + get: function () { return this._currentRequest[property]; }, + }); +}); + +// Executes the next native request (initial or redirect) +RedirectableRequest.prototype._performRequest = function () { + // Load the native protocol + var protocol = this._options.protocol; + var nativeProtocol = this._options.nativeProtocols[protocol]; + if (!nativeProtocol) { + this.emit("error", new Error("Unsupported protocol " + protocol)); + return; + } + + // If specified, use the agent corresponding to the protocol + // (HTTP and HTTPS use different types of agents) + if (this._options.agents) { + var scheme = protocol.substr(0, protocol.length - 1); + this._options.agent = this._options.agents[scheme]; + } + + // Create the native request + var request = this._currentRequest = + nativeProtocol.request(this._options, this._onNativeResponse); + this._currentUrl = url.format(this._options); + + // Set up event handlers + request._redirectable = this; + for (var event in eventHandlers) { + /* istanbul ignore else */ + if (event) { + request.on(event, eventHandlers[event]); + } + } + + // End a redirected request + // (The first request must be ended explicitly with RedirectableRequest#end) + if (this._isRedirect) { + // Write the request entity and end. + var i = 0; + var buffers = this._requestBodyBuffers; + (function writeNext() { + if (i < buffers.length) { + var buffer = buffers[i++]; + request.write(buffer.data, buffer.encoding, writeNext); + } + else { + request.end(); + } + }()); + } +}; + +// Processes a response from the current native request +RedirectableRequest.prototype._processResponse = function (response) { + // Store the redirected response + if (this._options.trackRedirects) { + this._redirects.push({ + url: this._currentUrl, + headers: response.headers, + statusCode: response.statusCode, + }); + } + + // RFC7231§6.4: The 3xx (Redirection) class of status code indicates + // that further action needs to be taken by the user agent in order to + // fulfill the request. If a Location header field is provided, + // the user agent MAY automatically redirect its request to the URI + // referenced by the Location field value, + // even if the specific status code is not understood. + var location = response.headers.location; + if (location && this._options.followRedirects !== false && + response.statusCode >= 300 && response.statusCode < 400) { + // RFC7231§6.4: A client SHOULD detect and intervene + // in cyclical redirections (i.e., "infinite" redirection loops). + if (++this._redirectCount > this._options.maxRedirects) { + this.emit("error", new Error("Max redirects exceeded.")); + return; + } + + // RFC7231§6.4: Automatic redirection needs to done with + // care for methods not known to be safe […], + // since the user might not wish to redirect an unsafe request. + // RFC7231§6.4.7: The 307 (Temporary Redirect) status code indicates + // that the target resource resides temporarily under a different URI + // and the user agent MUST NOT change the request method + // if it performs an automatic redirection to that URI. + var header; + var headers = this._options.headers; + if (response.statusCode !== 307 && !(this._options.method in SAFE_METHODS)) { + this._options.method = "GET"; + // Drop a possible entity and headers related to it + this._requestBodyBuffers = []; + for (header in headers) { + if (/^content-/i.test(header)) { + delete headers[header]; + } + } + } + + // Drop the Host header, as the redirect might lead to a different host + if (!this._isRedirect) { + for (header in headers) { + if (/^host$/i.test(header)) { + delete headers[header]; + } + } + } + + // Perform the redirected request + var redirectUrl = url.resolve(this._currentUrl, location); + debug("redirecting to", redirectUrl); + Object.assign(this._options, url.parse(redirectUrl)); + this._isRedirect = true; + this._performRequest(); + + // Discard the remainder of the response to avoid waiting for data + response.destroy(); + } + else { + // The response is not a redirect; return it as-is + response.responseUrl = this._currentUrl; + response.redirects = this._redirects; + this.emit("response", response); + + // Clean up + this._requestBodyBuffers = []; + } +}; + +// Wraps the key/value object of protocols with redirect functionality +function wrap(protocols) { + // Default settings + var exports = { + maxRedirects: 21, + maxBodyLength: 10 * 1024 * 1024, + }; + + // Wrap each protocol + var nativeProtocols = {}; + Object.keys(protocols).forEach(function (scheme) { + var protocol = scheme + ":"; + var nativeProtocol = nativeProtocols[protocol] = protocols[scheme]; + var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol); + + // Executes a request, following redirects + wrappedProtocol.request = function (options, callback) { + if (typeof options === "string") { + options = url.parse(options); + options.maxRedirects = exports.maxRedirects; + } + else { + options = Object.assign({ + protocol: protocol, + maxRedirects: exports.maxRedirects, + maxBodyLength: exports.maxBodyLength, + }, options); + } + options.nativeProtocols = nativeProtocols; + assert.equal(options.protocol, protocol, "protocol mismatch"); + debug("options", options); + return new RedirectableRequest(options, callback); + }; + + // Executes a GET request, following redirects + wrappedProtocol.get = function (options, callback) { + var request = wrappedProtocol.request(options, callback); + request.end(); + return request; + }; + }); + return exports; +} + +// Exports +module.exports = wrap({ http: http, https: https }); +module.exports.wrap = wrap; diff --git a/node_modules/follow-redirects/package.json b/node_modules/follow-redirects/package.json new file mode 100644 index 0000000..0846fb2 --- /dev/null +++ b/node_modules/follow-redirects/package.json @@ -0,0 +1,96 @@ +{ + "_from": "follow-redirects@1.5.10", + "_id": "follow-redirects@1.5.10", + "_inBundle": false, + "_integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "_location": "/follow-redirects", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "follow-redirects@1.5.10", + "name": "follow-redirects", + "escapedName": "follow-redirects", + "rawSpec": "1.5.10", + "saveSpec": null, + "fetchSpec": "1.5.10" + }, + "_requiredBy": [ + "/axios" + ], + "_resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "_shasum": "7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a", + "_spec": "follow-redirects@1.5.10", + "_where": "/home/wyrihaximus/Projects/WyriHaximus/github-action-helm3/node_modules/axios", + "author": { + "name": "Ruben Verborgh", + "email": "ruben@verborgh.org", + "url": "https://ruben.verborgh.org/" + }, + "bugs": { + "url": "https://github.com/follow-redirects/follow-redirects/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Olivier Lalonde", + "email": "olalonde@gmail.com", + "url": "http://www.syskall.com" + }, + { + "name": "James Talmage", + "email": "james@talmage.io" + } + ], + "dependencies": { + "debug": "=3.1.0" + }, + "deprecated": false, + "description": "HTTP and HTTPS modules that follow redirects.", + "devDependencies": { + "concat-stream": "^1.6.0", + "coveralls": "^3.0.2", + "eslint": "^4.19.1", + "express": "^4.16.2", + "mocha": "^5.0.0", + "nyc": "^11.8.0" + }, + "engines": { + "node": ">=4.0" + }, + "files": [ + "index.js", + "create.js", + "http.js", + "https.js" + ], + "homepage": "https://github.com/follow-redirects/follow-redirects", + "keywords": [ + "http", + "https", + "url", + "redirect", + "client", + "location", + "utility" + ], + "license": "MIT", + "main": "index.js", + "name": "follow-redirects", + "nyc": { + "reporter": [ + "lcov", + "text" + ] + }, + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/follow-redirects/follow-redirects.git" + }, + "scripts": { + "lint": "eslint *.js test", + "mocha": "nyc mocha", + "test": "npm run lint && npm run mocha" + }, + "version": "1.5.10" +} diff --git a/node_modules/fs-extra/CHANGELOG.md b/node_modules/fs-extra/CHANGELOG.md new file mode 100644 index 0000000..3049b45 --- /dev/null +++ b/node_modules/fs-extra/CHANGELOG.md @@ -0,0 +1,864 @@ +8.1.0 / 2019-06-28 +------------------ + +- Add support for promisified `fs.realpath.native` in Node v9.2+ ([#650](https://github.com/jprichardson/node-fs-extra/issues/650), [#682](https://github.com/jprichardson/node-fs-extra/pull/682)) +- Update `graceful-fs` dependency ([#700](https://github.com/jprichardson/node-fs-extra/pull/700)) +- Use `graceful-fs` everywhere ([#700](https://github.com/jprichardson/node-fs-extra/pull/700)) + +8.0.1 / 2019-05-13 +------------------ + +- Fix bug `Maximum call stack size exceeded` error in `util/stat` ([#679](https://github.com/jprichardson/node-fs-extra/pull/679)) + +8.0.0 / 2019-05-11 +------------------ + +**NOTE:** Node.js v6 support is deprecated, and will be dropped in the next major release. + +- Use `renameSync()` under the hood in `moveSync()` +- Fix bug with bind-mounted directories in `copy*()` ([#613](https://github.com/jprichardson/node-fs-extra/issues/613), [#618](https://github.com/jprichardson/node-fs-extra/pull/618)) +- Fix bug in `move()` with case-insensitive file systems +- Use `fs.stat()`'s `bigint` option in `copy*()` & `move*()` where possible ([#657](https://github.com/jprichardson/node-fs-extra/issues/657)) + +7.0.1 / 2018-11-07 +------------------ + +- Fix `removeSync()` on Windows, in some cases, it would error out with `ENOTEMPTY` ([#646](https://github.com/jprichardson/node-fs-extra/pull/646)) +- Document `mode` option for `ensureDir*()` ([#587](https://github.com/jprichardson/node-fs-extra/pull/587)) +- Don't include documentation files in npm package tarball ([#642](https://github.com/jprichardson/node-fs-extra/issues/642), [#643](https://github.com/jprichardson/node-fs-extra/pull/643)) + +7.0.0 / 2018-07-16 +------------------ + +- **BREAKING:** Refine `copy*()` handling of symlinks to properly detect symlinks that point to the same file. ([#582](https://github.com/jprichardson/node-fs-extra/pull/582)) +- Fix bug with copying write-protected directories ([#600](https://github.com/jprichardson/node-fs-extra/pull/600)) +- Universalify `fs.lchmod()` ([#596](https://github.com/jprichardson/node-fs-extra/pull/596)) +- Add `engines` field to `package.json` ([#580](https://github.com/jprichardson/node-fs-extra/pull/580)) + +6.0.1 / 2018-05-09 +------------------ + +- Fix `fs.promises` `ExperimentalWarning` on Node v10.1.0 ([#578](https://github.com/jprichardson/node-fs-extra/pull/578)) + +6.0.0 / 2018-05-01 +------------------ + +- Drop support for Node.js versions 4, 5, & 7 ([#564](https://github.com/jprichardson/node-fs-extra/pull/564)) +- Rewrite `move` to use `fs.rename` where possible ([#549](https://github.com/jprichardson/node-fs-extra/pull/549)) +- Don't convert relative paths to absolute paths for `filter` ([#554](https://github.com/jprichardson/node-fs-extra/pull/554)) +- `copy*`'s behavior when `preserveTimestamps` is `false` has been OS-dependent since 5.0.0, but that's now explicitly noted in the docs ([#563](https://github.com/jprichardson/node-fs-extra/pull/563)) +- Fix subdirectory detection for `copy*` & `move*` ([#541](https://github.com/jprichardson/node-fs-extra/pull/541)) +- Handle case-insensitive paths correctly in `copy*` ([#568](https://github.com/jprichardson/node-fs-extra/pull/568)) + +5.0.0 / 2017-12-11 +------------------ + +Significant refactor of `copy()` & `copySync()`, including breaking changes. No changes to other functions in this release. + +Huge thanks to **[@manidlou](https://github.com/manidlou)** for doing most of the work on this release. + +- The `filter` option can no longer be a RegExp (must be a function). This was deprecated since fs-extra v1.0.0. [#512](https://github.com/jprichardson/node-fs-extra/pull/512) +- `copy()`'s `filter` option can now be a function that returns a Promise. [#518](https://github.com/jprichardson/node-fs-extra/pull/518) +- `copy()` & `copySync()` now use `fs.copyFile()`/`fs.copyFileSync()` in environments that support it (currently Node 8.5.0+). Older Node versions still get the old implementation. [#505](https://github.com/jprichardson/node-fs-extra/pull/505) +- Don't allow copying a directory into itself. [#83](https://github.com/jprichardson/node-fs-extra/issues/83) +- Handle copying between identical files. [#198](https://github.com/jprichardson/node-fs-extra/issues/198) +- Error out when copying an empty folder to a path that already exists. [#464](https://github.com/jprichardson/node-fs-extra/issues/464) +- Don't create `dest`'s parent if the `filter` function aborts the `copy()` operation. [#517](https://github.com/jprichardson/node-fs-extra/pull/517) +- Fix `writeStream` not being closed if there was an error in `copy()`. [#516](https://github.com/jprichardson/node-fs-extra/pull/516) + +4.0.3 / 2017-12-05 +------------------ + +- Fix wrong `chmod` values in `fs.remove()` [#501](https://github.com/jprichardson/node-fs-extra/pull/501) +- Fix `TypeError` on systems that don't have some `fs` operations like `lchown` [#520](https://github.com/jprichardson/node-fs-extra/pull/520) + +4.0.2 / 2017-09-12 +------------------ + +- Added `EOL` option to `writeJson*` & `outputJson*` (via upgrade to jsonfile v4) +- Added promise support to [`fs.copyFile()`](https://nodejs.org/api/fs.html#fs_fs_copyfile_src_dest_flags_callback) in Node 8.5+ +- Added `.js` extension to `main` field in `package.json` for better tooling compatibility. [#485](https://github.com/jprichardson/node-fs-extra/pull/485) + +4.0.1 / 2017-07-31 +------------------ + +### Fixed + +- Previously, `ensureFile()` & `ensureFileSync()` would do nothing if the path was a directory. Now, they error out for consistency with `ensureDir()`. [#465](https://github.com/jprichardson/node-fs-extra/issues/465), [#466](https://github.com/jprichardson/node-fs-extra/pull/466), [#470](https://github.com/jprichardson/node-fs-extra/issues/470) + +4.0.0 / 2017-07-14 +------------------ + +### Changed + +- **BREAKING:** The promisified versions of `fs.read()` & `fs.write()` now return objects. See [the docs](docs/fs-read-write.md) for details. [#436](https://github.com/jprichardson/node-fs-extra/issues/436), [#449](https://github.com/jprichardson/node-fs-extra/pull/449) +- `fs.move()` now errors out when destination is a subdirectory of source. [#458](https://github.com/jprichardson/node-fs-extra/pull/458) +- Applied upstream fixes from `rimraf` to `fs.remove()` & `fs.removeSync()`. [#459](https://github.com/jprichardson/node-fs-extra/pull/459) + +### Fixed + +- Got `fs.outputJSONSync()` working again; it was broken due to refactoring. [#428](https://github.com/jprichardson/node-fs-extra/pull/428) + +Also clarified the docs in a few places. + +3.0.1 / 2017-05-04 +------------------ + +- Fix bug in `move()` & `moveSync()` when source and destination are the same, and source does not exist. [#415](https://github.com/jprichardson/node-fs-extra/pull/415) + +3.0.0 / 2017-04-27 +------------------ + +### Added + +- **BREAKING:** Added Promise support. All asynchronous native fs methods and fs-extra methods now return a promise if the callback is not passed. [#403](https://github.com/jprichardson/node-fs-extra/pull/403) +- `pathExists()`, a replacement for the deprecated `fs.exists`. `pathExists` has a normal error-first callback signature. Also added `pathExistsSync`, an alias to `fs.existsSync`, for completeness. [#406](https://github.com/jprichardson/node-fs-extra/pull/406) + +### Removed + +- **BREAKING:** Removed support for setting the default spaces for `writeJson()`, `writeJsonSync()`, `outputJson()`, & `outputJsonSync()`. This was undocumented. [#402](https://github.com/jprichardson/node-fs-extra/pull/402) + +### Changed + +- Upgraded jsonfile dependency to v3.0.0: + - **BREAKING:** Changed behavior of `throws` option for `readJsonSync()`; now does not throw filesystem errors when `throws` is `false`. +- **BREAKING:** `writeJson()`, `writeJsonSync()`, `outputJson()`, & `outputJsonSync()` now output minified JSON by default for consistency with `JSON.stringify()`; set the `spaces` option to `2` to override this new behavior. [#402](https://github.com/jprichardson/node-fs-extra/pull/402) +- Use `Buffer.allocUnsafe()` instead of `new Buffer()` in environments that support it. [#394](https://github.com/jprichardson/node-fs-extra/pull/394) + +### Fixed + +- `removeSync()` silently failed on Windows in some cases. Now throws an `EBUSY` error. [#408](https://github.com/jprichardson/node-fs-extra/pull/408) + +2.1.2 / 2017-03-16 +------------------ + +### Fixed + +- Weird windows bug that resulted in `ensureDir()`'s callback being called twice in some cases. This bug may have also affected `remove()`. See [#392](https://github.com/jprichardson/node-fs-extra/issues/392), [#393](https://github.com/jprichardson/node-fs-extra/pull/393) + +2.1.1 / 2017-03-15 +------------------ + +### Fixed + +- Reverted [`5597bd`](https://github.com/jprichardson/node-fs-extra/commit/5597bd5b67f7d060f5f5bf26e9635be48330f5d7), this broke compatibility with Node.js versions v4+ but less than `v4.5.0`. +- Remove `Buffer.alloc()` usage in `moveSync()`. + +2.1.0 / 2017-03-15 +------------------ + +Thanks to [Mani Maghsoudlou (@manidlou)](https://github.com/manidlou) & [Jan Peer Stöcklmair (@JPeer264)](https://github.com/JPeer264) for their extraordinary help with this release! + +### Added +- `moveSync()` See [#309], [#381](https://github.com/jprichardson/node-fs-extra/pull/381). ([@manidlou](https://github.com/manidlou)) +- `copy()` and `copySync()`'s `filter` option now gets the destination path passed as the second parameter. [#366](https://github.com/jprichardson/node-fs-extra/pull/366) ([@manidlou](https://github.com/manidlou)) + +### Changed +- Use `Buffer.alloc()` instead of deprecated `new Buffer()` in `copySync()`. [#380](https://github.com/jprichardson/node-fs-extra/pull/380) ([@manidlou](https://github.com/manidlou)) +- Refactored entire codebase to use ES6 features supported by Node.js v4+ [#355](https://github.com/jprichardson/node-fs-extra/issues/355). [(@JPeer264)](https://github.com/JPeer264) +- Refactored docs. ([@manidlou](https://github.com/manidlou)) + +### Fixed + +- `move()` shouldn't error out when source and dest are the same. [#377](https://github.com/jprichardson/node-fs-extra/issues/377), [#378](https://github.com/jprichardson/node-fs-extra/pull/378) ([@jdalton](https://github.com/jdalton)) + +2.0.0 / 2017-01-16 +------------------ + +### Removed +- **BREAKING:** Removed support for Node `v0.12`. The Node foundation stopped officially supporting it +on Jan 1st, 2017. +- **BREAKING:** Remove `walk()` and `walkSync()`. `walkSync()` was only part of `fs-extra` for a little +over two months. Use [klaw](https://github.com/jprichardson/node-klaw) instead of `walk()`, in fact, `walk()` was just +an alias to klaw. For `walkSync()` use [klaw-sync](https://github.com/mawni/node-klaw-sync). See: [#338], [#339] + +### Changed +- **BREAKING:** Renamed `clobber` to `overwrite`. This affects `copy()`, `copySync()`, and `move()`. [#330], [#333] +- Moved docs, to `docs/`. [#340] + +### Fixed +- Apply filters to directories in `copySync()` like in `copy()`. [#324] +- A specific condition when disk is under heavy use, `copy()` can fail. [#326] + + +1.0.0 / 2016-11-01 +------------------ + +After five years of development, we finally have reach the 1.0.0 milestone! Big thanks goes +to [Ryan Zim](https://github.com/RyanZim) for leading the charge on this release! + +### Added +- `walkSync()` + +### Changed +- **BREAKING**: dropped Node v0.10 support. +- disabled `rimaf` globbing, wasn't used. [#280] +- deprecate `copy()/copySync()` option `filter` if it's a `RegExp`. `filter` should now be a function. +- inline `rimraf`. This is temporary and was done because `rimraf` depended upon the beefy `glob` which `fs-extra` does not use. [#300] + +### Fixed +- bug fix proper closing of file handle on `utimesMillis()` [#271] +- proper escaping of files with dollar signs [#291] +- `copySync()` failed if user didn't own file. [#199], [#301] + + +0.30.0 / 2016-04-28 +------------------- +- Brought back Node v0.10 support. I didn't realize there was still demand. Official support will end **2016-10-01**. + +0.29.0 / 2016-04-27 +------------------- +- **BREAKING**: removed support for Node v0.10. If you still want to use Node v0.10, everything should work except for `ensureLink()/ensureSymlink()`. Node v0.12 is still supported but will be dropped in the near future as well. + +0.28.0 / 2016-04-17 +------------------- +- **BREAKING**: removed `createOutputStream()`. Use https://www.npmjs.com/package/create-output-stream. See: [#192][#192] +- `mkdirs()/mkdirsSync()` check for invalid win32 path chars. See: [#209][#209], [#237][#237] +- `mkdirs()/mkdirsSync()` if drive not mounted, error. See: [#93][#93] + +0.27.0 / 2016-04-15 +------------------- +- add `dereference` option to `copySync()`. [#235][#235] + +0.26.7 / 2016-03-16 +------------------- +- fixed `copy()` if source and dest are the same. [#230][#230] + +0.26.6 / 2016-03-15 +------------------- +- fixed if `emptyDir()` does not have a callback: [#229][#229] + +0.26.5 / 2016-01-27 +------------------- +- `copy()` with two arguments (w/o callback) was broken. See: [#215][#215] + +0.26.4 / 2016-01-05 +------------------- +- `copySync()` made `preserveTimestamps` default consistent with `copy()` which is `false`. See: [#208][#208] + +0.26.3 / 2015-12-17 +------------------- +- fixed `copy()` hangup in copying blockDevice / characterDevice / `/dev/null`. See: [#193][#193] + +0.26.2 / 2015-11-02 +------------------- +- fixed `outputJson{Sync}()` spacing adherence to `fs.spaces` + +0.26.1 / 2015-11-02 +------------------- +- fixed `copySync()` when `clogger=true` and the destination is read only. See: [#190][#190] + +0.26.0 / 2015-10-25 +------------------- +- extracted the `walk()` function into its own module [`klaw`](https://github.com/jprichardson/node-klaw). + +0.25.0 / 2015-10-24 +------------------- +- now has a file walker `walk()` + +0.24.0 / 2015-08-28 +------------------- +- removed alias `delete()` and `deleteSync()`. See: [#171][#171] + +0.23.1 / 2015-08-07 +------------------- +- Better handling of errors for `move()` when moving across devices. [#170][#170] +- `ensureSymlink()` and `ensureLink()` should not throw errors if link exists. [#169][#169] + +0.23.0 / 2015-08-06 +------------------- +- added `ensureLink{Sync}()` and `ensureSymlink{Sync}()`. See: [#165][#165] + +0.22.1 / 2015-07-09 +------------------- +- Prevent calling `hasMillisResSync()` on module load. See: [#149][#149]. +Fixes regression that was introduced in `0.21.0`. + +0.22.0 / 2015-07-09 +------------------- +- preserve permissions / ownership in `copy()`. See: [#54][#54] + +0.21.0 / 2015-07-04 +------------------- +- add option to preserve timestamps in `copy()` and `copySync()`. See: [#141][#141] +- updated `graceful-fs@3.x` to `4.x`. This brings in features from `amazing-graceful-fs` (much cleaner code / less hacks) + +0.20.1 / 2015-06-23 +------------------- +- fixed regression caused by latest jsonfile update: See: https://github.com/jprichardson/node-jsonfile/issues/26 + +0.20.0 / 2015-06-19 +------------------- +- removed `jsonfile` aliases with `File` in the name, they weren't documented and probably weren't in use e.g. +this package had both `fs.readJsonFile` and `fs.readJson` that were aliases to each other, now use `fs.readJson`. +- preliminary walker created. Intentionally not documented. If you use it, it will almost certainly change and break your code. +- started moving tests inline +- upgraded to `jsonfile@2.1.0`, can now pass JSON revivers/replacers to `readJson()`, `writeJson()`, `outputJson()` + +0.19.0 / 2015-06-08 +------------------- +- `fs.copy()` had support for Node v0.8, dropped support + +0.18.4 / 2015-05-22 +------------------- +- fixed license field according to this: [#136][#136] and https://github.com/npm/npm/releases/tag/v2.10.0 + +0.18.3 / 2015-05-08 +------------------- +- bugfix: handle `EEXIST` when clobbering on some Linux systems. [#134][#134] + +0.18.2 / 2015-04-17 +------------------- +- bugfix: allow `F_OK` ([#120][#120]) + +0.18.1 / 2015-04-15 +------------------- +- improved windows support for `move()` a bit. https://github.com/jprichardson/node-fs-extra/commit/92838980f25dc2ee4ec46b43ee14d3c4a1d30c1b +- fixed a lot of tests for Windows (appveyor) + +0.18.0 / 2015-03-31 +------------------- +- added `emptyDir()` and `emptyDirSync()` + +0.17.0 / 2015-03-28 +------------------- +- `copySync` added `clobber` option (before always would clobber, now if `clobber` is `false` it throws an error if the destination exists). +**Only works with files at the moment.** +- `createOutputStream()` added. See: [#118][#118] + +0.16.5 / 2015-03-08 +------------------- +- fixed `fs.move` when `clobber` is `true` and destination is a directory, it should clobber. [#114][#114] + +0.16.4 / 2015-03-01 +------------------- +- `fs.mkdirs` fix infinite loop on Windows. See: See https://github.com/substack/node-mkdirp/pull/74 and https://github.com/substack/node-mkdirp/issues/66 + +0.16.3 / 2015-01-28 +------------------- +- reverted https://github.com/jprichardson/node-fs-extra/commit/1ee77c8a805eba5b99382a2591ff99667847c9c9 + + +0.16.2 / 2015-01-28 +------------------- +- fixed `fs.copy` for Node v0.8 (support is temporary and will be removed in the near future) + +0.16.1 / 2015-01-28 +------------------- +- if `setImmediate` is not available, fall back to `process.nextTick` + +0.16.0 / 2015-01-28 +------------------- +- bugfix `fs.move()` into itself. Closes [#104] +- bugfix `fs.move()` moving directory across device. Closes [#108] +- added coveralls support +- bugfix: nasty multiple callback `fs.copy()` bug. Closes [#98] +- misc fs.copy code cleanups + +0.15.0 / 2015-01-21 +------------------- +- dropped `ncp`, imported code in +- because of previous, now supports `io.js` +- `graceful-fs` is now a dependency + +0.14.0 / 2015-01-05 +------------------- +- changed `copy`/`copySync` from `fs.copy(src, dest, [filters], callback)` to `fs.copy(src, dest, [options], callback)` [#100][#100] +- removed mockfs tests for mkdirp (this may be temporary, but was getting in the way of other tests) + +0.13.0 / 2014-12-10 +------------------- +- removed `touch` and `touchSync` methods (they didn't handle permissions like UNIX touch) +- updated `"ncp": "^0.6.0"` to `"ncp": "^1.0.1"` +- imported `mkdirp` => `minimist` and `mkdirp` are no longer dependences, should now appease people who wanted `mkdirp` to be `--use_strict` safe. See [#59]([#59][#59]) + +0.12.0 / 2014-09-22 +------------------- +- copy symlinks in `copySync()` [#85][#85] + +0.11.1 / 2014-09-02 +------------------- +- bugfix `copySync()` preserve file permissions [#80][#80] + +0.11.0 / 2014-08-11 +------------------- +- upgraded `"ncp": "^0.5.1"` to `"ncp": "^0.6.0"` +- upgrade `jsonfile": "^1.2.0"` to `jsonfile": "^2.0.0"` => on write, json files now have `\n` at end. Also adds `options.throws` to `readJsonSync()` +see https://github.com/jprichardson/node-jsonfile#readfilesyncfilename-options for more details. + +0.10.0 / 2014-06-29 +------------------ +* bugfix: upgaded `"jsonfile": "~1.1.0"` to `"jsonfile": "^1.2.0"`, bumped minor because of `jsonfile` dep change +from `~` to `^`. [#67] + +0.9.1 / 2014-05-22 +------------------ +* removed Node.js `0.8.x` support, `0.9.0` was published moments ago and should have been done there + +0.9.0 / 2014-05-22 +------------------ +* upgraded `ncp` from `~0.4.2` to `^0.5.1`, [#58] +* upgraded `rimraf` from `~2.2.6` to `^2.2.8` +* upgraded `mkdirp` from `0.3.x` to `^0.5.0` +* added methods `ensureFile()`, `ensureFileSync()` +* added methods `ensureDir()`, `ensureDirSync()` [#31] +* added `move()` method. From: https://github.com/andrewrk/node-mv + + +0.8.1 / 2013-10-24 +------------------ +* copy failed to return an error to the callback if a file doesn't exist (ulikoehler [#38], [#39]) + +0.8.0 / 2013-10-14 +------------------ +* `filter` implemented on `copy()` and `copySync()`. (Srirangan / [#36]) + +0.7.1 / 2013-10-12 +------------------ +* `copySync()` implemented (Srirangan / [#33]) +* updated to the latest `jsonfile` version `1.1.0` which gives `options` params for the JSON methods. Closes [#32] + +0.7.0 / 2013-10-07 +------------------ +* update readme conventions +* `copy()` now works if destination directory does not exist. Closes [#29] + +0.6.4 / 2013-09-05 +------------------ +* changed `homepage` field in package.json to remove NPM warning + +0.6.3 / 2013-06-28 +------------------ +* changed JSON spacing default from `4` to `2` to follow Node conventions +* updated `jsonfile` dep +* updated `rimraf` dep + +0.6.2 / 2013-06-28 +------------------ +* added .npmignore, [#25] + +0.6.1 / 2013-05-14 +------------------ +* modified for `strict` mode, closes [#24] +* added `outputJson()/outputJsonSync()`, closes [#23] + +0.6.0 / 2013-03-18 +------------------ +* removed node 0.6 support +* added node 0.10 support +* upgraded to latest `ncp` and `rimraf`. +* optional `graceful-fs` support. Closes [#17] + + +0.5.0 / 2013-02-03 +------------------ +* Removed `readTextFile`. +* Renamed `readJSONFile` to `readJSON` and `readJson`, same with write. +* Restructured documentation a bit. Added roadmap. + +0.4.0 / 2013-01-28 +------------------ +* Set default spaces in `jsonfile` from 4 to 2. +* Updated `testutil` deps for tests. +* Renamed `touch()` to `createFile()` +* Added `outputFile()` and `outputFileSync()` +* Changed creation of testing diretories so the /tmp dir is not littered. +* Added `readTextFile()` and `readTextFileSync()`. + +0.3.2 / 2012-11-01 +------------------ +* Added `touch()` and `touchSync()` methods. + +0.3.1 / 2012-10-11 +------------------ +* Fixed some stray globals. + +0.3.0 / 2012-10-09 +------------------ +* Removed all CoffeeScript from tests. +* Renamed `mkdir` to `mkdirs`/`mkdirp`. + +0.2.1 / 2012-09-11 +------------------ +* Updated `rimraf` dep. + +0.2.0 / 2012-09-10 +------------------ +* Rewrote module into JavaScript. (Must still rewrite tests into JavaScript) +* Added all methods of [jsonfile](https://github.com/jprichardson/node-jsonfile) +* Added Travis-CI. + +0.1.3 / 2012-08-13 +------------------ +* Added method `readJSONFile`. + +0.1.2 / 2012-06-15 +------------------ +* Bug fix: `deleteSync()` didn't exist. +* Verified Node v0.8 compatibility. + +0.1.1 / 2012-06-15 +------------------ +* Fixed bug in `remove()`/`delete()` that wouldn't execute the function if a callback wasn't passed. + +0.1.0 / 2012-05-31 +------------------ +* Renamed `copyFile()` to `copy()`. `copy()` can now copy directories (recursively) too. +* Renamed `rmrf()` to `remove()`. +* `remove()` aliased with `delete()`. +* Added `mkdirp` capabilities. Named: `mkdir()`. Hides Node.js native `mkdir()`. +* Instead of exporting the native `fs` module with new functions, I now copy over the native methods to a new object and export that instead. + +0.0.4 / 2012-03-14 +------------------ +* Removed CoffeeScript dependency + +0.0.3 / 2012-01-11 +------------------ +* Added methods rmrf and rmrfSync +* Moved tests from Jasmine to Mocha + + +[#344]: https://github.com/jprichardson/node-fs-extra/issues/344 "Licence Year" +[#343]: https://github.com/jprichardson/node-fs-extra/pull/343 "Add klaw-sync link to readme" +[#342]: https://github.com/jprichardson/node-fs-extra/pull/342 "allow preserveTimestamps when use move" +[#341]: https://github.com/jprichardson/node-fs-extra/issues/341 "mkdirp(path.dirname(dest) in move() logic needs cleaning up [question]" +[#340]: https://github.com/jprichardson/node-fs-extra/pull/340 "Move docs to seperate docs folder [documentation]" +[#339]: https://github.com/jprichardson/node-fs-extra/pull/339 "Remove walk() & walkSync() [feature-walk]" +[#338]: https://github.com/jprichardson/node-fs-extra/issues/338 "Remove walk() and walkSync() [feature-walk]" +[#337]: https://github.com/jprichardson/node-fs-extra/issues/337 "copy doesn't return a yieldable value" +[#336]: https://github.com/jprichardson/node-fs-extra/pull/336 "Docs enhanced walk sync [documentation, feature-walk]" +[#335]: https://github.com/jprichardson/node-fs-extra/pull/335 "Refactor move() tests [feature-move]" +[#334]: https://github.com/jprichardson/node-fs-extra/pull/334 "Cleanup lib/move/index.js [feature-move]" +[#333]: https://github.com/jprichardson/node-fs-extra/pull/333 "Rename clobber to overwrite [feature-copy, feature-move]" +[#332]: https://github.com/jprichardson/node-fs-extra/pull/332 "BREAKING: Drop Node v0.12 & io.js support" +[#331]: https://github.com/jprichardson/node-fs-extra/issues/331 "Add support for chmodr [enhancement, future]" +[#330]: https://github.com/jprichardson/node-fs-extra/pull/330 "BREAKING: Do not error when copy destination exists & clobber: false [feature-copy]" +[#329]: https://github.com/jprichardson/node-fs-extra/issues/329 "Does .walk() scale to large directories? [question]" +[#328]: https://github.com/jprichardson/node-fs-extra/issues/328 "Copying files corrupts [feature-copy, needs-confirmed]" +[#327]: https://github.com/jprichardson/node-fs-extra/pull/327 "Use writeStream 'finish' event instead of 'close' [bug, feature-copy]" +[#326]: https://github.com/jprichardson/node-fs-extra/issues/326 "fs.copy fails with chmod error when disk under heavy use [bug, feature-copy]" +[#325]: https://github.com/jprichardson/node-fs-extra/issues/325 "ensureDir is difficult to promisify [enhancement]" +[#324]: https://github.com/jprichardson/node-fs-extra/pull/324 "copySync() should apply filter to directories like copy() [bug, feature-copy]" +[#323]: https://github.com/jprichardson/node-fs-extra/issues/323 "Support for `dest` being a directory when using `copy*()`?" +[#322]: https://github.com/jprichardson/node-fs-extra/pull/322 "Add fs-promise as fs-extra-promise alternative" +[#321]: https://github.com/jprichardson/node-fs-extra/issues/321 "fs.copy() with clobber set to false return EEXIST error [feature-copy]" +[#320]: https://github.com/jprichardson/node-fs-extra/issues/320 "fs.copySync: Error: EPERM: operation not permitted, unlink " +[#319]: https://github.com/jprichardson/node-fs-extra/issues/319 "Create directory if not exists" +[#318]: https://github.com/jprichardson/node-fs-extra/issues/318 "Support glob patterns [enhancement, future]" +[#317]: https://github.com/jprichardson/node-fs-extra/pull/317 "Adding copy sync test for src file without write perms" +[#316]: https://github.com/jprichardson/node-fs-extra/pull/316 "Remove move()'s broken limit option [feature-move]" +[#315]: https://github.com/jprichardson/node-fs-extra/pull/315 "Fix move clobber tests to work around graceful-fs bug." +[#314]: https://github.com/jprichardson/node-fs-extra/issues/314 "move() limit option [documentation, enhancement, feature-move]" +[#313]: https://github.com/jprichardson/node-fs-extra/pull/313 "Test that remove() ignores glob characters." +[#312]: https://github.com/jprichardson/node-fs-extra/pull/312 "Enhance walkSync() to return items with path and stats [feature-walk]" +[#311]: https://github.com/jprichardson/node-fs-extra/issues/311 "move() not work when dest name not provided [feature-move]" +[#310]: https://github.com/jprichardson/node-fs-extra/issues/310 "Edit walkSync to return items like what walk emits [documentation, enhancement, feature-walk]" +[#309]: https://github.com/jprichardson/node-fs-extra/issues/309 "moveSync support [enhancement, feature-move]" +[#308]: https://github.com/jprichardson/node-fs-extra/pull/308 "Fix incorrect anchor link" +[#307]: https://github.com/jprichardson/node-fs-extra/pull/307 "Fix coverage" +[#306]: https://github.com/jprichardson/node-fs-extra/pull/306 "Update devDeps, fix lint error" +[#305]: https://github.com/jprichardson/node-fs-extra/pull/305 "Re-add Coveralls" +[#304]: https://github.com/jprichardson/node-fs-extra/pull/304 "Remove path-is-absolute [enhancement]" +[#303]: https://github.com/jprichardson/node-fs-extra/pull/303 "Document copySync filter inconsistency [documentation, feature-copy]" +[#302]: https://github.com/jprichardson/node-fs-extra/pull/302 "fix(console): depreciated -> deprecated" +[#301]: https://github.com/jprichardson/node-fs-extra/pull/301 "Remove chmod call from copySync [feature-copy]" +[#300]: https://github.com/jprichardson/node-fs-extra/pull/300 "Inline Rimraf [enhancement, feature-move, feature-remove]" +[#299]: https://github.com/jprichardson/node-fs-extra/pull/299 "Warn when filter is a RegExp [feature-copy]" +[#298]: https://github.com/jprichardson/node-fs-extra/issues/298 "API Docs [documentation]" +[#297]: https://github.com/jprichardson/node-fs-extra/pull/297 "Warn about using preserveTimestamps on 32-bit node" +[#296]: https://github.com/jprichardson/node-fs-extra/pull/296 "Improve EEXIST error message for copySync [enhancement]" +[#295]: https://github.com/jprichardson/node-fs-extra/pull/295 "Depreciate using regular expressions for copy's filter option [documentation]" +[#294]: https://github.com/jprichardson/node-fs-extra/pull/294 "BREAKING: Refactor lib/copy/ncp.js [feature-copy]" +[#293]: https://github.com/jprichardson/node-fs-extra/pull/293 "Update CI configs" +[#292]: https://github.com/jprichardson/node-fs-extra/issues/292 "Rewrite lib/copy/ncp.js [enhancement, feature-copy]" +[#291]: https://github.com/jprichardson/node-fs-extra/pull/291 "Escape '$' in replacement string for async file copying" +[#290]: https://github.com/jprichardson/node-fs-extra/issues/290 "Exclude files pattern while copying using copy.config.js [question]" +[#289]: https://github.com/jprichardson/node-fs-extra/pull/289 "(Closes #271) lib/util/utimes: properly close file descriptors in the event of an error" +[#288]: https://github.com/jprichardson/node-fs-extra/pull/288 "(Closes #271) lib/util/utimes: properly close file descriptors in the event of an error" +[#287]: https://github.com/jprichardson/node-fs-extra/issues/287 "emptyDir() callback arguments are inconsistent [enhancement, feature-remove]" +[#286]: https://github.com/jprichardson/node-fs-extra/pull/286 "Added walkSync function" +[#285]: https://github.com/jprichardson/node-fs-extra/issues/285 "CITGM test failing on s390" +[#284]: https://github.com/jprichardson/node-fs-extra/issues/284 "outputFile method is missing a check to determine if existing item is a folder or not" +[#283]: https://github.com/jprichardson/node-fs-extra/pull/283 "Apply filter also on directories and symlinks for copySync()" +[#282]: https://github.com/jprichardson/node-fs-extra/pull/282 "Apply filter also on directories and symlinks for copySync()" +[#281]: https://github.com/jprichardson/node-fs-extra/issues/281 "remove function executes 'successfully' but doesn't do anything?" +[#280]: https://github.com/jprichardson/node-fs-extra/pull/280 "Disable rimraf globbing" +[#279]: https://github.com/jprichardson/node-fs-extra/issues/279 "Some code is vendored instead of included [awaiting-reply]" +[#278]: https://github.com/jprichardson/node-fs-extra/issues/278 "copy() does not preserve file/directory ownership" +[#277]: https://github.com/jprichardson/node-fs-extra/pull/277 "Mention defaults for clobber and dereference options" +[#276]: https://github.com/jprichardson/node-fs-extra/issues/276 "Cannot connect to Shared Folder [awaiting-reply]" +[#275]: https://github.com/jprichardson/node-fs-extra/issues/275 "EMFILE, too many open files on Mac OS with JSON API" +[#274]: https://github.com/jprichardson/node-fs-extra/issues/274 "Use with memory-fs? [enhancement, future]" +[#273]: https://github.com/jprichardson/node-fs-extra/pull/273 "tests: rename `remote.test.js` to `remove.test.js`" +[#272]: https://github.com/jprichardson/node-fs-extra/issues/272 "Copy clobber flag never err even when true [bug, feature-copy]" +[#271]: https://github.com/jprichardson/node-fs-extra/issues/271 "Unclosed file handle on futimes error" +[#270]: https://github.com/jprichardson/node-fs-extra/issues/270 "copy not working as desired on Windows [feature-copy, platform-windows]" +[#269]: https://github.com/jprichardson/node-fs-extra/issues/269 "Copying with preserveTimeStamps: true is inaccurate using 32bit node [feature-copy]" +[#268]: https://github.com/jprichardson/node-fs-extra/pull/268 "port fix for mkdirp issue #111" +[#267]: https://github.com/jprichardson/node-fs-extra/issues/267 "WARN deprecated wrench@1.5.9: wrench.js is deprecated!" +[#266]: https://github.com/jprichardson/node-fs-extra/issues/266 "fs-extra" +[#265]: https://github.com/jprichardson/node-fs-extra/issues/265 "Link the `fs.stat fs.exists` etc. methods for replace the `fs` module forever?" +[#264]: https://github.com/jprichardson/node-fs-extra/issues/264 "Renaming a file using move fails when a file inside is open (at least on windows) [wont-fix]" +[#263]: https://github.com/jprichardson/node-fs-extra/issues/263 "ENOSYS: function not implemented, link [needs-confirmed]" +[#262]: https://github.com/jprichardson/node-fs-extra/issues/262 "Add .exists() and .existsSync()" +[#261]: https://github.com/jprichardson/node-fs-extra/issues/261 "Cannot read property 'prototype' of undefined" +[#260]: https://github.com/jprichardson/node-fs-extra/pull/260 "use more specific path for method require" +[#259]: https://github.com/jprichardson/node-fs-extra/issues/259 "Feature Request: isEmpty" +[#258]: https://github.com/jprichardson/node-fs-extra/issues/258 "copy files does not preserve file timestamp" +[#257]: https://github.com/jprichardson/node-fs-extra/issues/257 "Copying a file on windows fails" +[#256]: https://github.com/jprichardson/node-fs-extra/pull/256 "Updated Readme " +[#255]: https://github.com/jprichardson/node-fs-extra/issues/255 "Update rimraf required version" +[#254]: https://github.com/jprichardson/node-fs-extra/issues/254 "request for readTree, readTreeSync, walkSync method" +[#253]: https://github.com/jprichardson/node-fs-extra/issues/253 "outputFile does not touch mtime when file exists" +[#252]: https://github.com/jprichardson/node-fs-extra/pull/252 "Fixing problem when copying file with no write permission" +[#251]: https://github.com/jprichardson/node-fs-extra/issues/251 "Just wanted to say thank you" +[#250]: https://github.com/jprichardson/node-fs-extra/issues/250 "`fs.remove()` not removing files (works with `rm -rf`)" +[#249]: https://github.com/jprichardson/node-fs-extra/issues/249 "Just a Question ... Remove Servers" +[#248]: https://github.com/jprichardson/node-fs-extra/issues/248 "Allow option to not preserve permissions for copy" +[#247]: https://github.com/jprichardson/node-fs-extra/issues/247 "Add TypeScript typing directly in the fs-extra package" +[#246]: https://github.com/jprichardson/node-fs-extra/issues/246 "fse.remove() && fse.removeSync() don't throw error on ENOENT file" +[#245]: https://github.com/jprichardson/node-fs-extra/issues/245 "filter for empty dir [enhancement]" +[#244]: https://github.com/jprichardson/node-fs-extra/issues/244 "copySync doesn't apply the filter to directories" +[#243]: https://github.com/jprichardson/node-fs-extra/issues/243 "Can I request fs.walk() to be synchronous?" +[#242]: https://github.com/jprichardson/node-fs-extra/issues/242 "Accidentally truncates file names ending with $$ [bug, feature-copy]" +[#241]: https://github.com/jprichardson/node-fs-extra/pull/241 "Remove link to createOutputStream" +[#240]: https://github.com/jprichardson/node-fs-extra/issues/240 "walkSync request" +[#239]: https://github.com/jprichardson/node-fs-extra/issues/239 "Depreciate regular expressions for copy's filter [documentation, feature-copy]" +[#238]: https://github.com/jprichardson/node-fs-extra/issues/238 "Can't write to files while in a worker thread." +[#237]: https://github.com/jprichardson/node-fs-extra/issues/237 ".ensureDir(..) fails silently when passed an invalid path..." +[#236]: https://github.com/jprichardson/node-fs-extra/issues/236 "[Removed] Filed under wrong repo" +[#235]: https://github.com/jprichardson/node-fs-extra/pull/235 "Adds symlink dereference option to `fse.copySync` (#191)" +[#234]: https://github.com/jprichardson/node-fs-extra/issues/234 "ensureDirSync fails silent when EACCES: permission denied on travis-ci" +[#233]: https://github.com/jprichardson/node-fs-extra/issues/233 "please make sure the first argument in callback is error object [feature-copy]" +[#232]: https://github.com/jprichardson/node-fs-extra/issues/232 "Copy a folder content to its child folder. " +[#231]: https://github.com/jprichardson/node-fs-extra/issues/231 "Adding read/write/output functions for YAML" +[#230]: https://github.com/jprichardson/node-fs-extra/pull/230 "throw error if src and dest are the same to avoid zeroing out + test" +[#229]: https://github.com/jprichardson/node-fs-extra/pull/229 "fix 'TypeError: callback is not a function' in emptyDir" +[#228]: https://github.com/jprichardson/node-fs-extra/pull/228 "Throw error when target is empty so file is not accidentally zeroed out" +[#227]: https://github.com/jprichardson/node-fs-extra/issues/227 "Uncatchable errors when there are invalid arguments [feature-move]" +[#226]: https://github.com/jprichardson/node-fs-extra/issues/226 "Moving to the current directory" +[#225]: https://github.com/jprichardson/node-fs-extra/issues/225 "EBUSY: resource busy or locked, unlink" +[#224]: https://github.com/jprichardson/node-fs-extra/issues/224 "fse.copy ENOENT error" +[#223]: https://github.com/jprichardson/node-fs-extra/issues/223 "Suspicious behavior of fs.existsSync" +[#222]: https://github.com/jprichardson/node-fs-extra/pull/222 "A clearer description of emtpyDir function" +[#221]: https://github.com/jprichardson/node-fs-extra/pull/221 "Update README.md" +[#220]: https://github.com/jprichardson/node-fs-extra/pull/220 "Non-breaking feature: add option 'passStats' to copy methods." +[#219]: https://github.com/jprichardson/node-fs-extra/pull/219 "Add closing parenthesis in copySync example" +[#218]: https://github.com/jprichardson/node-fs-extra/pull/218 "fix #187 #70 options.filter bug" +[#217]: https://github.com/jprichardson/node-fs-extra/pull/217 "fix #187 #70 options.filter bug" +[#216]: https://github.com/jprichardson/node-fs-extra/pull/216 "fix #187 #70 options.filter bug" +[#215]: https://github.com/jprichardson/node-fs-extra/pull/215 "fse.copy throws error when only src and dest provided [bug, documentation, feature-copy]" +[#214]: https://github.com/jprichardson/node-fs-extra/pull/214 "Fixing copySync anchor tag" +[#213]: https://github.com/jprichardson/node-fs-extra/issues/213 "Merge extfs with this repo" +[#212]: https://github.com/jprichardson/node-fs-extra/pull/212 "Update year to 2016 in README.md and LICENSE" +[#211]: https://github.com/jprichardson/node-fs-extra/issues/211 "Not copying all files" +[#210]: https://github.com/jprichardson/node-fs-extra/issues/210 "copy/copySync behave differently when copying a symbolic file [bug, documentation, feature-copy]" +[#209]: https://github.com/jprichardson/node-fs-extra/issues/209 "In Windows invalid directory name causes infinite loop in ensureDir(). [bug]" +[#208]: https://github.com/jprichardson/node-fs-extra/pull/208 "fix options.preserveTimestamps to false in copy-sync by default [feature-copy]" +[#207]: https://github.com/jprichardson/node-fs-extra/issues/207 "Add `compare` suite of functions" +[#206]: https://github.com/jprichardson/node-fs-extra/issues/206 "outputFileSync" +[#205]: https://github.com/jprichardson/node-fs-extra/issues/205 "fix documents about copy/copySync [documentation, feature-copy]" +[#204]: https://github.com/jprichardson/node-fs-extra/pull/204 "allow copy of block and character device files" +[#203]: https://github.com/jprichardson/node-fs-extra/issues/203 "copy method's argument options couldn't be undefined [bug, feature-copy]" +[#202]: https://github.com/jprichardson/node-fs-extra/issues/202 "why there is not a walkSync method?" +[#201]: https://github.com/jprichardson/node-fs-extra/issues/201 "clobber for directories [feature-copy, future]" +[#200]: https://github.com/jprichardson/node-fs-extra/issues/200 "'copySync' doesn't work in sync" +[#199]: https://github.com/jprichardson/node-fs-extra/issues/199 "fs.copySync fails if user does not own file [bug, feature-copy]" +[#198]: https://github.com/jprichardson/node-fs-extra/issues/198 "handle copying between identical files [feature-copy]" +[#197]: https://github.com/jprichardson/node-fs-extra/issues/197 "Missing documentation for `outputFile` `options` 3rd parameter [documentation]" +[#196]: https://github.com/jprichardson/node-fs-extra/issues/196 "copy filter: async function and/or function called with `fs.stat` result [future]" +[#195]: https://github.com/jprichardson/node-fs-extra/issues/195 "How to override with outputFile?" +[#194]: https://github.com/jprichardson/node-fs-extra/pull/194 "allow ensureFile(Sync) to provide data to be written to created file" +[#193]: https://github.com/jprichardson/node-fs-extra/issues/193 "`fs.copy` fails silently if source file is /dev/null [bug, feature-copy]" +[#192]: https://github.com/jprichardson/node-fs-extra/issues/192 "Remove fs.createOutputStream()" +[#191]: https://github.com/jprichardson/node-fs-extra/issues/191 "How to copy symlinks to target as normal folders [feature-copy]" +[#190]: https://github.com/jprichardson/node-fs-extra/pull/190 "copySync to overwrite destination file if readonly and clobber true" +[#189]: https://github.com/jprichardson/node-fs-extra/pull/189 "move.test fix to support CRLF on Windows" +[#188]: https://github.com/jprichardson/node-fs-extra/issues/188 "move.test failing on windows platform" +[#187]: https://github.com/jprichardson/node-fs-extra/issues/187 "Not filter each file, stops on first false [feature-copy]" +[#186]: https://github.com/jprichardson/node-fs-extra/issues/186 "Do you need a .size() function in this module? [future]" +[#185]: https://github.com/jprichardson/node-fs-extra/issues/185 "Doesn't work on NodeJS v4.x" +[#184]: https://github.com/jprichardson/node-fs-extra/issues/184 "CLI equivalent for fs-extra" +[#183]: https://github.com/jprichardson/node-fs-extra/issues/183 "with clobber true, copy and copySync behave differently if destination file is read only [bug, feature-copy]" +[#182]: https://github.com/jprichardson/node-fs-extra/issues/182 "ensureDir(dir, callback) second callback parameter not specified" +[#181]: https://github.com/jprichardson/node-fs-extra/issues/181 "Add ability to remove file securely [enhancement, wont-fix]" +[#180]: https://github.com/jprichardson/node-fs-extra/issues/180 "Filter option doesn't work the same way in copy and copySync [bug, feature-copy]" +[#179]: https://github.com/jprichardson/node-fs-extra/issues/179 "Include opendir" +[#178]: https://github.com/jprichardson/node-fs-extra/issues/178 "ENOTEMPTY is thrown on removeSync " +[#177]: https://github.com/jprichardson/node-fs-extra/issues/177 "fix `remove()` wildcards (introduced by rimraf) [feature-remove]" +[#176]: https://github.com/jprichardson/node-fs-extra/issues/176 "createOutputStream doesn't emit 'end' event" +[#175]: https://github.com/jprichardson/node-fs-extra/issues/175 "[Feature Request].moveSync support [feature-move, future]" +[#174]: https://github.com/jprichardson/node-fs-extra/pull/174 "Fix copy formatting and document options.filter" +[#173]: https://github.com/jprichardson/node-fs-extra/issues/173 "Feature Request: writeJson should mkdirs" +[#172]: https://github.com/jprichardson/node-fs-extra/issues/172 "rename `clobber` flags to `overwrite`" +[#171]: https://github.com/jprichardson/node-fs-extra/issues/171 "remove unnecessary aliases" +[#170]: https://github.com/jprichardson/node-fs-extra/pull/170 "More robust handling of errors moving across virtual drives" +[#169]: https://github.com/jprichardson/node-fs-extra/pull/169 "suppress ensureLink & ensureSymlink dest exists error" +[#168]: https://github.com/jprichardson/node-fs-extra/pull/168 "suppress ensurelink dest exists error" +[#167]: https://github.com/jprichardson/node-fs-extra/pull/167 "Adds basic (string, buffer) support for ensureFile content [future]" +[#166]: https://github.com/jprichardson/node-fs-extra/pull/166 "Adds basic (string, buffer) support for ensureFile content" +[#165]: https://github.com/jprichardson/node-fs-extra/pull/165 "ensure for link & symlink" +[#164]: https://github.com/jprichardson/node-fs-extra/issues/164 "Feature Request: ensureFile to take optional argument for file content" +[#163]: https://github.com/jprichardson/node-fs-extra/issues/163 "ouputJson not formatted out of the box [bug]" +[#162]: https://github.com/jprichardson/node-fs-extra/pull/162 "ensure symlink & link" +[#161]: https://github.com/jprichardson/node-fs-extra/pull/161 "ensure symlink & link" +[#160]: https://github.com/jprichardson/node-fs-extra/pull/160 "ensure symlink & link" +[#159]: https://github.com/jprichardson/node-fs-extra/pull/159 "ensure symlink & link" +[#158]: https://github.com/jprichardson/node-fs-extra/issues/158 "Feature Request: ensureLink and ensureSymlink methods" +[#157]: https://github.com/jprichardson/node-fs-extra/issues/157 "writeJson isn't formatted" +[#156]: https://github.com/jprichardson/node-fs-extra/issues/156 "Promise.promisifyAll doesn't work for some methods" +[#155]: https://github.com/jprichardson/node-fs-extra/issues/155 "Readme" +[#154]: https://github.com/jprichardson/node-fs-extra/issues/154 "/tmp/millis-test-sync" +[#153]: https://github.com/jprichardson/node-fs-extra/pull/153 "Make preserveTimes also work on read-only files. Closes #152" +[#152]: https://github.com/jprichardson/node-fs-extra/issues/152 "fs.copy fails for read-only files with preserveTimestamp=true [feature-copy]" +[#151]: https://github.com/jprichardson/node-fs-extra/issues/151 "TOC does not work correctly on npm [documentation]" +[#150]: https://github.com/jprichardson/node-fs-extra/issues/150 "Remove test file fixtures, create with code." +[#149]: https://github.com/jprichardson/node-fs-extra/issues/149 "/tmp/millis-test-sync" +[#148]: https://github.com/jprichardson/node-fs-extra/issues/148 "split out `Sync` methods in documentation" +[#147]: https://github.com/jprichardson/node-fs-extra/issues/147 "Adding rmdirIfEmpty" +[#146]: https://github.com/jprichardson/node-fs-extra/pull/146 "ensure test.js works" +[#145]: https://github.com/jprichardson/node-fs-extra/issues/145 "Add `fs.exists` and `fs.existsSync` if it doesn't exist." +[#144]: https://github.com/jprichardson/node-fs-extra/issues/144 "tests failing" +[#143]: https://github.com/jprichardson/node-fs-extra/issues/143 "update graceful-fs" +[#142]: https://github.com/jprichardson/node-fs-extra/issues/142 "PrependFile Feature" +[#141]: https://github.com/jprichardson/node-fs-extra/pull/141 "Add option to preserve timestamps" +[#140]: https://github.com/jprichardson/node-fs-extra/issues/140 "Json file reading fails with 'utf8'" +[#139]: https://github.com/jprichardson/node-fs-extra/pull/139 "Preserve file timestamp on copy. Closes #138" +[#138]: https://github.com/jprichardson/node-fs-extra/issues/138 "Preserve timestamps on copying files" +[#137]: https://github.com/jprichardson/node-fs-extra/issues/137 "outputFile/outputJson: Unexpected end of input" +[#136]: https://github.com/jprichardson/node-fs-extra/pull/136 "Update license attribute" +[#135]: https://github.com/jprichardson/node-fs-extra/issues/135 "emptyDir throws Error if no callback is provided" +[#134]: https://github.com/jprichardson/node-fs-extra/pull/134 "Handle EEXIST error when clobbering dir" +[#133]: https://github.com/jprichardson/node-fs-extra/pull/133 "Travis runs with `sudo: false`" +[#132]: https://github.com/jprichardson/node-fs-extra/pull/132 "isDirectory method" +[#131]: https://github.com/jprichardson/node-fs-extra/issues/131 "copySync is not working iojs 1.8.4 on linux [feature-copy]" +[#130]: https://github.com/jprichardson/node-fs-extra/pull/130 "Please review additional features." +[#129]: https://github.com/jprichardson/node-fs-extra/pull/129 "can you review this feature?" +[#128]: https://github.com/jprichardson/node-fs-extra/issues/128 "fsExtra.move(filepath, newPath) broken;" +[#127]: https://github.com/jprichardson/node-fs-extra/issues/127 "consider using fs.access to remove deprecated warnings for fs.exists" +[#126]: https://github.com/jprichardson/node-fs-extra/issues/126 " TypeError: Object # has no method 'access'" +[#125]: https://github.com/jprichardson/node-fs-extra/issues/125 "Question: What do the *Sync function do different from non-sync" +[#124]: https://github.com/jprichardson/node-fs-extra/issues/124 "move with clobber option 'ENOTEMPTY'" +[#123]: https://github.com/jprichardson/node-fs-extra/issues/123 "Only copy the content of a directory" +[#122]: https://github.com/jprichardson/node-fs-extra/pull/122 "Update section links in README to match current section ids." +[#121]: https://github.com/jprichardson/node-fs-extra/issues/121 "emptyDir is undefined" +[#120]: https://github.com/jprichardson/node-fs-extra/issues/120 "usage bug caused by shallow cloning methods of 'graceful-fs'" +[#119]: https://github.com/jprichardson/node-fs-extra/issues/119 "mkdirs and ensureDir never invoke callback and consume CPU indefinitely if provided a path with invalid characters on Windows" +[#118]: https://github.com/jprichardson/node-fs-extra/pull/118 "createOutputStream" +[#117]: https://github.com/jprichardson/node-fs-extra/pull/117 "Fixed issue with slash separated paths on windows" +[#116]: https://github.com/jprichardson/node-fs-extra/issues/116 "copySync can only copy directories not files [documentation, feature-copy]" +[#115]: https://github.com/jprichardson/node-fs-extra/issues/115 ".Copy & .CopySync [feature-copy]" +[#114]: https://github.com/jprichardson/node-fs-extra/issues/114 "Fails to move (rename) directory to non-empty directory even with clobber: true" +[#113]: https://github.com/jprichardson/node-fs-extra/issues/113 "fs.copy seems to callback early if the destination file already exists" +[#112]: https://github.com/jprichardson/node-fs-extra/pull/112 "Copying a file into an existing directory" +[#111]: https://github.com/jprichardson/node-fs-extra/pull/111 "Moving a file into an existing directory " +[#110]: https://github.com/jprichardson/node-fs-extra/pull/110 "Moving a file into an existing directory" +[#109]: https://github.com/jprichardson/node-fs-extra/issues/109 "fs.move across windows drives fails" +[#108]: https://github.com/jprichardson/node-fs-extra/issues/108 "fse.move directories across multiple devices doesn't work" +[#107]: https://github.com/jprichardson/node-fs-extra/pull/107 "Check if dest path is an existing dir and copy or move source in it" +[#106]: https://github.com/jprichardson/node-fs-extra/issues/106 "fse.copySync crashes while copying across devices D: [feature-copy]" +[#105]: https://github.com/jprichardson/node-fs-extra/issues/105 "fs.copy hangs on iojs" +[#104]: https://github.com/jprichardson/node-fs-extra/issues/104 "fse.move deletes folders [bug]" +[#103]: https://github.com/jprichardson/node-fs-extra/issues/103 "Error: EMFILE with copy" +[#102]: https://github.com/jprichardson/node-fs-extra/issues/102 "touch / touchSync was removed ?" +[#101]: https://github.com/jprichardson/node-fs-extra/issues/101 "fs-extra promisified" +[#100]: https://github.com/jprichardson/node-fs-extra/pull/100 "copy: options object or filter to pass to ncp" +[#99]: https://github.com/jprichardson/node-fs-extra/issues/99 "ensureDir() modes [future]" +[#98]: https://github.com/jprichardson/node-fs-extra/issues/98 "fs.copy() incorrect async behavior [bug]" +[#97]: https://github.com/jprichardson/node-fs-extra/pull/97 "use path.join; fix copySync bug" +[#96]: https://github.com/jprichardson/node-fs-extra/issues/96 "destFolderExists in copySync is always undefined." +[#95]: https://github.com/jprichardson/node-fs-extra/pull/95 "Using graceful-ncp instead of ncp" +[#94]: https://github.com/jprichardson/node-fs-extra/issues/94 "Error: EEXIST, file already exists '../mkdirp/bin/cmd.js' on fs.copySync() [enhancement, feature-copy]" +[#93]: https://github.com/jprichardson/node-fs-extra/issues/93 "Confusing error if drive not mounted [enhancement]" +[#92]: https://github.com/jprichardson/node-fs-extra/issues/92 "Problems with Bluebird" +[#91]: https://github.com/jprichardson/node-fs-extra/issues/91 "fs.copySync('/test', '/haha') is different with 'cp -r /test /haha' [enhancement]" +[#90]: https://github.com/jprichardson/node-fs-extra/issues/90 "Folder creation and file copy is Happening in 64 bit machine but not in 32 bit machine" +[#89]: https://github.com/jprichardson/node-fs-extra/issues/89 "Error: EEXIST using fs-extra's fs.copy to copy a directory on Windows" +[#88]: https://github.com/jprichardson/node-fs-extra/issues/88 "Stacking those libraries" +[#87]: https://github.com/jprichardson/node-fs-extra/issues/87 "createWriteStream + outputFile = ?" +[#86]: https://github.com/jprichardson/node-fs-extra/issues/86 "no moveSync?" +[#85]: https://github.com/jprichardson/node-fs-extra/pull/85 "Copy symlinks in copySync" +[#84]: https://github.com/jprichardson/node-fs-extra/issues/84 "Push latest version to npm ?" +[#83]: https://github.com/jprichardson/node-fs-extra/issues/83 "Prevent copying a directory into itself [feature-copy]" +[#82]: https://github.com/jprichardson/node-fs-extra/pull/82 "README updates for move" +[#81]: https://github.com/jprichardson/node-fs-extra/issues/81 "fd leak after fs.move" +[#80]: https://github.com/jprichardson/node-fs-extra/pull/80 "Preserve file mode in copySync" +[#79]: https://github.com/jprichardson/node-fs-extra/issues/79 "fs.copy only .html file empty" +[#78]: https://github.com/jprichardson/node-fs-extra/pull/78 "copySync was not applying filters to directories" +[#77]: https://github.com/jprichardson/node-fs-extra/issues/77 "Create README reference to bluebird" +[#76]: https://github.com/jprichardson/node-fs-extra/issues/76 "Create README reference to typescript" +[#75]: https://github.com/jprichardson/node-fs-extra/issues/75 "add glob as a dep? [question]" +[#74]: https://github.com/jprichardson/node-fs-extra/pull/74 "including new emptydir module" +[#73]: https://github.com/jprichardson/node-fs-extra/pull/73 "add dependency status in readme" +[#72]: https://github.com/jprichardson/node-fs-extra/pull/72 "Use svg instead of png to get better image quality" +[#71]: https://github.com/jprichardson/node-fs-extra/issues/71 "fse.copy not working on Windows 7 x64 OS, but, copySync does work" +[#70]: https://github.com/jprichardson/node-fs-extra/issues/70 "Not filter each file, stops on first false [bug]" +[#69]: https://github.com/jprichardson/node-fs-extra/issues/69 "How to check if folder exist and read the folder name" +[#68]: https://github.com/jprichardson/node-fs-extra/issues/68 "consider flag to readJsonSync (throw false) [enhancement]" +[#67]: https://github.com/jprichardson/node-fs-extra/issues/67 "docs for readJson incorrectly states that is accepts options" +[#66]: https://github.com/jprichardson/node-fs-extra/issues/66 "ENAMETOOLONG" +[#65]: https://github.com/jprichardson/node-fs-extra/issues/65 "exclude filter in fs.copy" +[#64]: https://github.com/jprichardson/node-fs-extra/issues/64 "Announce: mfs - monitor your fs-extra calls" +[#63]: https://github.com/jprichardson/node-fs-extra/issues/63 "Walk" +[#62]: https://github.com/jprichardson/node-fs-extra/issues/62 "npm install fs-extra doesn't work" +[#61]: https://github.com/jprichardson/node-fs-extra/issues/61 "No longer supports node 0.8 due to use of `^` in package.json dependencies" +[#60]: https://github.com/jprichardson/node-fs-extra/issues/60 "chmod & chown for mkdirs" +[#59]: https://github.com/jprichardson/node-fs-extra/issues/59 "Consider including mkdirp and making fs-extra '--use_strict' safe [question]" +[#58]: https://github.com/jprichardson/node-fs-extra/issues/58 "Stack trace not included in fs.copy error" +[#57]: https://github.com/jprichardson/node-fs-extra/issues/57 "Possible to include wildcards in delete?" +[#56]: https://github.com/jprichardson/node-fs-extra/issues/56 "Crash when have no access to write to destination file in copy " +[#55]: https://github.com/jprichardson/node-fs-extra/issues/55 "Is it possible to have any console output similar to Grunt copy module?" +[#54]: https://github.com/jprichardson/node-fs-extra/issues/54 "`copy` does not preserve file ownership and permissons" +[#53]: https://github.com/jprichardson/node-fs-extra/issues/53 "outputFile() - ability to write data in appending mode" +[#52]: https://github.com/jprichardson/node-fs-extra/pull/52 "This fixes (what I think) is a bug in copySync" +[#51]: https://github.com/jprichardson/node-fs-extra/pull/51 "Add a Bitdeli Badge to README" +[#50]: https://github.com/jprichardson/node-fs-extra/issues/50 "Replace mechanism in createFile" +[#49]: https://github.com/jprichardson/node-fs-extra/pull/49 "update rimraf to v2.2.6" +[#48]: https://github.com/jprichardson/node-fs-extra/issues/48 "fs.copy issue [bug]" +[#47]: https://github.com/jprichardson/node-fs-extra/issues/47 "Bug in copy - callback called on readStream 'close' - Fixed in ncp 0.5.0" +[#46]: https://github.com/jprichardson/node-fs-extra/pull/46 "update copyright year" +[#45]: https://github.com/jprichardson/node-fs-extra/pull/45 "Added note about fse.outputFile() being the one that overwrites" +[#44]: https://github.com/jprichardson/node-fs-extra/pull/44 "Proposal: Stream support" +[#43]: https://github.com/jprichardson/node-fs-extra/issues/43 "Better error reporting " +[#42]: https://github.com/jprichardson/node-fs-extra/issues/42 "Performance issue?" +[#41]: https://github.com/jprichardson/node-fs-extra/pull/41 "There does seem to be a synchronous version now" +[#40]: https://github.com/jprichardson/node-fs-extra/issues/40 "fs.copy throw unexplained error ENOENT, utime " +[#39]: https://github.com/jprichardson/node-fs-extra/pull/39 "Added regression test for copy() return callback on error" +[#38]: https://github.com/jprichardson/node-fs-extra/pull/38 "Return err in copy() fstat cb, because stat could be undefined or null" +[#37]: https://github.com/jprichardson/node-fs-extra/issues/37 "Maybe include a line reader? [enhancement, question]" +[#36]: https://github.com/jprichardson/node-fs-extra/pull/36 "`filter` parameter `fs.copy` and `fs.copySync`" +[#35]: https://github.com/jprichardson/node-fs-extra/pull/35 "`filter` parameter `fs.copy` and `fs.copySync` " +[#34]: https://github.com/jprichardson/node-fs-extra/issues/34 "update docs to include options for JSON methods [enhancement]" +[#33]: https://github.com/jprichardson/node-fs-extra/pull/33 "fs_extra.copySync" +[#32]: https://github.com/jprichardson/node-fs-extra/issues/32 "update to latest jsonfile [enhancement]" +[#31]: https://github.com/jprichardson/node-fs-extra/issues/31 "Add ensure methods [enhancement]" +[#30]: https://github.com/jprichardson/node-fs-extra/issues/30 "update package.json optional dep `graceful-fs`" +[#29]: https://github.com/jprichardson/node-fs-extra/issues/29 "Copy failing if dest directory doesn't exist. Is this intended?" +[#28]: https://github.com/jprichardson/node-fs-extra/issues/28 "homepage field must be a string url. Deleted." +[#27]: https://github.com/jprichardson/node-fs-extra/issues/27 "Update Readme" +[#26]: https://github.com/jprichardson/node-fs-extra/issues/26 "Add readdir recursive method. [enhancement]" +[#25]: https://github.com/jprichardson/node-fs-extra/pull/25 "adding an `.npmignore` file" +[#24]: https://github.com/jprichardson/node-fs-extra/issues/24 "[bug] cannot run in strict mode [bug]" +[#23]: https://github.com/jprichardson/node-fs-extra/issues/23 "`writeJSON()` should create parent directories" +[#22]: https://github.com/jprichardson/node-fs-extra/pull/22 "Add a limit option to mkdirs()" +[#21]: https://github.com/jprichardson/node-fs-extra/issues/21 "touch() in 0.10.0" +[#20]: https://github.com/jprichardson/node-fs-extra/issues/20 "fs.remove yields callback before directory is really deleted" +[#19]: https://github.com/jprichardson/node-fs-extra/issues/19 "fs.copy err is empty array" +[#18]: https://github.com/jprichardson/node-fs-extra/pull/18 "Exposed copyFile Function" +[#17]: https://github.com/jprichardson/node-fs-extra/issues/17 "Use `require('graceful-fs')` if found instead of `require('fs')`" +[#16]: https://github.com/jprichardson/node-fs-extra/pull/16 "Update README.md" +[#15]: https://github.com/jprichardson/node-fs-extra/issues/15 "Implement cp -r but sync aka copySync. [enhancement]" +[#14]: https://github.com/jprichardson/node-fs-extra/issues/14 "fs.mkdirSync is broken in 0.3.1" +[#13]: https://github.com/jprichardson/node-fs-extra/issues/13 "Thoughts on including a directory tree / file watcher? [enhancement, question]" +[#12]: https://github.com/jprichardson/node-fs-extra/issues/12 "copyFile & copyFileSync are global" +[#11]: https://github.com/jprichardson/node-fs-extra/issues/11 "Thoughts on including a file walker? [enhancement, question]" +[#10]: https://github.com/jprichardson/node-fs-extra/issues/10 "move / moveFile API [enhancement]" +[#9]: https://github.com/jprichardson/node-fs-extra/issues/9 "don't import normal fs stuff into fs-extra" +[#8]: https://github.com/jprichardson/node-fs-extra/pull/8 "Update rimraf to latest version" +[#6]: https://github.com/jprichardson/node-fs-extra/issues/6 "Remove CoffeeScript development dependency" +[#5]: https://github.com/jprichardson/node-fs-extra/issues/5 "comments on naming" +[#4]: https://github.com/jprichardson/node-fs-extra/issues/4 "version bump to 0.2" +[#3]: https://github.com/jprichardson/node-fs-extra/pull/3 "Hi! I fixed some code for you!" +[#2]: https://github.com/jprichardson/node-fs-extra/issues/2 "Merge with fs.extra and mkdirp" +[#1]: https://github.com/jprichardson/node-fs-extra/issues/1 "file-extra npm !exist" diff --git a/node_modules/fs-extra/LICENSE b/node_modules/fs-extra/LICENSE new file mode 100644 index 0000000..93546df --- /dev/null +++ b/node_modules/fs-extra/LICENSE @@ -0,0 +1,15 @@ +(The MIT License) + +Copyright (c) 2011-2017 JP Richardson + +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/fs-extra/README.md b/node_modules/fs-extra/README.md new file mode 100644 index 0000000..070a5e7 --- /dev/null +++ b/node_modules/fs-extra/README.md @@ -0,0 +1,261 @@ +Node.js: fs-extra +================= + +`fs-extra` adds file system methods that aren't included in the native `fs` module and adds promise support to the `fs` methods. It also uses [`graceful-fs`](https://github.com/isaacs/node-graceful-fs) to prevent `EMFILE` errors. It should be a drop in replacement for `fs`. + +[![npm Package](https://img.shields.io/npm/v/fs-extra.svg)](https://www.npmjs.org/package/fs-extra) +[![License](https://img.shields.io/npm/l/express.svg)](https://github.com/jprichardson/node-fs-extra/blob/master/LICENSE) +[![build status](https://img.shields.io/travis/jprichardson/node-fs-extra/master.svg)](http://travis-ci.org/jprichardson/node-fs-extra) +[![windows Build status](https://img.shields.io/appveyor/ci/jprichardson/node-fs-extra/master.svg?label=windows%20build)](https://ci.appveyor.com/project/jprichardson/node-fs-extra/branch/master) +[![downloads per month](http://img.shields.io/npm/dm/fs-extra.svg)](https://www.npmjs.org/package/fs-extra) +[![Coverage Status](https://img.shields.io/coveralls/github/jprichardson/node-fs-extra/master.svg)](https://coveralls.io/github/jprichardson/node-fs-extra) +[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com) + +Why? +---- + +I got tired of including `mkdirp`, `rimraf`, and `ncp` in most of my projects. + + + + +Installation +------------ + + npm install fs-extra + + + +Usage +----- + +`fs-extra` is a drop in replacement for native `fs`. All methods in `fs` are attached to `fs-extra`. All `fs` methods return promises if the callback isn't passed. + +You don't ever need to include the original `fs` module again: + +```js +const fs = require('fs') // this is no longer necessary +``` + +you can now do this: + +```js +const fs = require('fs-extra') +``` + +or if you prefer to make it clear that you're using `fs-extra` and not `fs`, you may want +to name your `fs` variable `fse` like so: + +```js +const fse = require('fs-extra') +``` + +you can also keep both, but it's redundant: + +```js +const fs = require('fs') +const fse = require('fs-extra') +``` + +Sync vs Async vs Async/Await +------------- +Most methods are async by default. All async methods will return a promise if the callback isn't passed. + +Sync methods on the other hand will throw if an error occurs. + +Also Async/Await will throw an error if one occurs. + +Example: + +```js +const fs = require('fs-extra') + +// Async with promises: +fs.copy('/tmp/myfile', '/tmp/mynewfile') + .then(() => console.log('success!')) + .catch(err => console.error(err)) + +// Async with callbacks: +fs.copy('/tmp/myfile', '/tmp/mynewfile', err => { + if (err) return console.error(err) + console.log('success!') +}) + +// Sync: +try { + fs.copySync('/tmp/myfile', '/tmp/mynewfile') + console.log('success!') +} catch (err) { + console.error(err) +} + +// Async/Await: +async function copyFiles () { + try { + await fs.copy('/tmp/myfile', '/tmp/mynewfile') + console.log('success!') + } catch (err) { + console.error(err) + } +} + +copyFiles() +``` + + +Methods +------- + +### Async + +- [copy](docs/copy.md) +- [emptyDir](docs/emptyDir.md) +- [ensureFile](docs/ensureFile.md) +- [ensureDir](docs/ensureDir.md) +- [ensureLink](docs/ensureLink.md) +- [ensureSymlink](docs/ensureSymlink.md) +- [mkdirp](docs/ensureDir.md) +- [mkdirs](docs/ensureDir.md) +- [move](docs/move.md) +- [outputFile](docs/outputFile.md) +- [outputJson](docs/outputJson.md) +- [pathExists](docs/pathExists.md) +- [readJson](docs/readJson.md) +- [remove](docs/remove.md) +- [writeJson](docs/writeJson.md) + +### Sync + +- [copySync](docs/copy-sync.md) +- [emptyDirSync](docs/emptyDir-sync.md) +- [ensureFileSync](docs/ensureFile-sync.md) +- [ensureDirSync](docs/ensureDir-sync.md) +- [ensureLinkSync](docs/ensureLink-sync.md) +- [ensureSymlinkSync](docs/ensureSymlink-sync.md) +- [mkdirpSync](docs/ensureDir-sync.md) +- [mkdirsSync](docs/ensureDir-sync.md) +- [moveSync](docs/move-sync.md) +- [outputFileSync](docs/outputFile-sync.md) +- [outputJsonSync](docs/outputJson-sync.md) +- [pathExistsSync](docs/pathExists-sync.md) +- [readJsonSync](docs/readJson-sync.md) +- [removeSync](docs/remove-sync.md) +- [writeJsonSync](docs/writeJson-sync.md) + + +**NOTE:** You can still use the native Node.js methods. They are promisified and copied over to `fs-extra`. See [notes on `fs.read()` & `fs.write()`](docs/fs-read-write.md) + +### What happened to `walk()` and `walkSync()`? + +They were removed from `fs-extra` in v2.0.0. If you need the functionality, `walk` and `walkSync` are available as separate packages, [`klaw`](https://github.com/jprichardson/node-klaw) and [`klaw-sync`](https://github.com/manidlou/node-klaw-sync). + + +Third Party +----------- + + +### TypeScript + +If you like TypeScript, you can use `fs-extra` with it: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/fs-extra + + +### File / Directory Watching + +If you want to watch for changes to files or directories, then you should use [chokidar](https://github.com/paulmillr/chokidar). + +### Obtain Filesystem (Devices, Partitions) Information + +[fs-filesystem](https://github.com/arthurintelligence/node-fs-filesystem) allows you to read the state of the filesystem of the host on which it is run. It returns information about both the devices and the partitions (volumes) of the system. + +### Misc. + +- [fs-extra-debug](https://github.com/jdxcode/fs-extra-debug) - Send your fs-extra calls to [debug](https://npmjs.org/package/debug). +- [mfs](https://github.com/cadorn/mfs) - Monitor your fs-extra calls. + + + +Hacking on fs-extra +------------------- + +Wanna hack on `fs-extra`? Great! Your help is needed! [fs-extra is one of the most depended upon Node.js packages](http://nodei.co/npm/fs-extra.png?downloads=true&downloadRank=true&stars=true). This project +uses [JavaScript Standard Style](https://github.com/feross/standard) - if the name or style choices bother you, +you're gonna have to get over it :) If `standard` is good enough for `npm`, it's good enough for `fs-extra`. + +[![js-standard-style](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard) + +What's needed? +- First, take a look at existing issues. Those are probably going to be where the priority lies. +- More tests for edge cases. Specifically on different platforms. There can never be enough tests. +- Improve test coverage. See coveralls output for more info. + +Note: If you make any big changes, **you should definitely file an issue for discussion first.** + +### Running the Test Suite + +fs-extra contains hundreds of tests. + +- `npm run lint`: runs the linter ([standard](http://standardjs.com/)) +- `npm run unit`: runs the unit tests +- `npm test`: runs both the linter and the tests + + +### Windows + +If you run the tests on the Windows and receive a lot of symbolic link `EPERM` permission errors, it's +because on Windows you need elevated privilege to create symbolic links. You can add this to your Windows's +account by following the instructions here: http://superuser.com/questions/104845/permission-to-make-symbolic-links-in-windows-7 +However, I didn't have much luck doing this. + +Since I develop on Mac OS X, I use VMWare Fusion for Windows testing. I create a shared folder that I map to a drive on Windows. +I open the `Node.js command prompt` and run as `Administrator`. I then map the network drive running the following command: + + net use z: "\\vmware-host\Shared Folders" + +I can then navigate to my `fs-extra` directory and run the tests. + + +Naming +------ + +I put a lot of thought into the naming of these functions. Inspired by @coolaj86's request. So he deserves much of the credit for raising the issue. See discussion(s) here: + +* https://github.com/jprichardson/node-fs-extra/issues/2 +* https://github.com/flatiron/utile/issues/11 +* https://github.com/ryanmcgrath/wrench-js/issues/29 +* https://github.com/substack/node-mkdirp/issues/17 + +First, I believe that in as many cases as possible, the [Node.js naming schemes](http://nodejs.org/api/fs.html) should be chosen. However, there are problems with the Node.js own naming schemes. + +For example, `fs.readFile()` and `fs.readdir()`: the **F** is capitalized in *File* and the **d** is not capitalized in *dir*. Perhaps a bit pedantic, but they should still be consistent. Also, Node.js has chosen a lot of POSIX naming schemes, which I believe is great. See: `fs.mkdir()`, `fs.rmdir()`, `fs.chown()`, etc. + +We have a dilemma though. How do you consistently name methods that perform the following POSIX commands: `cp`, `cp -r`, `mkdir -p`, and `rm -rf`? + +My perspective: when in doubt, err on the side of simplicity. A directory is just a hierarchical grouping of directories and files. Consider that for a moment. So when you want to copy it or remove it, in most cases you'll want to copy or remove all of its contents. When you want to create a directory, if the directory that it's suppose to be contained in does not exist, then in most cases you'll want to create that too. + +So, if you want to remove a file or a directory regardless of whether it has contents, just call `fs.remove(path)`. If you want to copy a file or a directory whether it has contents, just call `fs.copy(source, destination)`. If you want to create a directory regardless of whether its parent directories exist, just call `fs.mkdirs(path)` or `fs.mkdirp(path)`. + + +Credit +------ + +`fs-extra` wouldn't be possible without using the modules from the following authors: + +- [Isaac Shlueter](https://github.com/isaacs) +- [Charlie McConnel](https://github.com/avianflu) +- [James Halliday](https://github.com/substack) +- [Andrew Kelley](https://github.com/andrewrk) + + + + +License +------- + +Licensed under MIT + +Copyright (c) 2011-2017 [JP Richardson](https://github.com/jprichardson) + +[1]: http://nodejs.org/docs/latest/api/fs.html + + +[jsonfile]: https://github.com/jprichardson/node-jsonfile diff --git a/node_modules/fs-extra/lib/copy-sync/copy-sync.js b/node_modules/fs-extra/lib/copy-sync/copy-sync.js new file mode 100644 index 0000000..f2831b3 --- /dev/null +++ b/node_modules/fs-extra/lib/copy-sync/copy-sync.js @@ -0,0 +1,164 @@ +'use strict' + +const fs = require('graceful-fs') +const path = require('path') +const mkdirpSync = require('../mkdirs').mkdirsSync +const utimesSync = require('../util/utimes.js').utimesMillisSync +const stat = require('../util/stat') + +function copySync (src, dest, opts) { + if (typeof opts === 'function') { + opts = { filter: opts } + } + + opts = opts || {} + opts.clobber = 'clobber' in opts ? !!opts.clobber : true // default to true for now + opts.overwrite = 'overwrite' in opts ? !!opts.overwrite : opts.clobber // overwrite falls back to clobber + + // Warn about using preserveTimestamps on 32-bit node + if (opts.preserveTimestamps && process.arch === 'ia32') { + console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\n + see https://github.com/jprichardson/node-fs-extra/issues/269`) + } + + const { srcStat, destStat } = stat.checkPathsSync(src, dest, 'copy') + stat.checkParentPathsSync(src, srcStat, dest, 'copy') + return handleFilterAndCopy(destStat, src, dest, opts) +} + +function handleFilterAndCopy (destStat, src, dest, opts) { + if (opts.filter && !opts.filter(src, dest)) return + const destParent = path.dirname(dest) + if (!fs.existsSync(destParent)) mkdirpSync(destParent) + return startCopy(destStat, src, dest, opts) +} + +function startCopy (destStat, src, dest, opts) { + if (opts.filter && !opts.filter(src, dest)) return + return getStats(destStat, src, dest, opts) +} + +function getStats (destStat, src, dest, opts) { + const statSync = opts.dereference ? fs.statSync : fs.lstatSync + const srcStat = statSync(src) + + if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts) + else if (srcStat.isFile() || + srcStat.isCharacterDevice() || + srcStat.isBlockDevice()) return onFile(srcStat, destStat, src, dest, opts) + else if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts) +} + +function onFile (srcStat, destStat, src, dest, opts) { + if (!destStat) return copyFile(srcStat, src, dest, opts) + return mayCopyFile(srcStat, src, dest, opts) +} + +function mayCopyFile (srcStat, src, dest, opts) { + if (opts.overwrite) { + fs.unlinkSync(dest) + return copyFile(srcStat, src, dest, opts) + } else if (opts.errorOnExist) { + throw new Error(`'${dest}' already exists`) + } +} + +function copyFile (srcStat, src, dest, opts) { + if (typeof fs.copyFileSync === 'function') { + fs.copyFileSync(src, dest) + fs.chmodSync(dest, srcStat.mode) + if (opts.preserveTimestamps) { + return utimesSync(dest, srcStat.atime, srcStat.mtime) + } + return + } + return copyFileFallback(srcStat, src, dest, opts) +} + +function copyFileFallback (srcStat, src, dest, opts) { + const BUF_LENGTH = 64 * 1024 + const _buff = require('../util/buffer')(BUF_LENGTH) + + const fdr = fs.openSync(src, 'r') + const fdw = fs.openSync(dest, 'w', srcStat.mode) + let pos = 0 + + while (pos < srcStat.size) { + const bytesRead = fs.readSync(fdr, _buff, 0, BUF_LENGTH, pos) + fs.writeSync(fdw, _buff, 0, bytesRead) + pos += bytesRead + } + + if (opts.preserveTimestamps) fs.futimesSync(fdw, srcStat.atime, srcStat.mtime) + + fs.closeSync(fdr) + fs.closeSync(fdw) +} + +function onDir (srcStat, destStat, src, dest, opts) { + if (!destStat) return mkDirAndCopy(srcStat, src, dest, opts) + if (destStat && !destStat.isDirectory()) { + throw new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`) + } + return copyDir(src, dest, opts) +} + +function mkDirAndCopy (srcStat, src, dest, opts) { + fs.mkdirSync(dest) + copyDir(src, dest, opts) + return fs.chmodSync(dest, srcStat.mode) +} + +function copyDir (src, dest, opts) { + fs.readdirSync(src).forEach(item => copyDirItem(item, src, dest, opts)) +} + +function copyDirItem (item, src, dest, opts) { + const srcItem = path.join(src, item) + const destItem = path.join(dest, item) + const { destStat } = stat.checkPathsSync(srcItem, destItem, 'copy') + return startCopy(destStat, srcItem, destItem, opts) +} + +function onLink (destStat, src, dest, opts) { + let resolvedSrc = fs.readlinkSync(src) + if (opts.dereference) { + resolvedSrc = path.resolve(process.cwd(), resolvedSrc) + } + + if (!destStat) { + return fs.symlinkSync(resolvedSrc, dest) + } else { + let resolvedDest + try { + resolvedDest = fs.readlinkSync(dest) + } catch (err) { + // dest exists and is a regular file or directory, + // Windows may throw UNKNOWN error. If dest already exists, + // fs throws error anyway, so no need to guard against it here. + if (err.code === 'EINVAL' || err.code === 'UNKNOWN') return fs.symlinkSync(resolvedSrc, dest) + throw err + } + if (opts.dereference) { + resolvedDest = path.resolve(process.cwd(), resolvedDest) + } + if (stat.isSrcSubdir(resolvedSrc, resolvedDest)) { + throw new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`) + } + + // prevent copy if src is a subdir of dest since unlinking + // dest in this case would result in removing src contents + // and therefore a broken symlink would be created. + if (fs.statSync(dest).isDirectory() && stat.isSrcSubdir(resolvedDest, resolvedSrc)) { + throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`) + } + return copyLink(resolvedSrc, dest) + } +} + +function copyLink (resolvedSrc, dest) { + fs.unlinkSync(dest) + return fs.symlinkSync(resolvedSrc, dest) +} + +module.exports = copySync diff --git a/node_modules/fs-extra/lib/copy-sync/index.js b/node_modules/fs-extra/lib/copy-sync/index.js new file mode 100644 index 0000000..65945ae --- /dev/null +++ b/node_modules/fs-extra/lib/copy-sync/index.js @@ -0,0 +1,5 @@ +'use strict' + +module.exports = { + copySync: require('./copy-sync') +} diff --git a/node_modules/fs-extra/lib/copy/copy.js b/node_modules/fs-extra/lib/copy/copy.js new file mode 100644 index 0000000..411fc64 --- /dev/null +++ b/node_modules/fs-extra/lib/copy/copy.js @@ -0,0 +1,212 @@ +'use strict' + +const fs = require('graceful-fs') +const path = require('path') +const mkdirp = require('../mkdirs').mkdirs +const pathExists = require('../path-exists').pathExists +const utimes = require('../util/utimes').utimesMillis +const stat = require('../util/stat') + +function copy (src, dest, opts, cb) { + if (typeof opts === 'function' && !cb) { + cb = opts + opts = {} + } else if (typeof opts === 'function') { + opts = { filter: opts } + } + + cb = cb || function () {} + opts = opts || {} + + opts.clobber = 'clobber' in opts ? !!opts.clobber : true // default to true for now + opts.overwrite = 'overwrite' in opts ? !!opts.overwrite : opts.clobber // overwrite falls back to clobber + + // Warn about using preserveTimestamps on 32-bit node + if (opts.preserveTimestamps && process.arch === 'ia32') { + console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\n + see https://github.com/jprichardson/node-fs-extra/issues/269`) + } + + stat.checkPaths(src, dest, 'copy', (err, stats) => { + if (err) return cb(err) + const { srcStat, destStat } = stats + stat.checkParentPaths(src, srcStat, dest, 'copy', err => { + if (err) return cb(err) + if (opts.filter) return handleFilter(checkParentDir, destStat, src, dest, opts, cb) + return checkParentDir(destStat, src, dest, opts, cb) + }) + }) +} + +function checkParentDir (destStat, src, dest, opts, cb) { + const destParent = path.dirname(dest) + pathExists(destParent, (err, dirExists) => { + if (err) return cb(err) + if (dirExists) return startCopy(destStat, src, dest, opts, cb) + mkdirp(destParent, err => { + if (err) return cb(err) + return startCopy(destStat, src, dest, opts, cb) + }) + }) +} + +function handleFilter (onInclude, destStat, src, dest, opts, cb) { + Promise.resolve(opts.filter(src, dest)).then(include => { + if (include) return onInclude(destStat, src, dest, opts, cb) + return cb() + }, error => cb(error)) +} + +function startCopy (destStat, src, dest, opts, cb) { + if (opts.filter) return handleFilter(getStats, destStat, src, dest, opts, cb) + return getStats(destStat, src, dest, opts, cb) +} + +function getStats (destStat, src, dest, opts, cb) { + const stat = opts.dereference ? fs.stat : fs.lstat + stat(src, (err, srcStat) => { + if (err) return cb(err) + + if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts, cb) + else if (srcStat.isFile() || + srcStat.isCharacterDevice() || + srcStat.isBlockDevice()) return onFile(srcStat, destStat, src, dest, opts, cb) + else if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts, cb) + }) +} + +function onFile (srcStat, destStat, src, dest, opts, cb) { + if (!destStat) return copyFile(srcStat, src, dest, opts, cb) + return mayCopyFile(srcStat, src, dest, opts, cb) +} + +function mayCopyFile (srcStat, src, dest, opts, cb) { + if (opts.overwrite) { + fs.unlink(dest, err => { + if (err) return cb(err) + return copyFile(srcStat, src, dest, opts, cb) + }) + } else if (opts.errorOnExist) { + return cb(new Error(`'${dest}' already exists`)) + } else return cb() +} + +function copyFile (srcStat, src, dest, opts, cb) { + if (typeof fs.copyFile === 'function') { + return fs.copyFile(src, dest, err => { + if (err) return cb(err) + return setDestModeAndTimestamps(srcStat, dest, opts, cb) + }) + } + return copyFileFallback(srcStat, src, dest, opts, cb) +} + +function copyFileFallback (srcStat, src, dest, opts, cb) { + const rs = fs.createReadStream(src) + rs.on('error', err => cb(err)).once('open', () => { + const ws = fs.createWriteStream(dest, { mode: srcStat.mode }) + ws.on('error', err => cb(err)) + .on('open', () => rs.pipe(ws)) + .once('close', () => setDestModeAndTimestamps(srcStat, dest, opts, cb)) + }) +} + +function setDestModeAndTimestamps (srcStat, dest, opts, cb) { + fs.chmod(dest, srcStat.mode, err => { + if (err) return cb(err) + if (opts.preserveTimestamps) { + return utimes(dest, srcStat.atime, srcStat.mtime, cb) + } + return cb() + }) +} + +function onDir (srcStat, destStat, src, dest, opts, cb) { + if (!destStat) return mkDirAndCopy(srcStat, src, dest, opts, cb) + if (destStat && !destStat.isDirectory()) { + return cb(new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`)) + } + return copyDir(src, dest, opts, cb) +} + +function mkDirAndCopy (srcStat, src, dest, opts, cb) { + fs.mkdir(dest, err => { + if (err) return cb(err) + copyDir(src, dest, opts, err => { + if (err) return cb(err) + return fs.chmod(dest, srcStat.mode, cb) + }) + }) +} + +function copyDir (src, dest, opts, cb) { + fs.readdir(src, (err, items) => { + if (err) return cb(err) + return copyDirItems(items, src, dest, opts, cb) + }) +} + +function copyDirItems (items, src, dest, opts, cb) { + const item = items.pop() + if (!item) return cb() + return copyDirItem(items, item, src, dest, opts, cb) +} + +function copyDirItem (items, item, src, dest, opts, cb) { + const srcItem = path.join(src, item) + const destItem = path.join(dest, item) + stat.checkPaths(srcItem, destItem, 'copy', (err, stats) => { + if (err) return cb(err) + const { destStat } = stats + startCopy(destStat, srcItem, destItem, opts, err => { + if (err) return cb(err) + return copyDirItems(items, src, dest, opts, cb) + }) + }) +} + +function onLink (destStat, src, dest, opts, cb) { + fs.readlink(src, (err, resolvedSrc) => { + if (err) return cb(err) + if (opts.dereference) { + resolvedSrc = path.resolve(process.cwd(), resolvedSrc) + } + + if (!destStat) { + return fs.symlink(resolvedSrc, dest, cb) + } else { + fs.readlink(dest, (err, resolvedDest) => { + if (err) { + // dest exists and is a regular file or directory, + // Windows may throw UNKNOWN error. If dest already exists, + // fs throws error anyway, so no need to guard against it here. + if (err.code === 'EINVAL' || err.code === 'UNKNOWN') return fs.symlink(resolvedSrc, dest, cb) + return cb(err) + } + if (opts.dereference) { + resolvedDest = path.resolve(process.cwd(), resolvedDest) + } + if (stat.isSrcSubdir(resolvedSrc, resolvedDest)) { + return cb(new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`)) + } + + // do not copy if src is a subdir of dest since unlinking + // dest in this case would result in removing src contents + // and therefore a broken symlink would be created. + if (destStat.isDirectory() && stat.isSrcSubdir(resolvedDest, resolvedSrc)) { + return cb(new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`)) + } + return copyLink(resolvedSrc, dest, cb) + }) + } + }) +} + +function copyLink (resolvedSrc, dest, cb) { + fs.unlink(dest, err => { + if (err) return cb(err) + return fs.symlink(resolvedSrc, dest, cb) + }) +} + +module.exports = copy diff --git a/node_modules/fs-extra/lib/copy/index.js b/node_modules/fs-extra/lib/copy/index.js new file mode 100644 index 0000000..b7e4f7f --- /dev/null +++ b/node_modules/fs-extra/lib/copy/index.js @@ -0,0 +1,6 @@ +'use strict' + +const u = require('universalify').fromCallback +module.exports = { + copy: u(require('./copy')) +} diff --git a/node_modules/fs-extra/lib/empty/index.js b/node_modules/fs-extra/lib/empty/index.js new file mode 100644 index 0000000..204d53b --- /dev/null +++ b/node_modules/fs-extra/lib/empty/index.js @@ -0,0 +1,48 @@ +'use strict' + +const u = require('universalify').fromCallback +const fs = require('graceful-fs') +const path = require('path') +const mkdir = require('../mkdirs') +const remove = require('../remove') + +const emptyDir = u(function emptyDir (dir, callback) { + callback = callback || function () {} + fs.readdir(dir, (err, items) => { + if (err) return mkdir.mkdirs(dir, callback) + + items = items.map(item => path.join(dir, item)) + + deleteItem() + + function deleteItem () { + const item = items.pop() + if (!item) return callback() + remove.remove(item, err => { + if (err) return callback(err) + deleteItem() + }) + } + }) +}) + +function emptyDirSync (dir) { + let items + try { + items = fs.readdirSync(dir) + } catch (err) { + return mkdir.mkdirsSync(dir) + } + + items.forEach(item => { + item = path.join(dir, item) + remove.removeSync(item) + }) +} + +module.exports = { + emptyDirSync, + emptydirSync: emptyDirSync, + emptyDir, + emptydir: emptyDir +} diff --git a/node_modules/fs-extra/lib/ensure/file.js b/node_modules/fs-extra/lib/ensure/file.js new file mode 100644 index 0000000..67eed30 --- /dev/null +++ b/node_modules/fs-extra/lib/ensure/file.js @@ -0,0 +1,49 @@ +'use strict' + +const u = require('universalify').fromCallback +const path = require('path') +const fs = require('graceful-fs') +const mkdir = require('../mkdirs') +const pathExists = require('../path-exists').pathExists + +function createFile (file, callback) { + function makeFile () { + fs.writeFile(file, '', err => { + if (err) return callback(err) + callback() + }) + } + + fs.stat(file, (err, stats) => { // eslint-disable-line handle-callback-err + if (!err && stats.isFile()) return callback() + const dir = path.dirname(file) + pathExists(dir, (err, dirExists) => { + if (err) return callback(err) + if (dirExists) return makeFile() + mkdir.mkdirs(dir, err => { + if (err) return callback(err) + makeFile() + }) + }) + }) +} + +function createFileSync (file) { + let stats + try { + stats = fs.statSync(file) + } catch (e) {} + if (stats && stats.isFile()) return + + const dir = path.dirname(file) + if (!fs.existsSync(dir)) { + mkdir.mkdirsSync(dir) + } + + fs.writeFileSync(file, '') +} + +module.exports = { + createFile: u(createFile), + createFileSync +} diff --git a/node_modules/fs-extra/lib/ensure/index.js b/node_modules/fs-extra/lib/ensure/index.js new file mode 100644 index 0000000..c1f67b7 --- /dev/null +++ b/node_modules/fs-extra/lib/ensure/index.js @@ -0,0 +1,23 @@ +'use strict' + +const file = require('./file') +const link = require('./link') +const symlink = require('./symlink') + +module.exports = { + // file + createFile: file.createFile, + createFileSync: file.createFileSync, + ensureFile: file.createFile, + ensureFileSync: file.createFileSync, + // link + createLink: link.createLink, + createLinkSync: link.createLinkSync, + ensureLink: link.createLink, + ensureLinkSync: link.createLinkSync, + // symlink + createSymlink: symlink.createSymlink, + createSymlinkSync: symlink.createSymlinkSync, + ensureSymlink: symlink.createSymlink, + ensureSymlinkSync: symlink.createSymlinkSync +} diff --git a/node_modules/fs-extra/lib/ensure/link.js b/node_modules/fs-extra/lib/ensure/link.js new file mode 100644 index 0000000..2cd4196 --- /dev/null +++ b/node_modules/fs-extra/lib/ensure/link.js @@ -0,0 +1,61 @@ +'use strict' + +const u = require('universalify').fromCallback +const path = require('path') +const fs = require('graceful-fs') +const mkdir = require('../mkdirs') +const pathExists = require('../path-exists').pathExists + +function createLink (srcpath, dstpath, callback) { + function makeLink (srcpath, dstpath) { + fs.link(srcpath, dstpath, err => { + if (err) return callback(err) + callback(null) + }) + } + + pathExists(dstpath, (err, destinationExists) => { + if (err) return callback(err) + if (destinationExists) return callback(null) + fs.lstat(srcpath, (err) => { + if (err) { + err.message = err.message.replace('lstat', 'ensureLink') + return callback(err) + } + + const dir = path.dirname(dstpath) + pathExists(dir, (err, dirExists) => { + if (err) return callback(err) + if (dirExists) return makeLink(srcpath, dstpath) + mkdir.mkdirs(dir, err => { + if (err) return callback(err) + makeLink(srcpath, dstpath) + }) + }) + }) + }) +} + +function createLinkSync (srcpath, dstpath) { + const destinationExists = fs.existsSync(dstpath) + if (destinationExists) return undefined + + try { + fs.lstatSync(srcpath) + } catch (err) { + err.message = err.message.replace('lstat', 'ensureLink') + throw err + } + + const dir = path.dirname(dstpath) + const dirExists = fs.existsSync(dir) + if (dirExists) return fs.linkSync(srcpath, dstpath) + mkdir.mkdirsSync(dir) + + return fs.linkSync(srcpath, dstpath) +} + +module.exports = { + createLink: u(createLink), + createLinkSync +} diff --git a/node_modules/fs-extra/lib/ensure/symlink-paths.js b/node_modules/fs-extra/lib/ensure/symlink-paths.js new file mode 100644 index 0000000..24e7e1c --- /dev/null +++ b/node_modules/fs-extra/lib/ensure/symlink-paths.js @@ -0,0 +1,99 @@ +'use strict' + +const path = require('path') +const fs = require('graceful-fs') +const pathExists = require('../path-exists').pathExists + +/** + * Function that returns two types of paths, one relative to symlink, and one + * relative to the current working directory. Checks if path is absolute or + * relative. If the path is relative, this function checks if the path is + * relative to symlink or relative to current working directory. This is an + * initiative to find a smarter `srcpath` to supply when building symlinks. + * This allows you to determine which path to use out of one of three possible + * types of source paths. The first is an absolute path. This is detected by + * `path.isAbsolute()`. When an absolute path is provided, it is checked to + * see if it exists. If it does it's used, if not an error is returned + * (callback)/ thrown (sync). The other two options for `srcpath` are a + * relative url. By default Node's `fs.symlink` works by creating a symlink + * using `dstpath` and expects the `srcpath` to be relative to the newly + * created symlink. If you provide a `srcpath` that does not exist on the file + * system it results in a broken symlink. To minimize this, the function + * checks to see if the 'relative to symlink' source file exists, and if it + * does it will use it. If it does not, it checks if there's a file that + * exists that is relative to the current working directory, if does its used. + * This preserves the expectations of the original fs.symlink spec and adds + * the ability to pass in `relative to current working direcotry` paths. + */ + +function symlinkPaths (srcpath, dstpath, callback) { + if (path.isAbsolute(srcpath)) { + return fs.lstat(srcpath, (err) => { + if (err) { + err.message = err.message.replace('lstat', 'ensureSymlink') + return callback(err) + } + return callback(null, { + 'toCwd': srcpath, + 'toDst': srcpath + }) + }) + } else { + const dstdir = path.dirname(dstpath) + const relativeToDst = path.join(dstdir, srcpath) + return pathExists(relativeToDst, (err, exists) => { + if (err) return callback(err) + if (exists) { + return callback(null, { + 'toCwd': relativeToDst, + 'toDst': srcpath + }) + } else { + return fs.lstat(srcpath, (err) => { + if (err) { + err.message = err.message.replace('lstat', 'ensureSymlink') + return callback(err) + } + return callback(null, { + 'toCwd': srcpath, + 'toDst': path.relative(dstdir, srcpath) + }) + }) + } + }) + } +} + +function symlinkPathsSync (srcpath, dstpath) { + let exists + if (path.isAbsolute(srcpath)) { + exists = fs.existsSync(srcpath) + if (!exists) throw new Error('absolute srcpath does not exist') + return { + 'toCwd': srcpath, + 'toDst': srcpath + } + } else { + const dstdir = path.dirname(dstpath) + const relativeToDst = path.join(dstdir, srcpath) + exists = fs.existsSync(relativeToDst) + if (exists) { + return { + 'toCwd': relativeToDst, + 'toDst': srcpath + } + } else { + exists = fs.existsSync(srcpath) + if (!exists) throw new Error('relative srcpath does not exist') + return { + 'toCwd': srcpath, + 'toDst': path.relative(dstdir, srcpath) + } + } + } +} + +module.exports = { + symlinkPaths, + symlinkPathsSync +} diff --git a/node_modules/fs-extra/lib/ensure/symlink-type.js b/node_modules/fs-extra/lib/ensure/symlink-type.js new file mode 100644 index 0000000..4f8787c --- /dev/null +++ b/node_modules/fs-extra/lib/ensure/symlink-type.js @@ -0,0 +1,31 @@ +'use strict' + +const fs = require('graceful-fs') + +function symlinkType (srcpath, type, callback) { + callback = (typeof type === 'function') ? type : callback + type = (typeof type === 'function') ? false : type + if (type) return callback(null, type) + fs.lstat(srcpath, (err, stats) => { + if (err) return callback(null, 'file') + type = (stats && stats.isDirectory()) ? 'dir' : 'file' + callback(null, type) + }) +} + +function symlinkTypeSync (srcpath, type) { + let stats + + if (type) return type + try { + stats = fs.lstatSync(srcpath) + } catch (e) { + return 'file' + } + return (stats && stats.isDirectory()) ? 'dir' : 'file' +} + +module.exports = { + symlinkType, + symlinkTypeSync +} diff --git a/node_modules/fs-extra/lib/ensure/symlink.js b/node_modules/fs-extra/lib/ensure/symlink.js new file mode 100644 index 0000000..fe68b79 --- /dev/null +++ b/node_modules/fs-extra/lib/ensure/symlink.js @@ -0,0 +1,63 @@ +'use strict' + +const u = require('universalify').fromCallback +const path = require('path') +const fs = require('graceful-fs') +const _mkdirs = require('../mkdirs') +const mkdirs = _mkdirs.mkdirs +const mkdirsSync = _mkdirs.mkdirsSync + +const _symlinkPaths = require('./symlink-paths') +const symlinkPaths = _symlinkPaths.symlinkPaths +const symlinkPathsSync = _symlinkPaths.symlinkPathsSync + +const _symlinkType = require('./symlink-type') +const symlinkType = _symlinkType.symlinkType +const symlinkTypeSync = _symlinkType.symlinkTypeSync + +const pathExists = require('../path-exists').pathExists + +function createSymlink (srcpath, dstpath, type, callback) { + callback = (typeof type === 'function') ? type : callback + type = (typeof type === 'function') ? false : type + + pathExists(dstpath, (err, destinationExists) => { + if (err) return callback(err) + if (destinationExists) return callback(null) + symlinkPaths(srcpath, dstpath, (err, relative) => { + if (err) return callback(err) + srcpath = relative.toDst + symlinkType(relative.toCwd, type, (err, type) => { + if (err) return callback(err) + const dir = path.dirname(dstpath) + pathExists(dir, (err, dirExists) => { + if (err) return callback(err) + if (dirExists) return fs.symlink(srcpath, dstpath, type, callback) + mkdirs(dir, err => { + if (err) return callback(err) + fs.symlink(srcpath, dstpath, type, callback) + }) + }) + }) + }) + }) +} + +function createSymlinkSync (srcpath, dstpath, type) { + const destinationExists = fs.existsSync(dstpath) + if (destinationExists) return undefined + + const relative = symlinkPathsSync(srcpath, dstpath) + srcpath = relative.toDst + type = symlinkTypeSync(relative.toCwd, type) + const dir = path.dirname(dstpath) + const exists = fs.existsSync(dir) + if (exists) return fs.symlinkSync(srcpath, dstpath, type) + mkdirsSync(dir) + return fs.symlinkSync(srcpath, dstpath, type) +} + +module.exports = { + createSymlink: u(createSymlink), + createSymlinkSync +} diff --git a/node_modules/fs-extra/lib/fs/index.js b/node_modules/fs-extra/lib/fs/index.js new file mode 100644 index 0000000..a7b2292 --- /dev/null +++ b/node_modules/fs-extra/lib/fs/index.js @@ -0,0 +1,109 @@ +'use strict' +// This is adapted from https://github.com/normalize/mz +// Copyright (c) 2014-2016 Jonathan Ong me@jongleberry.com and Contributors +const u = require('universalify').fromCallback +const fs = require('graceful-fs') + +const api = [ + 'access', + 'appendFile', + 'chmod', + 'chown', + 'close', + 'copyFile', + 'fchmod', + 'fchown', + 'fdatasync', + 'fstat', + 'fsync', + 'ftruncate', + 'futimes', + 'lchown', + 'lchmod', + 'link', + 'lstat', + 'mkdir', + 'mkdtemp', + 'open', + 'readFile', + 'readdir', + 'readlink', + 'realpath', + 'rename', + 'rmdir', + 'stat', + 'symlink', + 'truncate', + 'unlink', + 'utimes', + 'writeFile' +].filter(key => { + // Some commands are not available on some systems. Ex: + // fs.copyFile was added in Node.js v8.5.0 + // fs.mkdtemp was added in Node.js v5.10.0 + // fs.lchown is not available on at least some Linux + return typeof fs[key] === 'function' +}) + +// Export all keys: +Object.keys(fs).forEach(key => { + if (key === 'promises') { + // fs.promises is a getter property that triggers ExperimentalWarning + // Don't re-export it here, the getter is defined in "lib/index.js" + return + } + exports[key] = fs[key] +}) + +// Universalify async methods: +api.forEach(method => { + exports[method] = u(fs[method]) +}) + +// We differ from mz/fs in that we still ship the old, broken, fs.exists() +// since we are a drop-in replacement for the native module +exports.exists = function (filename, callback) { + if (typeof callback === 'function') { + return fs.exists(filename, callback) + } + return new Promise(resolve => { + return fs.exists(filename, resolve) + }) +} + +// fs.read() & fs.write need special treatment due to multiple callback args + +exports.read = function (fd, buffer, offset, length, position, callback) { + if (typeof callback === 'function') { + return fs.read(fd, buffer, offset, length, position, callback) + } + return new Promise((resolve, reject) => { + fs.read(fd, buffer, offset, length, position, (err, bytesRead, buffer) => { + if (err) return reject(err) + resolve({ bytesRead, buffer }) + }) + }) +} + +// Function signature can be +// fs.write(fd, buffer[, offset[, length[, position]]], callback) +// OR +// fs.write(fd, string[, position[, encoding]], callback) +// We need to handle both cases, so we use ...args +exports.write = function (fd, buffer, ...args) { + if (typeof args[args.length - 1] === 'function') { + return fs.write(fd, buffer, ...args) + } + + return new Promise((resolve, reject) => { + fs.write(fd, buffer, ...args, (err, bytesWritten, buffer) => { + if (err) return reject(err) + resolve({ bytesWritten, buffer }) + }) + }) +} + +// fs.realpath.native only available in Node v9.2+ +if (typeof fs.realpath.native === 'function') { + exports.realpath.native = u(fs.realpath.native) +} diff --git a/node_modules/fs-extra/lib/index.js b/node_modules/fs-extra/lib/index.js new file mode 100644 index 0000000..40e37b1 --- /dev/null +++ b/node_modules/fs-extra/lib/index.js @@ -0,0 +1,28 @@ +'use strict' + +module.exports = Object.assign( + {}, + // Export promiseified graceful-fs: + require('./fs'), + // Export extra methods: + require('./copy-sync'), + require('./copy'), + require('./empty'), + require('./ensure'), + require('./json'), + require('./mkdirs'), + require('./move-sync'), + require('./move'), + require('./output'), + require('./path-exists'), + require('./remove') +) + +// Export fs.promises as a getter property so that we don't trigger +// ExperimentalWarning before fs.promises is actually accessed. +const fs = require('fs') +if (Object.getOwnPropertyDescriptor(fs, 'promises')) { + Object.defineProperty(module.exports, 'promises', { + get () { return fs.promises } + }) +} diff --git a/node_modules/fs-extra/lib/json/index.js b/node_modules/fs-extra/lib/json/index.js new file mode 100644 index 0000000..bae68d4 --- /dev/null +++ b/node_modules/fs-extra/lib/json/index.js @@ -0,0 +1,16 @@ +'use strict' + +const u = require('universalify').fromCallback +const jsonFile = require('./jsonfile') + +jsonFile.outputJson = u(require('./output-json')) +jsonFile.outputJsonSync = require('./output-json-sync') +// aliases +jsonFile.outputJSON = jsonFile.outputJson +jsonFile.outputJSONSync = jsonFile.outputJsonSync +jsonFile.writeJSON = jsonFile.writeJson +jsonFile.writeJSONSync = jsonFile.writeJsonSync +jsonFile.readJSON = jsonFile.readJson +jsonFile.readJSONSync = jsonFile.readJsonSync + +module.exports = jsonFile diff --git a/node_modules/fs-extra/lib/json/jsonfile.js b/node_modules/fs-extra/lib/json/jsonfile.js new file mode 100644 index 0000000..59cdb3e --- /dev/null +++ b/node_modules/fs-extra/lib/json/jsonfile.js @@ -0,0 +1,12 @@ +'use strict' + +const u = require('universalify').fromCallback +const jsonFile = require('jsonfile') + +module.exports = { + // jsonfile exports + readJson: u(jsonFile.readFile), + readJsonSync: jsonFile.readFileSync, + writeJson: u(jsonFile.writeFile), + writeJsonSync: jsonFile.writeFileSync +} diff --git a/node_modules/fs-extra/lib/json/output-json-sync.js b/node_modules/fs-extra/lib/json/output-json-sync.js new file mode 100644 index 0000000..6f76710 --- /dev/null +++ b/node_modules/fs-extra/lib/json/output-json-sync.js @@ -0,0 +1,18 @@ +'use strict' + +const fs = require('graceful-fs') +const path = require('path') +const mkdir = require('../mkdirs') +const jsonFile = require('./jsonfile') + +function outputJsonSync (file, data, options) { + const dir = path.dirname(file) + + if (!fs.existsSync(dir)) { + mkdir.mkdirsSync(dir) + } + + jsonFile.writeJsonSync(file, data, options) +} + +module.exports = outputJsonSync diff --git a/node_modules/fs-extra/lib/json/output-json.js b/node_modules/fs-extra/lib/json/output-json.js new file mode 100644 index 0000000..d45edb8 --- /dev/null +++ b/node_modules/fs-extra/lib/json/output-json.js @@ -0,0 +1,27 @@ +'use strict' + +const path = require('path') +const mkdir = require('../mkdirs') +const pathExists = require('../path-exists').pathExists +const jsonFile = require('./jsonfile') + +function outputJson (file, data, options, callback) { + if (typeof options === 'function') { + callback = options + options = {} + } + + const dir = path.dirname(file) + + pathExists(dir, (err, itDoes) => { + if (err) return callback(err) + if (itDoes) return jsonFile.writeJson(file, data, options, callback) + + mkdir.mkdirs(dir, err => { + if (err) return callback(err) + jsonFile.writeJson(file, data, options, callback) + }) + }) +} + +module.exports = outputJson diff --git a/node_modules/fs-extra/lib/mkdirs/index.js b/node_modules/fs-extra/lib/mkdirs/index.js new file mode 100644 index 0000000..d6e7e5b --- /dev/null +++ b/node_modules/fs-extra/lib/mkdirs/index.js @@ -0,0 +1,14 @@ +'use strict' +const u = require('universalify').fromCallback +const mkdirs = u(require('./mkdirs')) +const mkdirsSync = require('./mkdirs-sync') + +module.exports = { + mkdirs, + mkdirsSync, + // alias + mkdirp: mkdirs, + mkdirpSync: mkdirsSync, + ensureDir: mkdirs, + ensureDirSync: mkdirsSync +} diff --git a/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js b/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js new file mode 100644 index 0000000..a34acb9 --- /dev/null +++ b/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js @@ -0,0 +1,54 @@ +'use strict' + +const fs = require('graceful-fs') +const path = require('path') +const invalidWin32Path = require('./win32').invalidWin32Path + +const o777 = parseInt('0777', 8) + +function mkdirsSync (p, opts, made) { + if (!opts || typeof opts !== 'object') { + opts = { mode: opts } + } + + let mode = opts.mode + const xfs = opts.fs || fs + + if (process.platform === 'win32' && invalidWin32Path(p)) { + const errInval = new Error(p + ' contains invalid WIN32 path characters.') + errInval.code = 'EINVAL' + throw errInval + } + + if (mode === undefined) { + mode = o777 & (~process.umask()) + } + if (!made) made = null + + p = path.resolve(p) + + try { + xfs.mkdirSync(p, mode) + made = made || p + } catch (err0) { + if (err0.code === 'ENOENT') { + if (path.dirname(p) === p) throw err0 + made = mkdirsSync(path.dirname(p), opts, made) + mkdirsSync(p, opts, made) + } else { + // In the case of any other error, just see if there's a dir there + // already. If so, then hooray! If not, then something is borked. + let stat + try { + stat = xfs.statSync(p) + } catch (err1) { + throw err0 + } + if (!stat.isDirectory()) throw err0 + } + } + + return made +} + +module.exports = mkdirsSync diff --git a/node_modules/fs-extra/lib/mkdirs/mkdirs.js b/node_modules/fs-extra/lib/mkdirs/mkdirs.js new file mode 100644 index 0000000..1897533 --- /dev/null +++ b/node_modules/fs-extra/lib/mkdirs/mkdirs.js @@ -0,0 +1,63 @@ +'use strict' + +const fs = require('graceful-fs') +const path = require('path') +const invalidWin32Path = require('./win32').invalidWin32Path + +const o777 = parseInt('0777', 8) + +function mkdirs (p, opts, callback, made) { + if (typeof opts === 'function') { + callback = opts + opts = {} + } else if (!opts || typeof opts !== 'object') { + opts = { mode: opts } + } + + if (process.platform === 'win32' && invalidWin32Path(p)) { + const errInval = new Error(p + ' contains invalid WIN32 path characters.') + errInval.code = 'EINVAL' + return callback(errInval) + } + + let mode = opts.mode + const xfs = opts.fs || fs + + if (mode === undefined) { + mode = o777 & (~process.umask()) + } + if (!made) made = null + + callback = callback || function () {} + p = path.resolve(p) + + xfs.mkdir(p, mode, er => { + if (!er) { + made = made || p + return callback(null, made) + } + switch (er.code) { + case 'ENOENT': + if (path.dirname(p) === p) return callback(er) + mkdirs(path.dirname(p), opts, (er, made) => { + if (er) callback(er, made) + else mkdirs(p, opts, callback, made) + }) + break + + // In the case of any other error, just see if there's a dir + // there already. If so, then hooray! If not, then something + // is borked. + default: + xfs.stat(p, (er2, stat) => { + // if the stat fails, then that's super weird. + // let the original error be the failure reason. + if (er2 || !stat.isDirectory()) callback(er, made) + else callback(null, made) + }) + break + } + }) +} + +module.exports = mkdirs diff --git a/node_modules/fs-extra/lib/mkdirs/win32.js b/node_modules/fs-extra/lib/mkdirs/win32.js new file mode 100644 index 0000000..99b3920 --- /dev/null +++ b/node_modules/fs-extra/lib/mkdirs/win32.js @@ -0,0 +1,25 @@ +'use strict' + +const path = require('path') + +// get drive on windows +function getRootPath (p) { + p = path.normalize(path.resolve(p)).split(path.sep) + if (p.length > 0) return p[0] + return null +} + +// http://stackoverflow.com/a/62888/10333 contains more accurate +// TODO: expand to include the rest +const INVALID_PATH_CHARS = /[<>:"|?*]/ + +function invalidWin32Path (p) { + const rp = getRootPath(p) + p = p.replace(rp, '') + return INVALID_PATH_CHARS.test(p) +} + +module.exports = { + getRootPath, + invalidWin32Path +} diff --git a/node_modules/fs-extra/lib/move-sync/index.js b/node_modules/fs-extra/lib/move-sync/index.js new file mode 100644 index 0000000..af90b06 --- /dev/null +++ b/node_modules/fs-extra/lib/move-sync/index.js @@ -0,0 +1,5 @@ +'use strict' + +module.exports = { + moveSync: require('./move-sync') +} diff --git a/node_modules/fs-extra/lib/move-sync/move-sync.js b/node_modules/fs-extra/lib/move-sync/move-sync.js new file mode 100644 index 0000000..20f910c --- /dev/null +++ b/node_modules/fs-extra/lib/move-sync/move-sync.js @@ -0,0 +1,47 @@ +'use strict' + +const fs = require('graceful-fs') +const path = require('path') +const copySync = require('../copy-sync').copySync +const removeSync = require('../remove').removeSync +const mkdirpSync = require('../mkdirs').mkdirpSync +const stat = require('../util/stat') + +function moveSync (src, dest, opts) { + opts = opts || {} + const overwrite = opts.overwrite || opts.clobber || false + + const { srcStat } = stat.checkPathsSync(src, dest, 'move') + stat.checkParentPathsSync(src, srcStat, dest, 'move') + mkdirpSync(path.dirname(dest)) + return doRename(src, dest, overwrite) +} + +function doRename (src, dest, overwrite) { + if (overwrite) { + removeSync(dest) + return rename(src, dest, overwrite) + } + if (fs.existsSync(dest)) throw new Error('dest already exists.') + return rename(src, dest, overwrite) +} + +function rename (src, dest, overwrite) { + try { + fs.renameSync(src, dest) + } catch (err) { + if (err.code !== 'EXDEV') throw err + return moveAcrossDevice(src, dest, overwrite) + } +} + +function moveAcrossDevice (src, dest, overwrite) { + const opts = { + overwrite, + errorOnExist: true + } + copySync(src, dest, opts) + return removeSync(src) +} + +module.exports = moveSync diff --git a/node_modules/fs-extra/lib/move/index.js b/node_modules/fs-extra/lib/move/index.js new file mode 100644 index 0000000..3785345 --- /dev/null +++ b/node_modules/fs-extra/lib/move/index.js @@ -0,0 +1,6 @@ +'use strict' + +const u = require('universalify').fromCallback +module.exports = { + move: u(require('./move')) +} diff --git a/node_modules/fs-extra/lib/move/move.js b/node_modules/fs-extra/lib/move/move.js new file mode 100644 index 0000000..fa3ea61 --- /dev/null +++ b/node_modules/fs-extra/lib/move/move.js @@ -0,0 +1,65 @@ +'use strict' + +const fs = require('graceful-fs') +const path = require('path') +const copy = require('../copy').copy +const remove = require('../remove').remove +const mkdirp = require('../mkdirs').mkdirp +const pathExists = require('../path-exists').pathExists +const stat = require('../util/stat') + +function move (src, dest, opts, cb) { + if (typeof opts === 'function') { + cb = opts + opts = {} + } + + const overwrite = opts.overwrite || opts.clobber || false + + stat.checkPaths(src, dest, 'move', (err, stats) => { + if (err) return cb(err) + const { srcStat } = stats + stat.checkParentPaths(src, srcStat, dest, 'move', err => { + if (err) return cb(err) + mkdirp(path.dirname(dest), err => { + if (err) return cb(err) + return doRename(src, dest, overwrite, cb) + }) + }) + }) +} + +function doRename (src, dest, overwrite, cb) { + if (overwrite) { + return remove(dest, err => { + if (err) return cb(err) + return rename(src, dest, overwrite, cb) + }) + } + pathExists(dest, (err, destExists) => { + if (err) return cb(err) + if (destExists) return cb(new Error('dest already exists.')) + return rename(src, dest, overwrite, cb) + }) +} + +function rename (src, dest, overwrite, cb) { + fs.rename(src, dest, err => { + if (!err) return cb() + if (err.code !== 'EXDEV') return cb(err) + return moveAcrossDevice(src, dest, overwrite, cb) + }) +} + +function moveAcrossDevice (src, dest, overwrite, cb) { + const opts = { + overwrite, + errorOnExist: true + } + copy(src, dest, opts, err => { + if (err) return cb(err) + return remove(src, cb) + }) +} + +module.exports = move diff --git a/node_modules/fs-extra/lib/output/index.js b/node_modules/fs-extra/lib/output/index.js new file mode 100644 index 0000000..92297ca --- /dev/null +++ b/node_modules/fs-extra/lib/output/index.js @@ -0,0 +1,40 @@ +'use strict' + +const u = require('universalify').fromCallback +const fs = require('graceful-fs') +const path = require('path') +const mkdir = require('../mkdirs') +const pathExists = require('../path-exists').pathExists + +function outputFile (file, data, encoding, callback) { + if (typeof encoding === 'function') { + callback = encoding + encoding = 'utf8' + } + + const dir = path.dirname(file) + pathExists(dir, (err, itDoes) => { + if (err) return callback(err) + if (itDoes) return fs.writeFile(file, data, encoding, callback) + + mkdir.mkdirs(dir, err => { + if (err) return callback(err) + + fs.writeFile(file, data, encoding, callback) + }) + }) +} + +function outputFileSync (file, ...args) { + const dir = path.dirname(file) + if (fs.existsSync(dir)) { + return fs.writeFileSync(file, ...args) + } + mkdir.mkdirsSync(dir) + fs.writeFileSync(file, ...args) +} + +module.exports = { + outputFile: u(outputFile), + outputFileSync +} diff --git a/node_modules/fs-extra/lib/path-exists/index.js b/node_modules/fs-extra/lib/path-exists/index.js new file mode 100644 index 0000000..ddd9bc7 --- /dev/null +++ b/node_modules/fs-extra/lib/path-exists/index.js @@ -0,0 +1,12 @@ +'use strict' +const u = require('universalify').fromPromise +const fs = require('../fs') + +function pathExists (path) { + return fs.access(path).then(() => true).catch(() => false) +} + +module.exports = { + pathExists: u(pathExists), + pathExistsSync: fs.existsSync +} diff --git a/node_modules/fs-extra/lib/remove/index.js b/node_modules/fs-extra/lib/remove/index.js new file mode 100644 index 0000000..cee5340 --- /dev/null +++ b/node_modules/fs-extra/lib/remove/index.js @@ -0,0 +1,9 @@ +'use strict' + +const u = require('universalify').fromCallback +const rimraf = require('./rimraf') + +module.exports = { + remove: u(rimraf), + removeSync: rimraf.sync +} diff --git a/node_modules/fs-extra/lib/remove/rimraf.js b/node_modules/fs-extra/lib/remove/rimraf.js new file mode 100644 index 0000000..f287e4e --- /dev/null +++ b/node_modules/fs-extra/lib/remove/rimraf.js @@ -0,0 +1,314 @@ +'use strict' + +const fs = require('graceful-fs') +const path = require('path') +const assert = require('assert') + +const isWindows = (process.platform === 'win32') + +function defaults (options) { + const methods = [ + 'unlink', + 'chmod', + 'stat', + 'lstat', + 'rmdir', + 'readdir' + ] + methods.forEach(m => { + options[m] = options[m] || fs[m] + m = m + 'Sync' + options[m] = options[m] || fs[m] + }) + + options.maxBusyTries = options.maxBusyTries || 3 +} + +function rimraf (p, options, cb) { + let busyTries = 0 + + if (typeof options === 'function') { + cb = options + options = {} + } + + assert(p, 'rimraf: missing path') + assert.strictEqual(typeof p, 'string', 'rimraf: path should be a string') + assert.strictEqual(typeof cb, 'function', 'rimraf: callback function required') + assert(options, 'rimraf: invalid options argument provided') + assert.strictEqual(typeof options, 'object', 'rimraf: options should be object') + + defaults(options) + + rimraf_(p, options, function CB (er) { + if (er) { + if ((er.code === 'EBUSY' || er.code === 'ENOTEMPTY' || er.code === 'EPERM') && + busyTries < options.maxBusyTries) { + busyTries++ + const time = busyTries * 100 + // try again, with the same exact callback as this one. + return setTimeout(() => rimraf_(p, options, CB), time) + } + + // already gone + if (er.code === 'ENOENT') er = null + } + + cb(er) + }) +} + +// Two possible strategies. +// 1. Assume it's a file. unlink it, then do the dir stuff on EPERM or EISDIR +// 2. Assume it's a directory. readdir, then do the file stuff on ENOTDIR +// +// Both result in an extra syscall when you guess wrong. However, there +// are likely far more normal files in the world than directories. This +// is based on the assumption that a the average number of files per +// directory is >= 1. +// +// If anyone ever complains about this, then I guess the strategy could +// be made configurable somehow. But until then, YAGNI. +function rimraf_ (p, options, cb) { + assert(p) + assert(options) + assert(typeof cb === 'function') + + // sunos lets the root user unlink directories, which is... weird. + // so we have to lstat here and make sure it's not a dir. + options.lstat(p, (er, st) => { + if (er && er.code === 'ENOENT') { + return cb(null) + } + + // Windows can EPERM on stat. Life is suffering. + if (er && er.code === 'EPERM' && isWindows) { + return fixWinEPERM(p, options, er, cb) + } + + if (st && st.isDirectory()) { + return rmdir(p, options, er, cb) + } + + options.unlink(p, er => { + if (er) { + if (er.code === 'ENOENT') { + return cb(null) + } + if (er.code === 'EPERM') { + return (isWindows) + ? fixWinEPERM(p, options, er, cb) + : rmdir(p, options, er, cb) + } + if (er.code === 'EISDIR') { + return rmdir(p, options, er, cb) + } + } + return cb(er) + }) + }) +} + +function fixWinEPERM (p, options, er, cb) { + assert(p) + assert(options) + assert(typeof cb === 'function') + if (er) { + assert(er instanceof Error) + } + + options.chmod(p, 0o666, er2 => { + if (er2) { + cb(er2.code === 'ENOENT' ? null : er) + } else { + options.stat(p, (er3, stats) => { + if (er3) { + cb(er3.code === 'ENOENT' ? null : er) + } else if (stats.isDirectory()) { + rmdir(p, options, er, cb) + } else { + options.unlink(p, cb) + } + }) + } + }) +} + +function fixWinEPERMSync (p, options, er) { + let stats + + assert(p) + assert(options) + if (er) { + assert(er instanceof Error) + } + + try { + options.chmodSync(p, 0o666) + } catch (er2) { + if (er2.code === 'ENOENT') { + return + } else { + throw er + } + } + + try { + stats = options.statSync(p) + } catch (er3) { + if (er3.code === 'ENOENT') { + return + } else { + throw er + } + } + + if (stats.isDirectory()) { + rmdirSync(p, options, er) + } else { + options.unlinkSync(p) + } +} + +function rmdir (p, options, originalEr, cb) { + assert(p) + assert(options) + if (originalEr) { + assert(originalEr instanceof Error) + } + assert(typeof cb === 'function') + + // try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS) + // if we guessed wrong, and it's not a directory, then + // raise the original error. + options.rmdir(p, er => { + if (er && (er.code === 'ENOTEMPTY' || er.code === 'EEXIST' || er.code === 'EPERM')) { + rmkids(p, options, cb) + } else if (er && er.code === 'ENOTDIR') { + cb(originalEr) + } else { + cb(er) + } + }) +} + +function rmkids (p, options, cb) { + assert(p) + assert(options) + assert(typeof cb === 'function') + + options.readdir(p, (er, files) => { + if (er) return cb(er) + + let n = files.length + let errState + + if (n === 0) return options.rmdir(p, cb) + + files.forEach(f => { + rimraf(path.join(p, f), options, er => { + if (errState) { + return + } + if (er) return cb(errState = er) + if (--n === 0) { + options.rmdir(p, cb) + } + }) + }) + }) +} + +// this looks simpler, and is strictly *faster*, but will +// tie up the JavaScript thread and fail on excessively +// deep directory trees. +function rimrafSync (p, options) { + let st + + options = options || {} + defaults(options) + + assert(p, 'rimraf: missing path') + assert.strictEqual(typeof p, 'string', 'rimraf: path should be a string') + assert(options, 'rimraf: missing options') + assert.strictEqual(typeof options, 'object', 'rimraf: options should be object') + + try { + st = options.lstatSync(p) + } catch (er) { + if (er.code === 'ENOENT') { + return + } + + // Windows can EPERM on stat. Life is suffering. + if (er.code === 'EPERM' && isWindows) { + fixWinEPERMSync(p, options, er) + } + } + + try { + // sunos lets the root user unlink directories, which is... weird. + if (st && st.isDirectory()) { + rmdirSync(p, options, null) + } else { + options.unlinkSync(p) + } + } catch (er) { + if (er.code === 'ENOENT') { + return + } else if (er.code === 'EPERM') { + return isWindows ? fixWinEPERMSync(p, options, er) : rmdirSync(p, options, er) + } else if (er.code !== 'EISDIR') { + throw er + } + rmdirSync(p, options, er) + } +} + +function rmdirSync (p, options, originalEr) { + assert(p) + assert(options) + if (originalEr) { + assert(originalEr instanceof Error) + } + + try { + options.rmdirSync(p) + } catch (er) { + if (er.code === 'ENOTDIR') { + throw originalEr + } else if (er.code === 'ENOTEMPTY' || er.code === 'EEXIST' || er.code === 'EPERM') { + rmkidsSync(p, options) + } else if (er.code !== 'ENOENT') { + throw er + } + } +} + +function rmkidsSync (p, options) { + assert(p) + assert(options) + options.readdirSync(p).forEach(f => rimrafSync(path.join(p, f), options)) + + if (isWindows) { + // We only end up here once we got ENOTEMPTY at least once, and + // at this point, we are guaranteed to have removed all the kids. + // So, we know that it won't be ENOENT or ENOTDIR or anything else. + // try really hard to delete stuff on windows, because it has a + // PROFOUNDLY annoying habit of not closing handles promptly when + // files are deleted, resulting in spurious ENOTEMPTY errors. + const startTime = Date.now() + do { + try { + const ret = options.rmdirSync(p, options) + return ret + } catch (er) { } + } while (Date.now() - startTime < 500) // give up after 500ms + } else { + const ret = options.rmdirSync(p, options) + return ret + } +} + +module.exports = rimraf +rimraf.sync = rimrafSync diff --git a/node_modules/fs-extra/lib/util/buffer.js b/node_modules/fs-extra/lib/util/buffer.js new file mode 100644 index 0000000..dabf288 --- /dev/null +++ b/node_modules/fs-extra/lib/util/buffer.js @@ -0,0 +1,12 @@ +'use strict' +/* eslint-disable node/no-deprecated-api */ +module.exports = function (size) { + if (typeof Buffer.allocUnsafe === 'function') { + try { + return Buffer.allocUnsafe(size) + } catch (e) { + return new Buffer(size) + } + } + return new Buffer(size) +} diff --git a/node_modules/fs-extra/lib/util/stat.js b/node_modules/fs-extra/lib/util/stat.js new file mode 100644 index 0000000..350cb9f --- /dev/null +++ b/node_modules/fs-extra/lib/util/stat.js @@ -0,0 +1,172 @@ +'use strict' + +const fs = require('graceful-fs') +const path = require('path') + +const NODE_VERSION_MAJOR_WITH_BIGINT = 10 +const NODE_VERSION_MINOR_WITH_BIGINT = 5 +const NODE_VERSION_PATCH_WITH_BIGINT = 0 +const nodeVersion = process.versions.node.split('.') +const nodeVersionMajor = Number.parseInt(nodeVersion[0], 10) +const nodeVersionMinor = Number.parseInt(nodeVersion[1], 10) +const nodeVersionPatch = Number.parseInt(nodeVersion[2], 10) + +function nodeSupportsBigInt () { + if (nodeVersionMajor > NODE_VERSION_MAJOR_WITH_BIGINT) { + return true + } else if (nodeVersionMajor === NODE_VERSION_MAJOR_WITH_BIGINT) { + if (nodeVersionMinor > NODE_VERSION_MINOR_WITH_BIGINT) { + return true + } else if (nodeVersionMinor === NODE_VERSION_MINOR_WITH_BIGINT) { + if (nodeVersionPatch >= NODE_VERSION_PATCH_WITH_BIGINT) { + return true + } + } + } + return false +} + +function getStats (src, dest, cb) { + if (nodeSupportsBigInt()) { + fs.stat(src, { bigint: true }, (err, srcStat) => { + if (err) return cb(err) + fs.stat(dest, { bigint: true }, (err, destStat) => { + if (err) { + if (err.code === 'ENOENT') return cb(null, { srcStat, destStat: null }) + return cb(err) + } + return cb(null, { srcStat, destStat }) + }) + }) + } else { + fs.stat(src, (err, srcStat) => { + if (err) return cb(err) + fs.stat(dest, (err, destStat) => { + if (err) { + if (err.code === 'ENOENT') return cb(null, { srcStat, destStat: null }) + return cb(err) + } + return cb(null, { srcStat, destStat }) + }) + }) + } +} + +function getStatsSync (src, dest) { + let srcStat, destStat + if (nodeSupportsBigInt()) { + srcStat = fs.statSync(src, { bigint: true }) + } else { + srcStat = fs.statSync(src) + } + try { + if (nodeSupportsBigInt()) { + destStat = fs.statSync(dest, { bigint: true }) + } else { + destStat = fs.statSync(dest) + } + } catch (err) { + if (err.code === 'ENOENT') return { srcStat, destStat: null } + throw err + } + return { srcStat, destStat } +} + +function checkPaths (src, dest, funcName, cb) { + getStats(src, dest, (err, stats) => { + if (err) return cb(err) + const { srcStat, destStat } = stats + if (destStat && destStat.ino && destStat.dev && destStat.ino === srcStat.ino && destStat.dev === srcStat.dev) { + return cb(new Error('Source and destination must not be the same.')) + } + if (srcStat.isDirectory() && isSrcSubdir(src, dest)) { + return cb(new Error(errMsg(src, dest, funcName))) + } + return cb(null, { srcStat, destStat }) + }) +} + +function checkPathsSync (src, dest, funcName) { + const { srcStat, destStat } = getStatsSync(src, dest) + if (destStat && destStat.ino && destStat.dev && destStat.ino === srcStat.ino && destStat.dev === srcStat.dev) { + throw new Error('Source and destination must not be the same.') + } + if (srcStat.isDirectory() && isSrcSubdir(src, dest)) { + throw new Error(errMsg(src, dest, funcName)) + } + return { srcStat, destStat } +} + +// recursively check if dest parent is a subdirectory of src. +// It works for all file types including symlinks since it +// checks the src and dest inodes. It starts from the deepest +// parent and stops once it reaches the src parent or the root path. +function checkParentPaths (src, srcStat, dest, funcName, cb) { + const srcParent = path.resolve(path.dirname(src)) + const destParent = path.resolve(path.dirname(dest)) + if (destParent === srcParent || destParent === path.parse(destParent).root) return cb() + if (nodeSupportsBigInt()) { + fs.stat(destParent, { bigint: true }, (err, destStat) => { + if (err) { + if (err.code === 'ENOENT') return cb() + return cb(err) + } + if (destStat.ino && destStat.dev && destStat.ino === srcStat.ino && destStat.dev === srcStat.dev) { + return cb(new Error(errMsg(src, dest, funcName))) + } + return checkParentPaths(src, srcStat, destParent, funcName, cb) + }) + } else { + fs.stat(destParent, (err, destStat) => { + if (err) { + if (err.code === 'ENOENT') return cb() + return cb(err) + } + if (destStat.ino && destStat.dev && destStat.ino === srcStat.ino && destStat.dev === srcStat.dev) { + return cb(new Error(errMsg(src, dest, funcName))) + } + return checkParentPaths(src, srcStat, destParent, funcName, cb) + }) + } +} + +function checkParentPathsSync (src, srcStat, dest, funcName) { + const srcParent = path.resolve(path.dirname(src)) + const destParent = path.resolve(path.dirname(dest)) + if (destParent === srcParent || destParent === path.parse(destParent).root) return + let destStat + try { + if (nodeSupportsBigInt()) { + destStat = fs.statSync(destParent, { bigint: true }) + } else { + destStat = fs.statSync(destParent) + } + } catch (err) { + if (err.code === 'ENOENT') return + throw err + } + if (destStat.ino && destStat.dev && destStat.ino === srcStat.ino && destStat.dev === srcStat.dev) { + throw new Error(errMsg(src, dest, funcName)) + } + return checkParentPathsSync(src, srcStat, destParent, funcName) +} + +// return true if dest is a subdir of src, otherwise false. +// It only checks the path strings. +function isSrcSubdir (src, dest) { + const srcArr = path.resolve(src).split(path.sep).filter(i => i) + const destArr = path.resolve(dest).split(path.sep).filter(i => i) + return srcArr.reduce((acc, cur, i) => acc && destArr[i] === cur, true) +} + +function errMsg (src, dest, funcName) { + return `Cannot ${funcName} '${src}' to a subdirectory of itself, '${dest}'.` +} + +module.exports = { + checkPaths, + checkPathsSync, + checkParentPaths, + checkParentPathsSync, + isSrcSubdir +} diff --git a/node_modules/fs-extra/lib/util/utimes.js b/node_modules/fs-extra/lib/util/utimes.js new file mode 100644 index 0000000..8916a1b --- /dev/null +++ b/node_modules/fs-extra/lib/util/utimes.js @@ -0,0 +1,79 @@ +'use strict' + +const fs = require('graceful-fs') +const os = require('os') +const path = require('path') + +// HFS, ext{2,3}, FAT do not, Node.js v0.10 does not +function hasMillisResSync () { + let tmpfile = path.join('millis-test-sync' + Date.now().toString() + Math.random().toString().slice(2)) + tmpfile = path.join(os.tmpdir(), tmpfile) + + // 550 millis past UNIX epoch + const d = new Date(1435410243862) + fs.writeFileSync(tmpfile, 'https://github.com/jprichardson/node-fs-extra/pull/141') + const fd = fs.openSync(tmpfile, 'r+') + fs.futimesSync(fd, d, d) + fs.closeSync(fd) + return fs.statSync(tmpfile).mtime > 1435410243000 +} + +function hasMillisRes (callback) { + let tmpfile = path.join('millis-test' + Date.now().toString() + Math.random().toString().slice(2)) + tmpfile = path.join(os.tmpdir(), tmpfile) + + // 550 millis past UNIX epoch + const d = new Date(1435410243862) + fs.writeFile(tmpfile, 'https://github.com/jprichardson/node-fs-extra/pull/141', err => { + if (err) return callback(err) + fs.open(tmpfile, 'r+', (err, fd) => { + if (err) return callback(err) + fs.futimes(fd, d, d, err => { + if (err) return callback(err) + fs.close(fd, err => { + if (err) return callback(err) + fs.stat(tmpfile, (err, stats) => { + if (err) return callback(err) + callback(null, stats.mtime > 1435410243000) + }) + }) + }) + }) + }) +} + +function timeRemoveMillis (timestamp) { + if (typeof timestamp === 'number') { + return Math.floor(timestamp / 1000) * 1000 + } else if (timestamp instanceof Date) { + return new Date(Math.floor(timestamp.getTime() / 1000) * 1000) + } else { + throw new Error('fs-extra: timeRemoveMillis() unknown parameter type') + } +} + +function utimesMillis (path, atime, mtime, callback) { + // if (!HAS_MILLIS_RES) return fs.utimes(path, atime, mtime, callback) + fs.open(path, 'r+', (err, fd) => { + if (err) return callback(err) + fs.futimes(fd, atime, mtime, futimesErr => { + fs.close(fd, closeErr => { + if (callback) callback(futimesErr || closeErr) + }) + }) + }) +} + +function utimesMillisSync (path, atime, mtime) { + const fd = fs.openSync(path, 'r+') + fs.futimesSync(fd, atime, mtime) + return fs.closeSync(fd) +} + +module.exports = { + hasMillisRes, + hasMillisResSync, + timeRemoveMillis, + utimesMillis, + utimesMillisSync +} diff --git a/node_modules/fs-extra/package.json b/node_modules/fs-extra/package.json new file mode 100644 index 0000000..0007cc9 --- /dev/null +++ b/node_modules/fs-extra/package.json @@ -0,0 +1,100 @@ +{ + "_from": "fs-extra@^8.1.0", + "_id": "fs-extra@8.1.0", + "_inBundle": false, + "_integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "_location": "/fs-extra", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "fs-extra@^8.1.0", + "name": "fs-extra", + "escapedName": "fs-extra", + "rawSpec": "^8.1.0", + "saveSpec": null, + "fetchSpec": "^8.1.0" + }, + "_requiredBy": [ + "/wait-file" + ], + "_resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "_shasum": "49d43c45a88cd9677668cb7be1b46efdb8d2e1c0", + "_spec": "fs-extra@^8.1.0", + "_where": "/home/wyrihaximus/Projects/WyriHaximus/github-action-helm3/node_modules/wait-file", + "author": { + "name": "JP Richardson", + "email": "jprichardson@gmail.com" + }, + "bugs": { + "url": "https://github.com/jprichardson/node-fs-extra/issues" + }, + "bundleDependencies": false, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "deprecated": false, + "description": "fs-extra contains methods that aren't included in the vanilla Node.js fs package. Such as mkdir -p, cp -r, and rm -rf.", + "devDependencies": { + "coveralls": "^3.0.0", + "istanbul": "^0.4.5", + "klaw": "^2.1.1", + "klaw-sync": "^3.0.2", + "minimist": "^1.1.1", + "mocha": "^5.0.5", + "proxyquire": "^2.0.1", + "read-dir-files": "^0.1.1", + "semver": "^5.3.0", + "standard": "^12.0.1" + }, + "engines": { + "node": ">=6 <7 || >=8" + }, + "files": [ + "lib/", + "!lib/**/__tests__/" + ], + "homepage": "https://github.com/jprichardson/node-fs-extra", + "keywords": [ + "fs", + "file", + "file system", + "copy", + "directory", + "extra", + "mkdirp", + "mkdir", + "mkdirs", + "recursive", + "json", + "read", + "write", + "extra", + "delete", + "remove", + "touch", + "create", + "text", + "output", + "move" + ], + "license": "MIT", + "main": "./lib/index.js", + "name": "fs-extra", + "repository": { + "type": "git", + "url": "git+https://github.com/jprichardson/node-fs-extra.git" + }, + "scripts": { + "coverage": "istanbul cover -i 'lib/**' -x '**/__tests__/**' test.js", + "coveralls": "coveralls < coverage/lcov.info", + "full-ci": "npm run lint && npm run coverage", + "lint": "standard", + "test": "npm run lint && npm run unit", + "test-find": "find ./lib/**/__tests__ -name *.test.js | xargs mocha", + "unit": "node test.js" + }, + "version": "8.1.0" +} diff --git a/node_modules/graceful-fs/LICENSE b/node_modules/graceful-fs/LICENSE new file mode 100644 index 0000000..9d2c803 --- /dev/null +++ b/node_modules/graceful-fs/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter, Ben Noordhuis, 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/graceful-fs/README.md b/node_modules/graceful-fs/README.md new file mode 100644 index 0000000..5273a50 --- /dev/null +++ b/node_modules/graceful-fs/README.md @@ -0,0 +1,133 @@ +# graceful-fs + +graceful-fs functions as a drop-in replacement for the fs module, +making various improvements. + +The improvements are meant to normalize behavior across different +platforms and environments, and to make filesystem access more +resilient to errors. + +## Improvements over [fs module](https://nodejs.org/api/fs.html) + +* Queues up `open` and `readdir` calls, and retries them once + something closes if there is an EMFILE error from too many file + descriptors. +* fixes `lchmod` for Node versions prior to 0.6.2. +* implements `fs.lutimes` if possible. Otherwise it becomes a noop. +* ignores `EINVAL` and `EPERM` errors in `chown`, `fchown` or + `lchown` if the user isn't root. +* makes `lchmod` and `lchown` become noops, if not available. +* retries reading a file if `read` results in EAGAIN error. + +On Windows, it retries renaming a file for up to one second if `EACCESS` +or `EPERM` error occurs, likely because antivirus software has locked +the directory. + +## USAGE + +```javascript +// use just like fs +var fs = require('graceful-fs') + +// now go and do stuff with it... +fs.readFileSync('some-file-or-whatever') +``` + +## Global Patching + +If you want to patch the global fs module (or any other fs-like +module) you can do this: + +```javascript +// Make sure to read the caveat below. +var realFs = require('fs') +var gracefulFs = require('graceful-fs') +gracefulFs.gracefulify(realFs) +``` + +This should only ever be done at the top-level application layer, in +order to delay on EMFILE errors from any fs-using dependencies. You +should **not** do this in a library, because it can cause unexpected +delays in other parts of the program. + +## Changes + +This module is fairly stable at this point, and used by a lot of +things. That being said, because it implements a subtle behavior +change in a core part of the node API, even modest changes can be +extremely breaking, and the versioning is thus biased towards +bumping the major when in doubt. + +The main change between major versions has been switching between +providing a fully-patched `fs` module vs monkey-patching the node core +builtin, and the approach by which a non-monkey-patched `fs` was +created. + +The goal is to trade `EMFILE` errors for slower fs operations. So, if +you try to open a zillion files, rather than crashing, `open` +operations will be queued up and wait for something else to `close`. + +There are advantages to each approach. Monkey-patching the fs means +that no `EMFILE` errors can possibly occur anywhere in your +application, because everything is using the same core `fs` module, +which is patched. However, it can also obviously cause undesirable +side-effects, especially if the module is loaded multiple times. + +Implementing a separate-but-identical patched `fs` module is more +surgical (and doesn't run the risk of patching multiple times), but +also imposes the challenge of keeping in sync with the core module. + +The current approach loads the `fs` module, and then creates a +lookalike object that has all the same methods, except a few that are +patched. It is safe to use in all versions of Node from 0.8 through +7.0. + +### v4 + +* Do not monkey-patch the fs module. This module may now be used as a + drop-in dep, and users can opt into monkey-patching the fs builtin + if their app requires it. + +### v3 + +* Monkey-patch fs, because the eval approach no longer works on recent + node. +* fixed possible type-error throw if rename fails on windows +* verify that we *never* get EMFILE errors +* Ignore ENOSYS from chmod/chown +* clarify that graceful-fs must be used as a drop-in + +### v2.1.0 + +* Use eval rather than monkey-patching fs. +* readdir: Always sort the results +* win32: requeue a file if error has an OK status + +### v2.0 + +* A return to monkey patching +* wrap process.cwd + +### v1.1 + +* wrap readFile +* Wrap fs.writeFile. +* readdir protection +* Don't clobber the fs builtin +* Handle fs.read EAGAIN errors by trying again +* Expose the curOpen counter +* No-op lchown/lchmod if not implemented +* fs.rename patch only for win32 +* Patch fs.rename to handle AV software on Windows +* Close #4 Chown should not fail on einval or eperm if non-root +* Fix isaacs/fstream#1 Only wrap fs one time +* Fix #3 Start at 1024 max files, then back off on EMFILE +* lutimes that doens't blow up on Linux +* A full on-rewrite using a queue instead of just swallowing the EMFILE error +* Wrap Read/Write streams as well + +### 1.0 + +* Update engines for node 0.6 +* Be lstat-graceful on Windows +* first diff --git a/node_modules/graceful-fs/clone.js b/node_modules/graceful-fs/clone.js new file mode 100644 index 0000000..028356c --- /dev/null +++ b/node_modules/graceful-fs/clone.js @@ -0,0 +1,19 @@ +'use strict' + +module.exports = clone + +function clone (obj) { + if (obj === null || typeof obj !== 'object') + return obj + + if (obj instanceof Object) + var copy = { __proto__: obj.__proto__ } + else + var copy = Object.create(null) + + Object.getOwnPropertyNames(obj).forEach(function (key) { + Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key)) + }) + + return copy +} diff --git a/node_modules/graceful-fs/graceful-fs.js b/node_modules/graceful-fs/graceful-fs.js new file mode 100644 index 0000000..de3df47 --- /dev/null +++ b/node_modules/graceful-fs/graceful-fs.js @@ -0,0 +1,354 @@ +var fs = require('fs') +var polyfills = require('./polyfills.js') +var legacy = require('./legacy-streams.js') +var clone = require('./clone.js') + +var util = require('util') + +/* istanbul ignore next - node 0.x polyfill */ +var gracefulQueue +var previousSymbol + +/* istanbul ignore else - node 0.x polyfill */ +if (typeof Symbol === 'function' && typeof Symbol.for === 'function') { + gracefulQueue = Symbol.for('graceful-fs.queue') + // This is used in testing by future versions + previousSymbol = Symbol.for('graceful-fs.previous') +} else { + gracefulQueue = '___graceful-fs.queue' + previousSymbol = '___graceful-fs.previous' +} + +function noop () {} + +function publishQueue(context, queue) { + Object.defineProperty(context, gracefulQueue, { + get: function() { + return queue + } + }) +} + +var debug = noop +if (util.debuglog) + debug = util.debuglog('gfs4') +else if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) + debug = function() { + var m = util.format.apply(util, arguments) + m = 'GFS4: ' + m.split(/\n/).join('\nGFS4: ') + console.error(m) + } + +// Once time initialization +if (!fs[gracefulQueue]) { + // This queue can be shared by multiple loaded instances + var queue = global[gracefulQueue] || [] + publishQueue(fs, queue) + + // Patch fs.close/closeSync to shared queue version, because we need + // to retry() whenever a close happens *anywhere* in the program. + // This is essential when multiple graceful-fs instances are + // in play at the same time. + fs.close = (function (fs$close) { + function close (fd, cb) { + return fs$close.call(fs, fd, function (err) { + // This function uses the graceful-fs shared queue + if (!err) { + retry() + } + + if (typeof cb === 'function') + cb.apply(this, arguments) + }) + } + + Object.defineProperty(close, previousSymbol, { + value: fs$close + }) + return close + })(fs.close) + + fs.closeSync = (function (fs$closeSync) { + function closeSync (fd) { + // This function uses the graceful-fs shared queue + fs$closeSync.apply(fs, arguments) + retry() + } + + Object.defineProperty(closeSync, previousSymbol, { + value: fs$closeSync + }) + return closeSync + })(fs.closeSync) + + if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) { + process.on('exit', function() { + debug(fs[gracefulQueue]) + require('assert').equal(fs[gracefulQueue].length, 0) + }) + } +} + +if (!global[gracefulQueue]) { + publishQueue(global, fs[gracefulQueue]); +} + +module.exports = patch(clone(fs)) +if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs.__patched) { + module.exports = patch(fs) + fs.__patched = true; +} + +function patch (fs) { + // Everything that references the open() function needs to be in here + polyfills(fs) + fs.gracefulify = patch + + fs.createReadStream = createReadStream + fs.createWriteStream = createWriteStream + var fs$readFile = fs.readFile + fs.readFile = readFile + function readFile (path, options, cb) { + if (typeof options === 'function') + cb = options, options = null + + return go$readFile(path, options, cb) + + function go$readFile (path, options, cb) { + return fs$readFile(path, options, function (err) { + if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) + enqueue([go$readFile, [path, options, cb]]) + else { + if (typeof cb === 'function') + cb.apply(this, arguments) + retry() + } + }) + } + } + + var fs$writeFile = fs.writeFile + fs.writeFile = writeFile + function writeFile (path, data, options, cb) { + if (typeof options === 'function') + cb = options, options = null + + return go$writeFile(path, data, options, cb) + + function go$writeFile (path, data, options, cb) { + return fs$writeFile(path, data, options, function (err) { + if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) + enqueue([go$writeFile, [path, data, options, cb]]) + else { + if (typeof cb === 'function') + cb.apply(this, arguments) + retry() + } + }) + } + } + + var fs$appendFile = fs.appendFile + if (fs$appendFile) + fs.appendFile = appendFile + function appendFile (path, data, options, cb) { + if (typeof options === 'function') + cb = options, options = null + + return go$appendFile(path, data, options, cb) + + function go$appendFile (path, data, options, cb) { + return fs$appendFile(path, data, options, function (err) { + if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) + enqueue([go$appendFile, [path, data, options, cb]]) + else { + if (typeof cb === 'function') + cb.apply(this, arguments) + retry() + } + }) + } + } + + var fs$readdir = fs.readdir + fs.readdir = readdir + function readdir (path, options, cb) { + var args = [path] + if (typeof options !== 'function') { + args.push(options) + } else { + cb = options + } + args.push(go$readdir$cb) + + return go$readdir(args) + + function go$readdir$cb (err, files) { + if (files && files.sort) + files.sort() + + if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) + enqueue([go$readdir, [args]]) + + else { + if (typeof cb === 'function') + cb.apply(this, arguments) + retry() + } + } + } + + function go$readdir (args) { + return fs$readdir.apply(fs, args) + } + + if (process.version.substr(0, 4) === 'v0.8') { + var legStreams = legacy(fs) + ReadStream = legStreams.ReadStream + WriteStream = legStreams.WriteStream + } + + var fs$ReadStream = fs.ReadStream + if (fs$ReadStream) { + ReadStream.prototype = Object.create(fs$ReadStream.prototype) + ReadStream.prototype.open = ReadStream$open + } + + var fs$WriteStream = fs.WriteStream + if (fs$WriteStream) { + WriteStream.prototype = Object.create(fs$WriteStream.prototype) + WriteStream.prototype.open = WriteStream$open + } + + Object.defineProperty(fs, 'ReadStream', { + get: function () { + return ReadStream + }, + set: function (val) { + ReadStream = val + }, + enumerable: true, + configurable: true + }) + Object.defineProperty(fs, 'WriteStream', { + get: function () { + return WriteStream + }, + set: function (val) { + WriteStream = val + }, + enumerable: true, + configurable: true + }) + + // legacy names + var FileReadStream = ReadStream + Object.defineProperty(fs, 'FileReadStream', { + get: function () { + return FileReadStream + }, + set: function (val) { + FileReadStream = val + }, + enumerable: true, + configurable: true + }) + var FileWriteStream = WriteStream + Object.defineProperty(fs, 'FileWriteStream', { + get: function () { + return FileWriteStream + }, + set: function (val) { + FileWriteStream = val + }, + enumerable: true, + configurable: true + }) + + function ReadStream (path, options) { + if (this instanceof ReadStream) + return fs$ReadStream.apply(this, arguments), this + else + return ReadStream.apply(Object.create(ReadStream.prototype), arguments) + } + + function ReadStream$open () { + var that = this + open(that.path, that.flags, that.mode, function (err, fd) { + if (err) { + if (that.autoClose) + that.destroy() + + that.emit('error', err) + } else { + that.fd = fd + that.emit('open', fd) + that.read() + } + }) + } + + function WriteStream (path, options) { + if (this instanceof WriteStream) + return fs$WriteStream.apply(this, arguments), this + else + return WriteStream.apply(Object.create(WriteStream.prototype), arguments) + } + + function WriteStream$open () { + var that = this + open(that.path, that.flags, that.mode, function (err, fd) { + if (err) { + that.destroy() + that.emit('error', err) + } else { + that.fd = fd + that.emit('open', fd) + } + }) + } + + function createReadStream (path, options) { + return new fs.ReadStream(path, options) + } + + function createWriteStream (path, options) { + return new fs.WriteStream(path, options) + } + + var fs$open = fs.open + fs.open = open + function open (path, flags, mode, cb) { + if (typeof mode === 'function') + cb = mode, mode = null + + return go$open(path, flags, mode, cb) + + function go$open (path, flags, mode, cb) { + return fs$open(path, flags, mode, function (err, fd) { + if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) + enqueue([go$open, [path, flags, mode, cb]]) + else { + if (typeof cb === 'function') + cb.apply(this, arguments) + retry() + } + }) + } + } + + return fs +} + +function enqueue (elem) { + debug('ENQUEUE', elem[0].name, elem[1]) + fs[gracefulQueue].push(elem) +} + +function retry () { + var elem = fs[gracefulQueue].shift() + if (elem) { + debug('RETRY', elem[0].name, elem[1]) + elem[0].apply(null, elem[1]) + } +} diff --git a/node_modules/graceful-fs/legacy-streams.js b/node_modules/graceful-fs/legacy-streams.js new file mode 100644 index 0000000..d617b50 --- /dev/null +++ b/node_modules/graceful-fs/legacy-streams.js @@ -0,0 +1,118 @@ +var Stream = require('stream').Stream + +module.exports = legacy + +function legacy (fs) { + return { + ReadStream: ReadStream, + WriteStream: WriteStream + } + + function ReadStream (path, options) { + if (!(this instanceof ReadStream)) return new ReadStream(path, options); + + Stream.call(this); + + var self = this; + + this.path = path; + this.fd = null; + this.readable = true; + this.paused = false; + + this.flags = 'r'; + this.mode = 438; /*=0666*/ + this.bufferSize = 64 * 1024; + + options = options || {}; + + // Mixin options into this + var keys = Object.keys(options); + for (var index = 0, length = keys.length; index < length; index++) { + var key = keys[index]; + this[key] = options[key]; + } + + if (this.encoding) this.setEncoding(this.encoding); + + if (this.start !== undefined) { + if ('number' !== typeof this.start) { + throw TypeError('start must be a Number'); + } + if (this.end === undefined) { + this.end = Infinity; + } else if ('number' !== typeof this.end) { + throw TypeError('end must be a Number'); + } + + if (this.start > this.end) { + throw new Error('start must be <= end'); + } + + this.pos = this.start; + } + + if (this.fd !== null) { + process.nextTick(function() { + self._read(); + }); + return; + } + + fs.open(this.path, this.flags, this.mode, function (err, fd) { + if (err) { + self.emit('error', err); + self.readable = false; + return; + } + + self.fd = fd; + self.emit('open', fd); + self._read(); + }) + } + + function WriteStream (path, options) { + if (!(this instanceof WriteStream)) return new WriteStream(path, options); + + Stream.call(this); + + this.path = path; + this.fd = null; + this.writable = true; + + this.flags = 'w'; + this.encoding = 'binary'; + this.mode = 438; /*=0666*/ + this.bytesWritten = 0; + + options = options || {}; + + // Mixin options into this + var keys = Object.keys(options); + for (var index = 0, length = keys.length; index < length; index++) { + var key = keys[index]; + this[key] = options[key]; + } + + if (this.start !== undefined) { + if ('number' !== typeof this.start) { + throw TypeError('start must be a Number'); + } + if (this.start < 0) { + throw new Error('start must be >= zero'); + } + + this.pos = this.start; + } + + this.busy = false; + this._queue = []; + + if (this.fd === null) { + this._open = fs.open; + this._queue.push([this._open, this.path, this.flags, this.mode, undefined]); + this.flush(); + } + } +} diff --git a/node_modules/graceful-fs/package.json b/node_modules/graceful-fs/package.json new file mode 100644 index 0000000..1c258d6 --- /dev/null +++ b/node_modules/graceful-fs/package.json @@ -0,0 +1,80 @@ +{ + "_from": "graceful-fs@^4.2.0", + "_id": "graceful-fs@4.2.4", + "_inBundle": false, + "_integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "_location": "/graceful-fs", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "graceful-fs@^4.2.0", + "name": "graceful-fs", + "escapedName": "graceful-fs", + "rawSpec": "^4.2.0", + "saveSpec": null, + "fetchSpec": "^4.2.0" + }, + "_requiredBy": [ + "/fs-extra", + "/jsonfile" + ], + "_resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "_shasum": "2256bde14d3632958c465ebc96dc467ca07a29fb", + "_spec": "graceful-fs@^4.2.0", + "_where": "/home/wyrihaximus/Projects/WyriHaximus/github-action-helm3/node_modules/fs-extra", + "bugs": { + "url": "https://github.com/isaacs/node-graceful-fs/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "A drop-in replacement for fs, making various improvements.", + "devDependencies": { + "import-fresh": "^2.0.0", + "mkdirp": "^0.5.0", + "rimraf": "^2.2.8", + "tap": "^12.7.0" + }, + "directories": { + "test": "test" + }, + "files": [ + "fs.js", + "graceful-fs.js", + "legacy-streams.js", + "polyfills.js", + "clone.js" + ], + "homepage": "https://github.com/isaacs/node-graceful-fs#readme", + "keywords": [ + "fs", + "module", + "reading", + "retry", + "retries", + "queue", + "error", + "errors", + "handling", + "EMFILE", + "EAGAIN", + "EINVAL", + "EPERM", + "EACCESS" + ], + "license": "ISC", + "main": "graceful-fs.js", + "name": "graceful-fs", + "repository": { + "type": "git", + "url": "git+https://github.com/isaacs/node-graceful-fs.git" + }, + "scripts": { + "postpublish": "git push origin --follow-tags", + "postversion": "npm publish", + "preversion": "npm test", + "test": "node test.js | tap -" + }, + "version": "4.2.4" +} diff --git a/node_modules/graceful-fs/polyfills.js b/node_modules/graceful-fs/polyfills.js new file mode 100644 index 0000000..a5808d2 --- /dev/null +++ b/node_modules/graceful-fs/polyfills.js @@ -0,0 +1,342 @@ +var constants = require('constants') + +var origCwd = process.cwd +var cwd = null + +var platform = process.env.GRACEFUL_FS_PLATFORM || process.platform + +process.cwd = function() { + if (!cwd) + cwd = origCwd.call(process) + return cwd +} +try { + process.cwd() +} catch (er) {} + +var chdir = process.chdir +process.chdir = function(d) { + cwd = null + chdir.call(process, d) +} + +module.exports = patch + +function patch (fs) { + // (re-)implement some things that are known busted or missing. + + // lchmod, broken prior to 0.6.2 + // back-port the fix here. + if (constants.hasOwnProperty('O_SYMLINK') && + process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)) { + patchLchmod(fs) + } + + // lutimes implementation, or no-op + if (!fs.lutimes) { + patchLutimes(fs) + } + + // https://github.com/isaacs/node-graceful-fs/issues/4 + // Chown should not fail on einval or eperm if non-root. + // It should not fail on enosys ever, as this just indicates + // that a fs doesn't support the intended operation. + + fs.chown = chownFix(fs.chown) + fs.fchown = chownFix(fs.fchown) + fs.lchown = chownFix(fs.lchown) + + fs.chmod = chmodFix(fs.chmod) + fs.fchmod = chmodFix(fs.fchmod) + fs.lchmod = chmodFix(fs.lchmod) + + fs.chownSync = chownFixSync(fs.chownSync) + fs.fchownSync = chownFixSync(fs.fchownSync) + fs.lchownSync = chownFixSync(fs.lchownSync) + + fs.chmodSync = chmodFixSync(fs.chmodSync) + fs.fchmodSync = chmodFixSync(fs.fchmodSync) + fs.lchmodSync = chmodFixSync(fs.lchmodSync) + + fs.stat = statFix(fs.stat) + fs.fstat = statFix(fs.fstat) + fs.lstat = statFix(fs.lstat) + + fs.statSync = statFixSync(fs.statSync) + fs.fstatSync = statFixSync(fs.fstatSync) + fs.lstatSync = statFixSync(fs.lstatSync) + + // if lchmod/lchown do not exist, then make them no-ops + if (!fs.lchmod) { + fs.lchmod = function (path, mode, cb) { + if (cb) process.nextTick(cb) + } + fs.lchmodSync = function () {} + } + if (!fs.lchown) { + fs.lchown = function (path, uid, gid, cb) { + if (cb) process.nextTick(cb) + } + fs.lchownSync = function () {} + } + + // on Windows, A/V software can lock the directory, causing this + // to fail with an EACCES or EPERM if the directory contains newly + // created files. Try again on failure, for up to 60 seconds. + + // Set the timeout this long because some Windows Anti-Virus, such as Parity + // bit9, may lock files for up to a minute, causing npm package install + // failures. Also, take care to yield the scheduler. Windows scheduling gives + // CPU to a busy looping process, which can cause the program causing the lock + // contention to be starved of CPU by node, so the contention doesn't resolve. + if (platform === "win32") { + fs.rename = (function (fs$rename) { return function (from, to, cb) { + var start = Date.now() + var backoff = 0; + fs$rename(from, to, function CB (er) { + if (er + && (er.code === "EACCES" || er.code === "EPERM") + && Date.now() - start < 60000) { + setTimeout(function() { + fs.stat(to, function (stater, st) { + if (stater && stater.code === "ENOENT") + fs$rename(from, to, CB); + else + cb(er) + }) + }, backoff) + if (backoff < 100) + backoff += 10; + return; + } + if (cb) cb(er) + }) + }})(fs.rename) + } + + // if read() returns EAGAIN, then just try it again. + fs.read = (function (fs$read) { + function read (fd, buffer, offset, length, position, callback_) { + var callback + if (callback_ && typeof callback_ === 'function') { + var eagCounter = 0 + callback = function (er, _, __) { + if (er && er.code === 'EAGAIN' && eagCounter < 10) { + eagCounter ++ + return fs$read.call(fs, fd, buffer, offset, length, position, callback) + } + callback_.apply(this, arguments) + } + } + return fs$read.call(fs, fd, buffer, offset, length, position, callback) + } + + // This ensures `util.promisify` works as it does for native `fs.read`. + read.__proto__ = fs$read + return read + })(fs.read) + + fs.readSync = (function (fs$readSync) { return function (fd, buffer, offset, length, position) { + var eagCounter = 0 + while (true) { + try { + return fs$readSync.call(fs, fd, buffer, offset, length, position) + } catch (er) { + if (er.code === 'EAGAIN' && eagCounter < 10) { + eagCounter ++ + continue + } + throw er + } + } + }})(fs.readSync) + + function patchLchmod (fs) { + fs.lchmod = function (path, mode, callback) { + fs.open( path + , constants.O_WRONLY | constants.O_SYMLINK + , mode + , function (err, fd) { + if (err) { + if (callback) callback(err) + return + } + // prefer to return the chmod error, if one occurs, + // but still try to close, and report closing errors if they occur. + fs.fchmod(fd, mode, function (err) { + fs.close(fd, function(err2) { + if (callback) callback(err || err2) + }) + }) + }) + } + + fs.lchmodSync = function (path, mode) { + var fd = fs.openSync(path, constants.O_WRONLY | constants.O_SYMLINK, mode) + + // prefer to return the chmod error, if one occurs, + // but still try to close, and report closing errors if they occur. + var threw = true + var ret + try { + ret = fs.fchmodSync(fd, mode) + threw = false + } finally { + if (threw) { + try { + fs.closeSync(fd) + } catch (er) {} + } else { + fs.closeSync(fd) + } + } + return ret + } + } + + function patchLutimes (fs) { + if (constants.hasOwnProperty("O_SYMLINK")) { + fs.lutimes = function (path, at, mt, cb) { + fs.open(path, constants.O_SYMLINK, function (er, fd) { + if (er) { + if (cb) cb(er) + return + } + fs.futimes(fd, at, mt, function (er) { + fs.close(fd, function (er2) { + if (cb) cb(er || er2) + }) + }) + }) + } + + fs.lutimesSync = function (path, at, mt) { + var fd = fs.openSync(path, constants.O_SYMLINK) + var ret + var threw = true + try { + ret = fs.futimesSync(fd, at, mt) + threw = false + } finally { + if (threw) { + try { + fs.closeSync(fd) + } catch (er) {} + } else { + fs.closeSync(fd) + } + } + return ret + } + + } else { + fs.lutimes = function (_a, _b, _c, cb) { if (cb) process.nextTick(cb) } + fs.lutimesSync = function () {} + } + } + + function chmodFix (orig) { + if (!orig) return orig + return function (target, mode, cb) { + return orig.call(fs, target, mode, function (er) { + if (chownErOk(er)) er = null + if (cb) cb.apply(this, arguments) + }) + } + } + + function chmodFixSync (orig) { + if (!orig) return orig + return function (target, mode) { + try { + return orig.call(fs, target, mode) + } catch (er) { + if (!chownErOk(er)) throw er + } + } + } + + + function chownFix (orig) { + if (!orig) return orig + return function (target, uid, gid, cb) { + return orig.call(fs, target, uid, gid, function (er) { + if (chownErOk(er)) er = null + if (cb) cb.apply(this, arguments) + }) + } + } + + function chownFixSync (orig) { + if (!orig) return orig + return function (target, uid, gid) { + try { + return orig.call(fs, target, uid, gid) + } catch (er) { + if (!chownErOk(er)) throw er + } + } + } + + function statFix (orig) { + if (!orig) return orig + // Older versions of Node erroneously returned signed integers for + // uid + gid. + return function (target, options, cb) { + if (typeof options === 'function') { + cb = options + options = null + } + function callback (er, stats) { + if (stats) { + if (stats.uid < 0) stats.uid += 0x100000000 + if (stats.gid < 0) stats.gid += 0x100000000 + } + if (cb) cb.apply(this, arguments) + } + return options ? orig.call(fs, target, options, callback) + : orig.call(fs, target, callback) + } + } + + function statFixSync (orig) { + if (!orig) return orig + // Older versions of Node erroneously returned signed integers for + // uid + gid. + return function (target, options) { + var stats = options ? orig.call(fs, target, options) + : orig.call(fs, target) + if (stats.uid < 0) stats.uid += 0x100000000 + if (stats.gid < 0) stats.gid += 0x100000000 + return stats; + } + } + + // ENOSYS means that the fs doesn't support the op. Just ignore + // that, because it doesn't matter. + // + // if there's no getuid, or if getuid() is something other + // than 0, and the error is EINVAL or EPERM, then just ignore + // it. + // + // This specific case is a silent failure in cp, install, tar, + // and most other unix tools that manage permissions. + // + // When running as root, or if other types of errors are + // encountered, then it's strict. + function chownErOk (er) { + if (!er) + return true + + if (er.code === "ENOSYS") + return true + + var nonroot = !process.getuid || process.getuid() !== 0 + if (nonroot) { + if (er.code === "EINVAL" || er.code === "EPERM") + return true + } + + return false + } +} diff --git a/node_modules/joi/LICENSE.md b/node_modules/joi/LICENSE.md new file mode 100755 index 0000000..3557740 --- /dev/null +++ b/node_modules/joi/LICENSE.md @@ -0,0 +1,10 @@ +Copyright (c) 2012-2020, Sideway. Inc, and project contributors.
+Copyright (c) 2012-2014, Walmart.
+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. diff --git a/node_modules/joi/README.md b/node_modules/joi/README.md new file mode 100755 index 0000000..c5f092f --- /dev/null +++ b/node_modules/joi/README.md @@ -0,0 +1,15 @@ +# joi + +#### The most powerful schema description language and data validator for JavaScript. + +## Installation +`npm install joi` + +### Visit the [joi.dev](https://joi.dev) Developer Portal for tutorials, documentation, and support + +## Useful resources + +- [Documentation and API](https://joi.dev/api/) +- [Versions status](https://joi.dev/resources/status/#joi) +- [Changelog](https://joi.dev/resources/changelog/) +- [Project policies](https://joi.dev/policies/) diff --git a/node_modules/joi/dist/joi-browser.min.js b/node_modules/joi/dist/joi-browser.min.js new file mode 100644 index 0000000..6a0ae25 --- /dev/null +++ b/node_modules/joi/dist/joi-browser.min.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.joi=t():e.joi=t()}(window,(function(){return function(e){var t={};function r(s){if(t[s])return t[s].exports;var n=t[s]={i:s,l:!1,exports:{}};return e[s].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,s){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:s})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var s=Object.create(null);if(r.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(s,n,function(t){return e[t]}.bind(null,n));return s},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=11)}([function(e,t,r){"use strict";const s=r(12);e.exports=function(e,...t){if(!e){if(1===t.length&&t[0]instanceof Error)throw t[0];throw new s(t)}}},function(e,t,r){"use strict";const s=r(0),n=r(12),a=r(29);let o,i;const l={isoDate:/^(?:[-+]\d{2})?(?:\d{4}(?!\d{2}\b))(?:(-?)(?:(?:0[1-9]|1[0-2])(?:\1(?:[12]\d|0[1-9]|3[01]))?|W(?:[0-4]\d|5[0-2])(?:-?[1-7])?|(?:00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[1-6])))(?![T]$|[T][\d]+Z$)(?:[T\s](?:(?:(?:[01]\d|2[0-3])(?:(:?)[0-5]\d)?|24\:?00)(?:[.,]\d+(?!:))?)(?:\2[0-5]\d(?:[.,]\d+)?)?(?:[Z]|(?:[+-])(?:[01]\d|2[0-3])(?::?[0-5]\d)?)?)?)?$/};t.version=a.version,t.defaults={abortEarly:!0,allowUnknown:!1,artifacts:!1,cache:!0,context:null,convert:!0,dateFormat:"iso",errors:{escapeHtml:!1,label:"path",language:null,render:!0,stack:!1,wrap:{label:'"',array:"[]"}},externals:!0,messages:{},nonEnumerables:!1,noDefaults:!1,presence:"optional",skipFunctions:!1,stripUnknown:!1,warnings:!1},t.symbols={any:Symbol.for("@hapi/joi/schema"),arraySingle:Symbol("arraySingle"),deepDefault:Symbol("deepDefault"),errors:Symbol("errors"),literal:Symbol("literal"),override:Symbol("override"),parent:Symbol("parent"),prefs:Symbol("prefs"),ref:Symbol("ref"),template:Symbol("template"),values:Symbol("values")},t.assertOptions=function(e,t,r="Options"){s(e&&"object"==typeof e&&!Array.isArray(e),"Options must be of type object");const n=Object.keys(e).filter(e=>!t.includes(e));s(0===n.length,"".concat(r," contain unknown keys: ").concat(n))},t.checkPreferences=function(e){i=i||r(16);const t=i.preferences.validate(e);if(t.error)throw new n([t.error.details[0].message])},t.compare=function(e,t,r){switch(r){case"=":return e===t;case">":return e>t;case"<":return e=":return e>=t;case"<=":return e<=t}},t.default=function(e,t){return void 0===e?t:e},t.isIsoDate=function(e){return l.isoDate.test(e)},t.isNumber=function(e){return"number"==typeof e&&!isNaN(e)},t.isResolvable=function(e){return!!e&&(e[t.symbols.ref]||e[t.symbols.template])},t.isSchema=function(e,r={}){const n=e&&e[t.symbols.any];return!!n&&(s(r.legacy||n.version===t.version,"Cannot mix different versions of joi schemas"),!0)},t.isValues=function(e){return e[t.symbols.values]},t.limit=function(e){return Number.isSafeInteger(e)&&e>=0},t.preferences=function(e,s){o=o||r(9),e=e||{},s=s||{};const n=Object.assign({},e,s);return s.errors&&e.errors&&(n.errors=Object.assign({},e.errors,s.errors),n.errors.wrap=Object.assign({},e.errors.wrap,s.errors.wrap)),s.messages&&(n.messages=o.compile(s.messages,e.messages)),delete n[t.symbols.prefs],n},t.tryWithPath=function(e,t,r={}){try{return e()}catch(e){throw void 0!==e.path?e.path=t+"."+e.path:e.path=t,r.append&&(e.message="".concat(e.message," (").concat(e.path,")")),e}},t.validateArg=function(e,r,{assert:s,message:n}){if(t.isSchema(s)){const t=s.validate(e);if(!t.error)return;return t.error.message}if(!s(e))return r?"".concat(r," ").concat(n):n},t.verifyFlat=function(e,t){for(const r of e)s(!Array.isArray(r),"Method no longer accepts array arguments:",t)}},function(e,t,r){"use strict";const s=r(6),n=r(13),a=r(14),o={needsProtoHack:new Set([n.set,n.map,n.weakSet,n.weakMap])};e.exports=o.clone=function(e,t={},r=null){if("object"!=typeof e||null===e)return e;let s=o.clone,i=r;if(t.shallow){if(!0!==t.shallow)return o.cloneWithShallow(e,t);s=e=>e}else if(i){const t=i.get(e);if(t)return t}else i=new Map;const l=n.getInternalProto(e);if(l===n.buffer)return!1;if(l===n.date)return new Date(e.getTime());if(l===n.regex)return new RegExp(e);const c=o.base(e,l,t);if(c===e)return e;if(i&&i.set(e,c),l===n.set)for(const r of e)c.add(s(r,t,i));else if(l===n.map)for(const[r,n]of e)c.set(r,s(n,t,i));const u=a.keys(e,t);for(const r of u){if("__proto__"===r)continue;if(l===n.array&&"length"===r){c.length=e.length;continue}const a=Object.getOwnPropertyDescriptor(e,r);a?a.get||a.set?Object.defineProperty(c,r,a):a.enumerable?c[r]=s(e[r],t,i):Object.defineProperty(c,r,{enumerable:!1,writable:!0,configurable:!0,value:s(e[r],t,i)}):Object.defineProperty(c,r,{enumerable:!0,writable:!0,configurable:!0,value:s(e[r],t,i)})}return c},o.cloneWithShallow=function(e,t){const r=t.shallow;(t=Object.assign({},t)).shallow=!1;const n=new Map;for(const t of r){const r=s(e,t);"object"!=typeof r&&"function"!=typeof r||n.set(r,r)}return o.clone(e,t,n)},o.base=function(e,t,r){if(!1===r.prototype)return o.needsProtoHack.has(t)?new t.constructor:t===n.array?[]:{};const s=Object.getPrototypeOf(e);if(s&&s.isImmutable)return e;if(t===n.array){const e=[];return s!==t&&Object.setPrototypeOf(e,s),e}if(o.needsProtoHack.has(t)){const e=new s.constructor;return s!==t&&Object.setPrototypeOf(e,s),e}return Object.create(s)}},function(e,t,r){"use strict";const s=r(0),n=r(34),a=r(1),o=r(9);e.exports=n.extend({type:"any",flags:{only:{default:!1}},terms:{alterations:{init:null},examples:{init:null},externals:{init:null},metas:{init:[]},notes:{init:[]},shared:{init:null},tags:{init:[]},whens:{init:null}},rules:{custom:{method(e,t){return s("function"==typeof e,"Method must be a function"),s(void 0===t||t&&"string"==typeof t,"Description must be a non-empty string"),this.$_addRule({name:"custom",args:{method:e,description:t}})},validate(e,t,{method:r}){try{return r(e,t)}catch(e){return t.error("any.custom",{error:e})}},args:["method","description"],multi:!0},messages:{method(e){return this.prefs({messages:e})}},shared:{method(e){s(a.isSchema(e)&&e._flags.id,"Schema must be a schema with an id");const t=this.clone();return t.$_terms.shared=t.$_terms.shared||[],t.$_terms.shared.push(e),t.$_mutateRegister(e),t}},warning:{method(e,t){return s(e&&"string"==typeof e,"Invalid warning code"),this.$_addRule({name:"warning",args:{code:e,local:t},warn:!0})},validate:(e,t,{code:r,local:s})=>t.error(r,s),args:["code","local"],multi:!0}},modifiers:{keep(e,t=!0){e.keep=t},message(e,t){e.message=o.compile(t)},warn(e,t=!0){e.warn=t}},manifest:{build(e,t){for(const r in t){const s=t[r];if(["examples","externals","metas","notes","tags"].includes(r))for(const t of s)e=e[r.slice(0,-1)](t);else if("alterations"!==r)if("whens"!==r){if("shared"===r)for(const t of s)e=e.shared(t)}else for(const t of s){const{ref:r,is:s,not:n,then:a,otherwise:o,concat:i}=t;e=i?e.concat(i):r?e.when(r,{is:s,not:n,then:a,otherwise:o,switch:t.switch,break:t.break}):e.when(s,{then:a,otherwise:o,break:t.break})}else{const t={};for(const{target:e,adjuster:r}of s)t[e]=r;e=e.alter(t)}}return e}},messages:{"any.custom":"{{#label}} failed custom validation because {{#error.message}}","any.default":"{{#label}} threw an error when running default method","any.failover":"{{#label}} threw an error when running failover method","any.invalid":"{{#label}} contains an invalid value","any.only":'{{#label}} must be {if(#valids.length == 1, "", "one of ")}{{#valids}}',"any.ref":"{{#label}} {{#arg}} references {{:#ref}} which {{#reason}}","any.required":"{{#label}} is required","any.unknown":"{{#label}} is not allowed"}})},function(e,t,r){"use strict";const s=r(32),n=r(1),a=r(7);t.Report=class{constructor(e,r,s,n,a,o,i){if(this.code=e,this.flags=n,this.messages=a,this.path=o.path,this.prefs=i,this.state=o,this.value=r,this.message=null,this.template=null,this.local=s||{},this.local.label=t.label(this.flags,this.state,this.prefs,this.messages),void 0===this.value||this.local.hasOwnProperty("value")||(this.local.value=this.value),this.path.length){const e=this.path[this.path.length-1];"object"!=typeof e&&(this.local.key=e)}}_setTemplate(e){if(this.template=e,!this.flags.label&&0===this.path.length){const e=this._template(this.template,"root");e&&(this.local.label=e)}}toString(){if(this.message)return this.message;const e=this.code;if(!this.prefs.errors.render)return this.code;const t=this._template(this.template)||this._template(this.prefs.messages)||this._template(this.messages);return void 0===t?'Error code "'.concat(e,'" is not defined, your custom type is missing the correct messages definition'):(this.message=t.render(this.value,this.state,this.prefs,this.local,{errors:this.prefs.errors,messages:[this.prefs.messages,this.messages]}),this.prefs.errors.label||(this.message=this.message.replace(/^"" /,"").trim()),this.message)}_template(e,r){return t.template(this.value,e,r||this.code,this.state,this.prefs)}},t.path=function(e){let t="";for(const r of e)"object"!=typeof r&&("string"==typeof r?(t&&(t+="."),t+=r):t+="[".concat(r,"]"));return t},t.template=function(e,t,r,s,o){if(!t)return;if(a.isTemplate(t))return"root"!==r?t:null;let i=o.errors.language;return n.isResolvable(i)&&(i=i.resolve(e,s,o)),i&&t[i]&&void 0!==t[i][r]?t[i][r]:t[r]},t.label=function(e,r,s,n){if(e.label)return e.label;if(!s.errors.label)return"";let a=r.path;"key"===s.errors.label&&r.path.length>1&&(a=r.path.slice(-1));const o=t.path(a);return o||(t.template(null,s.messages,"root",r,s)||n&&t.template(null,n,"root",r,s)||"value")},t.process=function(e,r,s){if(!e)return null;const{override:n,message:a,details:o}=t.details(e);if(n)return n;if(s.errors.stack)return new t.ValidationError(a,o,r);const i=Error.stackTraceLimit;Error.stackTraceLimit=0;const l=new t.ValidationError(a,o,r);return Error.stackTraceLimit=i,l},t.details=function(e,t={}){let r=[];const s=[];for(const n of e){if(n instanceof Error){if(!1!==t.override)return{override:n};const e=n.toString();r.push(e),s.push({message:e,type:"override",context:{error:n}});continue}const e=n.toString();r.push(e),s.push({message:e,path:n.path.filter(e=>"object"!=typeof e),type:n.code,context:n.local})}return r.length>1&&(r=[...new Set(r)]),{message:r.join(". "),details:s}},t.ValidationError=class extends Error{constructor(e,t,r){super(e),this._original=r,this.details=t}static isError(e){return e instanceof t.ValidationError}},t.ValidationError.prototype.isJoi=!0,t.ValidationError.prototype.name="ValidationError",t.ValidationError.prototype.annotate=s.error},function(e,t,r){"use strict";function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,s)}return r}function n(e){for(var t=1;t=0&&this.refs.push({ancestor:t.ancestor-s,root:t.root});else t.isRef(e)&&"value"===e.type&&e.ancestor-s>=0&&this.refs.push({ancestor:e.ancestor-s,root:e.root}),u=u||r(7),u.isTemplate(e)&&this.register(e.refs(),s)}get length(){return this.refs.length}clone(){const e=new t.Manager;return e.refs=i(this.refs),e}reset(){this.refs=[]}roots(){return this.refs.filter(e=>!e.ancestor).map(e=>e.root)}}},function(e,t,r){"use strict";const s=r(0),n={};e.exports=function(e,t,r){if(!1===t||null==t)return e;"string"==typeof(r=r||{})&&(r={separator:r});const a=Array.isArray(t);s(!a||!r.separator,"Separator option no valid for array-based chain");const o=a?t:t.split(r.separator||".");let i=e;for(let e=0;e{const t=f.create(e,this._settings);return s.push(t),e=>t.resolve(...e)};try{var a=new l.Parser(e,{reference:n,functions:m.functions,constants:m.constants})}catch(t){throw t.message='Invalid template variable "'.concat(e,'" fails due to: ').concat(t.message),t}if(a.single){if("reference"===a.single.type){const e=s[0];return{ref:e,raw:t,refs:s,wrapped:r||"local"===e.type&&"label"===e.key}}return m.stringify(a.single.value)}return{formula:a,raw:t,refs:s}}toString(){return this.source}},m.Template.prototype[c.symbols.template]=!0,m.Template.prototype.isImmutable=!0,m.encode=function(e){return e.replace(/\\(\{+)/g,(e,t)=>m.opens.slice(0,t.length)).replace(/\\(\}+)/g,(e,t)=>m.closes.slice(0,t.length))},m.decode=function(e){return e.replace(/\u0000/g,"{").replace(/\u0001/g,"}")},m.split=function(e){const t=[];let r="";for(let s=0;s ").concat(s.toString()));e=t}if(!Array.isArray(e))return e.toString();let u="";for(const s of e)u=u+(u.length?", ":"")+m.stringify(s,t,r,a,o,i);return c?u:m.wrap(u,a.errors.wrap.array)},m.constants={true:!0,false:!1,null:null,second:1e3,minute:6e4,hour:36e5,day:864e5},m.functions={if:(e,t,r)=>e?t:r,msg(e){const[t,r,s,n,a]=this,o=a.messages;if(!o)return"";const i=u.template(t,o[0],e,r,s)||u.template(t,o[1],e,r,s);return i?i.render(t,r,s,n,a):""},number:e=>"number"==typeof e?e:"string"==typeof e?parseFloat(e):"boolean"==typeof e?e?1:0:e instanceof Date?e.getTime():null}},function(e,t,r){"use strict";const s=r(0),n=r(1),a=r(5),o={};t.schema=function(e,t,r={}){n.assertOptions(r,["appendPath","override"]);try{return o.schema(e,t,r)}catch(e){throw r.appendPath&&void 0!==e.path&&(e.message="".concat(e.message," (").concat(e.path,")")),e}},o.schema=function(e,t,r){s(void 0!==t,"Invalid undefined schema"),Array.isArray(t)&&(s(t.length,"Invalid empty array schema"),1===t.length&&(t=t[0]));const a=(t,...s)=>!1!==r.override?t.valid(e.override,...s):t.valid(...s);if(o.simple(t))return a(e,t);if("function"==typeof t)return e.custom(t);if(s("object"==typeof t,"Invalid schema content:",typeof t),n.isResolvable(t))return a(e,t);if(n.isSchema(t))return t;if(Array.isArray(t)){for(const r of t)if(!o.simple(r))return e.alternatives().try(...t);return a(e,...t)}return t instanceof RegExp?e.string().regex(t):t instanceof Date?a(e.date(),t):(s(Object.getPrototypeOf(t)===Object.getPrototypeOf({}),"Schema can only contain plain objects"),e.object().keys(t))},t.ref=function(e,t){return a.isRef(e)?e:a.create(e,t)},t.compile=function(e,r,a={}){n.assertOptions(a,["legacy"]);const i=r&&r[n.symbols.any];if(i)return s(a.legacy||i.version===n.version,"Cannot mix different versions of joi schemas:",i.version,n.version),r;if("object"!=typeof r||!a.legacy)return t.schema(e,r,{appendPath:!0});const l=o.walk(r);return l?l.compile(l.root,r):t.schema(e,r,{appendPath:!0})},o.walk=function(e){if("object"!=typeof e)return null;if(Array.isArray(e)){for(const t of e){const e=o.walk(t);if(e)return e}return null}const t=e[n.symbols.any];if(t)return{root:e[t.root],compile:t.compile};s(Object.getPrototypeOf(e)===Object.getPrototypeOf({}),"Schema can only contain plain objects");for(const t in e){const r=o.walk(e[t]);if(r)return r}return null},o.simple=function(e){return null===e||["boolean","string","number"].includes(typeof e)},t.when=function(e,r,i){if(void 0===i&&(s(r&&"object"==typeof r,"Missing options"),i=r,r=a.create(".")),Array.isArray(i)&&(i={switch:i}),n.assertOptions(i,["is","not","then","otherwise","switch","break"]),n.isSchema(r))return s(void 0===i.is,'"is" can not be used with a schema condition'),s(void 0===i.not,'"not" can not be used with a schema condition'),s(void 0===i.switch,'"switch" can not be used with a schema condition'),o.condition(e,{is:r,then:i.then,otherwise:i.otherwise,break:i.break});if(s(a.isRef(r)||"string"==typeof r,"Invalid condition:",r),s(void 0===i.not||void 0===i.is,'Cannot combine "is" with "not"'),void 0===i.switch){let l=i;void 0!==i.not&&(l={is:i.not,then:i.otherwise,otherwise:i.then,break:i.break});let c=void 0!==l.is?e.$_compile(l.is):e.$_root.invalid(null,!1,0,"").required();return s(void 0!==l.then||void 0!==l.otherwise,'options must have at least one of "then", "otherwise", or "switch"'),s(void 0===l.break||void 0===l.then||void 0===l.otherwise,"Cannot specify then, otherwise, and break all together"),void 0===i.is||a.isRef(i.is)||n.isSchema(i.is)||(c=c.required()),o.condition(e,{ref:t.ref(r),is:c,then:l.then,otherwise:l.otherwise,break:l.break})}s(Array.isArray(i.switch),'"switch" must be an array'),s(void 0===i.is,'Cannot combine "switch" with "is"'),s(void 0===i.not,'Cannot combine "switch" with "not"'),s(void 0===i.then,'Cannot combine "switch" with "then"');const l={ref:t.ref(r),switch:[],break:i.break};for(let t=0;t=0;--r)if(a[r].isSame(e,t))return!0;a.push(new n.SeenEntry(e,t));try{return!!n.isDeepEqualObj(i,e,t,r,a)}finally{a.pop()}},n.getSharedType=function(e,t,r){if(r)return Object.getPrototypeOf(e)!==Object.getPrototypeOf(t)?n.mismatched:s.getInternalProto(e);const a=s.getInternalProto(e);return a!==s.getInternalProto(t)?n.mismatched:a},n.valueOf=function(e){const t=e.valueOf;if(void 0===t)return e;try{return t.call(e)}catch(e){return e}},n.hasOwnEnumerableProperty=function(e,t){return Object.prototype.propertyIsEnumerable.call(e,t)},n.isSetSimpleEqual=function(e,t){for(const r of Set.prototype.values.call(e))if(!Set.prototype.has.call(t,r))return!1;return!0},n.isDeepEqualObj=function(e,t,r,a,o){const{isDeepEqual:i,valueOf:l,hasOwnEnumerableProperty:c}=n,{keys:u,getOwnPropertySymbols:f}=Object;if(e===s.array){if(!a.part){if(t.length!==r.length)return!1;for(let e=0;ed.assert(e,t,!1,r),build(e){return s("function"==typeof u.build,"Manifest functionality disabled"),u.build(this,e)},checkPreferences(e){o.checkPreferences(e)},compile(e,t){return i.compile(this,e,t)},defaults(e){s("function"==typeof e,"modifier must be a function");const t=Object.assign({},this);for(const r of t._types){const n=e(t[r]());s(o.isSchema(n),"modifier must return a valid schema object"),t[r]=function(...e){return d.generate(this,n,e)}}return t},expression:(...e)=>new m(...e),extend(...e){o.verifyFlat(e,"extend"),p=p||r(16),s(e.length,"You need to provide at least one extension"),this.assert(e,p.extensions);const t=Object.assign({},this);t._types=new Set(t._types);for(let r of e){"function"==typeof r&&(r=r(t)),this.assert(r,p.extension);const e=d.expandExtension(r,t);for(const r of e){s(void 0===t[r.type]||t._types.has(r.type),"Cannot override name",r.type);const e=r.base||this.any(),n=c.type(e,r);t._types.add(r.type),t[r.type]=function(...e){return d.generate(this,n,e)}}}return t},isError:l.ValidationError.isError,isExpression:m.isTemplate,isRef:f.isRef,isSchema:o.isSchema,in:(...e)=>f.in(...e),override:o.symbols.override,ref:(...e)=>f.create(...e),types(){const e={};for(const t of this._types)e[t]=this[t]();for(const t in d.aliases)e[t]=this[t]();return e}},d.assert=function(e,t,r,s){const a=s[0]instanceof Error||"string"==typeof s[0]?s[0]:null,i=a?s[1]:s[0],c=t.validate(e,o.preferences({errors:{stack:!0}},i||{}));let u=c.error;if(!u)return c.value;if(a instanceof Error)throw a;const f=r&&"function"==typeof u.annotate?u.annotate():u.message;throw u instanceof l.ValidationError==!1&&(u=n(u)),u.message=a?"".concat(a," ").concat(f):f,u},d.generate=function(e,t,r){return s(e,"Must be invoked on a Joi instance."),t.$_root=e,t._definition.args&&r.length?t._definition.args(t,...r):t},d.expandExtension=function(e,t){if("string"==typeof e.type)return[e];const r=[];for(const s of t._types)if(e.type.test(s)){const n=Object.assign({},e);n.type=s,n.base=t[s](),r.push(n)}return r},e.exports=d.root()},function(e,t,r){"use strict";const s=r(28);e.exports=class extends Error{constructor(e){super(e.filter(e=>""!==e).map(e=>"string"==typeof e?e:e instanceof Error?e.message:s(e)).join(" ")||"Unknown error"),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t.assert)}}},function(e,t,r){"use strict";const s={};t=e.exports={array:Array.prototype,buffer:!1,date:Date.prototype,error:Error.prototype,generic:Object.prototype,map:Map.prototype,promise:Promise.prototype,regex:RegExp.prototype,set:Set.prototype,weakMap:WeakMap.prototype,weakSet:WeakSet.prototype},s.typeMap=new Map([["[object Error]",t.error],["[object Map]",t.map],["[object Promise]",t.promise],["[object Set]",t.set],["[object WeakMap]",t.weakMap],["[object WeakSet]",t.weakSet]]),t.getInternalProto=function(e){if(Array.isArray(e))return t.array;if(e instanceof Date)return t.date;if(e instanceof RegExp)return t.regex;if(e instanceof Error)return t.error;const r=Object.prototype.toString.call(e);return s.typeMap.get(r)||t.generic}},function(e,t,r){"use strict";t.keys=function(e,t={}){return!1!==t.symbols?Reflect.ownKeys(e):Object.getOwnPropertyNames(e)}},function(e,t,r){"use strict";const s=r(0),n=r(2),a=r(1),o={max:1e3,supported:new Set(["undefined","boolean","number","string"])};t.provider={provision:e=>new o.Cache(e)},o.Cache=class{constructor(e={}){a.assertOptions(e,["max"]),s(void 0===e.max||e.max&&e.max>0&&isFinite(e.max),"Invalid max cache size"),this._max=e.max||o.max,this._map=new Map,this._list=new o.List}get length(){return this._map.size}set(e,t){if(null!==e&&!o.supported.has(typeof e))return;let r=this._map.get(e);if(r)return r.value=t,void this._list.first(r);r=this._list.unshift({key:e,value:t}),this._map.set(e,r),this._compact()}get(e){const t=this._map.get(e);if(t)return this._list.first(t),n(t.value)}_compact(){if(this._map.size>this._max){const e=this._list.pop();this._map.delete(e.key)}}},o.List=class{constructor(){this.tail=null,this.head=null}unshift(e){return e.next=null,e.prev=this.head,this.head&&(this.head.next=e),this.head=e,this.tail||(this.tail=e),e}first(e){e!==this.head&&(this._remove(e),this.unshift(e))}pop(){return this._remove(this.tail)}_remove(e){const{next:t,prev:r}=e;return t.prev=r,r&&(r.next=t),e===this.tail&&(this.tail=t),e.prev=null,e.next=null,e}}},function(e,t,r){"use strict";const s=r(11),n={};n.wrap=s.string().min(1).max(2).allow(!1),t.preferences=s.object({allowUnknown:s.boolean(),abortEarly:s.boolean(),artifacts:s.boolean(),cache:s.boolean(),context:s.object(),convert:s.boolean(),dateFormat:s.valid("date","iso","string","time","utc"),debug:s.boolean(),errors:{escapeHtml:s.boolean(),label:s.valid("path","key",!1),language:[s.string(),s.object().ref()],render:s.boolean(),stack:s.boolean(),wrap:{label:n.wrap,array:n.wrap}},externals:s.boolean(),messages:s.object(),noDefaults:s.boolean(),nonEnumerables:s.boolean(),presence:s.valid("required","optional","forbidden"),skipFunctions:s.boolean(),stripUnknown:s.object({arrays:s.boolean(),objects:s.boolean()}).or("arrays","objects").allow(!0,!1),warnings:s.boolean()}).strict(),n.nameRx=/^[a-zA-Z0-9]\w*$/,n.rule=s.object({alias:s.array().items(s.string().pattern(n.nameRx)).single(),args:s.array().items(s.string(),s.object({name:s.string().pattern(n.nameRx).required(),ref:s.boolean(),assert:s.alternatives([s.function(),s.object().schema()]).conditional("ref",{is:!0,then:s.required()}),normalize:s.function(),message:s.string().when("assert",{is:s.function(),then:s.required()})})),convert:s.boolean(),manifest:s.boolean(),method:s.function().allow(!1),multi:s.boolean(),validate:s.function()}),t.extension=s.object({type:s.alternatives([s.string(),s.object().regex()]).required(),args:s.function(),cast:s.object().pattern(n.nameRx,s.object({from:s.function().maxArity(1).required(),to:s.function().minArity(1).maxArity(2).required()})),base:s.object().schema().when("type",{is:s.object().regex(),then:s.forbidden()}),coerce:[s.function().maxArity(3),s.object({method:s.function().maxArity(3).required(),from:s.array().items(s.string()).single()})],flags:s.object().pattern(n.nameRx,s.object({setter:s.string(),default:s.any()})),manifest:{build:s.function().arity(2)},messages:[s.object(),s.string()],modifiers:s.object().pattern(n.nameRx,s.function().minArity(1).maxArity(2)),overrides:s.object().pattern(n.nameRx,s.function()),prepare:s.function().maxArity(3),rebuild:s.function().arity(1),rules:s.object().pattern(n.nameRx,n.rule),terms:s.object().pattern(n.nameRx,s.object({init:s.array().allow(null).required(),manifest:s.object().pattern(/.+/,[s.valid("schema","single"),s.object({mapped:s.object({from:s.string().required(),to:s.string().required()}).required()})])})),validate:s.function().maxArity(3)}).strict(),t.extensions=s.array().items(s.object(),s.function().arity(1)).strict(),n.desc={buffer:s.object({buffer:s.string()}),func:s.object({function:s.function().required(),options:{literal:!0}}),override:s.object({override:!0}),ref:s.object({ref:s.object({type:s.valid("value","global","local"),path:s.array().required(),separator:s.string().length(1).allow(!1),ancestor:s.number().min(0).integer().allow("root"),map:s.array().items(s.array().length(2)).min(1),adjust:s.function(),iterables:s.boolean(),in:s.boolean(),render:s.boolean()}).required()}),regex:s.object({regex:s.string().min(3)}),special:s.object({special:s.valid("deep").required()}),template:s.object({template:s.string().required(),options:s.object()}),value:s.object({value:s.alternatives([s.object(),s.array()]).required()})},n.desc.entity=s.alternatives([s.array().items(s.link("...")),s.boolean(),s.function(),s.number(),s.string(),n.desc.buffer,n.desc.func,n.desc.ref,n.desc.regex,n.desc.special,n.desc.template,n.desc.value,s.link("/")]),n.desc.values=s.array().items(null,s.boolean(),s.function(),s.number().allow(1/0,-1/0),s.string().allow(""),s.symbol(),n.desc.buffer,n.desc.func,n.desc.override,n.desc.ref,n.desc.regex,n.desc.template,n.desc.value),n.desc.messages=s.object().pattern(/.+/,[s.string(),n.desc.template,s.object().pattern(/.+/,[s.string(),n.desc.template])]),t.description=s.object({type:s.string().required(),flags:s.object({cast:s.string(),default:s.any(),description:s.string(),empty:s.link("/"),failover:n.desc.entity,id:s.string(),label:s.string(),only:!0,presence:["optional","required","forbidden"],result:["raw","strip"],strip:s.boolean(),unit:s.string()}).unknown(),preferences:{allowUnknown:s.boolean(),abortEarly:s.boolean(),artifacts:s.boolean(),cache:s.boolean(),convert:s.boolean(),dateFormat:["date","iso","string","time","utc"],errors:{escapeHtml:s.boolean(),label:["path","key"],language:[s.string(),n.desc.ref],wrap:{label:n.wrap,array:n.wrap}},externals:s.boolean(),messages:n.desc.messages,noDefaults:s.boolean(),nonEnumerables:s.boolean(),presence:["required","optional","forbidden"],skipFunctions:s.boolean(),stripUnknown:s.object({arrays:s.boolean(),objects:s.boolean()}).or("arrays","objects").allow(!0,!1),warnings:s.boolean()},allow:n.desc.values,invalid:n.desc.values,rules:s.array().min(1).items({name:s.string().required(),args:s.object().min(1),keep:s.boolean(),message:[s.string(),n.desc.messages],warn:s.boolean()}),keys:s.object().pattern(/.*/,s.link("/")),link:n.desc.ref}).pattern(/^[a-z]\w*$/,s.any())},function(e,t,r){"use strict";const s=r(0),n=r(2),a=r(1),o=r(9),i={};t.type=function(e,t){const r=Object.getPrototypeOf(e),l=n(r),c=e._assign(Object.create(l)),u=Object.assign({},t);delete u.base,l._definition=u;const f=r._definition||{};u.messages=o.merge(f.messages,u.messages),u.properties=Object.assign({},f.properties,u.properties),c.type=u.type,u.flags=Object.assign({},f.flags,u.flags);const m=Object.assign({},f.terms);if(u.terms)for(const e in u.terms){const t=u.terms[e];s(void 0===c.$_terms[e],"Invalid term override for",u.type,e),c.$_terms[e]=t.init,m[e]=t}u.terms=m,u.args||(u.args=f.args),u.prepare=i.prepare(u.prepare,f.prepare),u.coerce&&("function"==typeof u.coerce&&(u.coerce={method:u.coerce}),u.coerce.from&&!Array.isArray(u.coerce.from)&&(u.coerce={method:u.coerce.method,from:[].concat(u.coerce.from)})),u.coerce=i.coerce(u.coerce,f.coerce),u.validate=i.validate(u.validate,f.validate);const h=Object.assign({},f.rules);if(u.rules)for(const e in u.rules){const t=u.rules[e];s("object"==typeof t,"Invalid rule definition for",u.type,e);let r=t.method;if(void 0===r&&(r=function(){return this.$_addRule(e)}),r&&(s(!l[e],"Rule conflict in",u.type,e),l[e]=r),s(!h[e],"Rule conflict in",u.type,e),h[e]=t,t.alias){const e=[].concat(t.alias);for(const r of e)l[r]=t.method}t.args&&(t.argsByName=new Map,t.args=t.args.map(e=>("string"==typeof e&&(e={name:e}),s(!t.argsByName.has(e.name),"Duplicated argument name",e.name),a.isSchema(e.assert)&&(e.assert=e.assert.strict().label(e.name)),t.argsByName.set(e.name,e),e)))}u.rules=h;const p=Object.assign({},f.modifiers);if(u.modifiers)for(const e in u.modifiers){s(!l[e],"Rule conflict in",u.type,e);const t=u.modifiers[e];s("function"==typeof t,"Invalid modifier definition for",u.type,e);const r=function(t){return this.rule({[e]:t})};l[e]=r,p[e]=t}if(u.modifiers=p,u.overrides){l._super=r,c.$_super={};for(const e in u.overrides)s(r[e],"Cannot override missing",e),u.overrides[e][a.symbols.parent]=r[e],c.$_super[e]=r[e].bind(c);Object.assign(l,u.overrides)}u.cast=Object.assign({},f.cast,u.cast);const d=Object.assign({},f.manifest,u.manifest);return d.build=i.build(u.manifest&&u.manifest.build,f.manifest&&f.manifest.build),u.manifest=d,u.rebuild=i.rebuild(u.rebuild,f.rebuild),c},i.build=function(e,t){return e&&t?function(r,s){return t(e(r,s),s)}:e||t},i.coerce=function(e,t){return e&&t?{from:e.from&&t.from?[...new Set([...e.from,...t.from])]:null,method(r,s){let n;if((!t.from||t.from.includes(typeof r))&&(n=t.method(r,s),n)){if(n.errors||void 0===n.value)return n;r=n.value}if(!e.from||e.from.includes(typeof r)){const t=e.method(r,s);if(t)return t}return n}}:e||t},i.prepare=function(e,t){return e&&t?function(r,s){const n=e(r,s);if(n){if(n.errors||void 0===n.value)return n;r=n.value}return t(r,s)||n}:e||t},i.rebuild=function(e,t){return e&&t?function(r){t(r),e(r)}:e||t},i.validate=function(e,t){return e&&t?function(r,s){const n=t(r,s);if(n){if(n.errors&&(!Array.isArray(n.errors)||n.errors.length))return n;r=n.value}return e(r,s)||n}:e||t}},function(e,t){},function(e,t){},function(e,t,r){"use strict";const s=r(0),n=r(2),a=r(14),o={};e.exports=o.merge=function(e,t,r){if(s(e&&"object"==typeof e,"Invalid target value: must be an object"),s(null==t||"object"==typeof t,"Invalid source value: must be null, undefined, or an object"),!t)return e;if(r=Object.assign({nullOverride:!0,mergeArrays:!0},r),Array.isArray(t)){s(Array.isArray(e),"Cannot merge array onto an object"),r.mergeArrays||(e.length=0);for(let s=0;se.keys(t),validate(e,{schema:t,error:r,state:s,prefs:n}){if(!e||typeof e!==t.$_property("typeof")||Array.isArray(e))return{value:e,errors:r("object.base",{type:t.$_property("typeof")})};if(!(t.$_terms.renames||t.$_terms.dependencies||t.$_terms.keys||t.$_terms.patterns||t.$_terms.externals))return;e=h.clone(e,n);const a=[];if(t.$_terms.renames&&!h.rename(t,e,s,n,a))return{value:e,errors:a};if(!t.$_terms.keys&&!t.$_terms.patterns&&!t.$_terms.dependencies)return{value:e,errors:a};const o=new Set(Object.keys(e));if(t.$_terms.keys){const r=[e,...s.ancestors];for(const i of t.$_terms.keys){const t=i.key,l=e[t];o.delete(t);const c=s.localize([...s.path,t],r,i),u=i.schema.$_validate(l,c,n);if(u.errors){if(n.abortEarly)return{value:e,errors:u.errors};a.push(...u.errors)}else"strip"===i.schema._flags.result||void 0===u.value&&void 0!==l?delete e[t]:void 0!==u.value&&(e[t]=u.value)}}if(o.size||t._flags._hasPatternMatch){const r=h.unknown(t,e,o,a,s,n);if(r)return r}if(t.$_terms.dependencies)for(const r of t.$_terms.dependencies){if(r.key&&void 0===r.key.resolve(e,s,n,null,{shadow:!1}))continue;const o=h.dependencies[r.rel](t,r,e,s,n);if(o){const r=t.$_createError(o.code,e,o.context,s,n);if(n.abortEarly)return{value:e,errors:r};a.push(r)}}return{value:e,errors:a}},rules:{and:{method(...e){return l.verifyFlat(e,"and"),h.dependency(this,"and",null,e)}},append:{method(e){return null==e||0===Object.keys(e).length?this:this.keys(e)}},assert:{method(e,t,r){m.isTemplate(e)||(e=c.ref(e)),n(void 0===r||"string"==typeof r,"Message must be a string"),t=this.$_compile(t,{appendPath:!0});const s=this.$_addRule({name:"assert",args:{subject:e,schema:t,message:r}});return s.$_mutateRegister(e),s.$_mutateRegister(t),s},validate(e,{error:t,prefs:r,state:s},{subject:n,schema:a,message:o}){const i=n.resolve(e,s,r),l=f.isRef(n)?n.absolute(s):[];return a.$_match(i,s.localize(l,[e,...s.ancestors],a),r)?e:t("object.assert",{subject:n,message:o})},args:["subject","schema","message"],multi:!0},instance:{method(e,t){return n("function"==typeof e,"constructor must be a function"),t=t||e.name,this.$_addRule({name:"instance",args:{constructor:e,name:t}})},validate:(e,t,{constructor:r,name:s})=>e instanceof r?e:t.error("object.instance",{type:s,value:e}),args:["constructor","name"]},keys:{method(e){n(void 0===e||"object"==typeof e,"Object schema must be a valid object"),n(!l.isSchema(e),"Object schema cannot be a joi schema");const t=this.clone();if(e)if(Object.keys(e).length){t.$_terms.keys=t.$_terms.keys?t.$_terms.keys.filter(t=>!e.hasOwnProperty(t.key)):new h.Keys;for(const r in e)l.tryWithPath(()=>t.$_terms.keys.push({key:r,schema:this.$_compile(e[r])}),r)}else t.$_terms.keys=new h.Keys;else t.$_terms.keys=null;return t.$_mutateRebuild()}},length:{method(e){return this.$_addRule({name:"length",args:{limit:e},operator:"="})},validate:(e,t,{limit:r},{name:s,operator:n,args:a})=>l.compare(Object.keys(e).length,r,n)?e:t.error("object."+s,{limit:a.limit,value:e}),args:[{name:"limit",ref:!0,assert:l.limit,message:"must be a positive integer"}]},max:{method(e){return this.$_addRule({name:"max",method:"length",args:{limit:e},operator:"<="})}},min:{method(e){return this.$_addRule({name:"min",method:"length",args:{limit:e},operator:">="})}},nand:{method(...e){return l.verifyFlat(e,"nand"),h.dependency(this,"nand",null,e)}},or:{method(...e){return l.verifyFlat(e,"or"),h.dependency(this,"or",null,e)}},oxor:{method(...e){return h.dependency(this,"oxor",null,e)}},pattern:{method(e,t,r={}){const s=e instanceof RegExp;s||(e=this.$_compile(e,{appendPath:!0})),n(void 0!==t,"Invalid rule"),l.assertOptions(r,["fallthrough","matches"]),s&&n(!e.flags.includes("g")&&!e.flags.includes("y"),"pattern should not use global or sticky mode"),t=this.$_compile(t,{appendPath:!0});const a=this.clone();a.$_terms.patterns=a.$_terms.patterns||[];const o={[s?"regex":"schema"]:e,rule:t};return r.matches&&(o.matches=this.$_compile(r.matches),"array"!==o.matches.type&&(o.matches=o.matches.$_root.array().items(o.matches)),a.$_mutateRegister(o.matches),a.$_setFlag("_hasPatternMatch",!0,{clone:!1})),r.fallthrough&&(o.fallthrough=!0),a.$_terms.patterns.push(o),a.$_mutateRegister(t),a}},ref:{method(){return this.$_addRule("ref")},validate:(e,t)=>f.isRef(e)?e:t.error("object.refType",{value:e})},regex:{method(){return this.$_addRule("regex")},validate:(e,t)=>e instanceof RegExp?e:t.error("object.regex",{value:e})},rename:{method(e,t,r={}){n("string"==typeof e||e instanceof RegExp,"Rename missing the from argument"),n("string"==typeof t||t instanceof m,"Invalid rename to argument"),n(t!==e,"Cannot rename key to same name:",e),l.assertOptions(r,["alias","ignoreUndefined","override","multiple"]);const a=this.clone();a.$_terms.renames=a.$_terms.renames||[];for(const t of a.$_terms.renames)n(t.from!==e,"Cannot rename the same key multiple times");return t instanceof m&&a.$_mutateRegister(t),a.$_terms.renames.push({from:e,to:t,options:s(h.renameDefaults,r)}),a}},schema:{method(e="any"){return this.$_addRule({name:"schema",args:{type:e}})},validate:(e,t,{type:r})=>!l.isSchema(e)||"any"!==r&&e.type!==r?t.error("object.schema",{type:r}):e},unknown:{method(e){return this.$_setFlag("unknown",!1!==e)}},with:{method(e,t,r={}){return h.dependency(this,"with",e,t,r)}},without:{method(e,t,r={}){return h.dependency(this,"without",e,t,r)}},xor:{method(...e){return l.verifyFlat(e,"xor"),h.dependency(this,"xor",null,e)}}},overrides:{default(e,t){return void 0===e&&(e=l.symbols.deepDefault),this.$_parent("default",e,t)}},rebuild(e){if(e.$_terms.keys){const t=new o.Sorter;for(const r of e.$_terms.keys)l.tryWithPath(()=>t.add(r,{after:r.schema.$_rootReferences(),group:r.key}),r.key);e.$_terms.keys=new h.Keys(...t.nodes)}},manifest:{build(e,t){if(t.keys&&(e=e.keys(t.keys)),t.dependencies)for(const{rel:r,key:s=null,peers:n,options:a}of t.dependencies)e=h.dependency(e,r,s,n,a);if(t.patterns)for(const{regex:r,schema:s,rule:n,fallthrough:a,matches:o}of t.patterns)e=e.pattern(r||s,n,{fallthrough:a,matches:o});if(t.renames)for(const{from:r,to:s,options:n}of t.renames)e=e.rename(r,s,n);return e}},messages:{"object.and":"{{#label}} contains {{#presentWithLabels}} without its required peers {{#missingWithLabels}}","object.assert":'{{#label}} is invalid because {if(#subject.key, `"` + #subject.key + `" failed to ` + (#message || "pass the assertion test"), #message || "the assertion failed")}',"object.base":"{{#label}} must be of type {{#type}}","object.instance":"{{#label}} must be an instance of {{:#type}}","object.length":'{{#label}} must have {{#limit}} key{if(#limit == 1, "", "s")}',"object.max":'{{#label}} must have less than or equal to {{#limit}} key{if(#limit == 1, "", "s")}',"object.min":'{{#label}} must have at least {{#limit}} key{if(#limit == 1, "", "s")}',"object.missing":"{{#label}} must contain at least one of {{#peersWithLabels}}","object.nand":"{{:#mainWithLabel}} must not exist simultaneously with {{#peersWithLabels}}","object.oxor":"{{#label}} contains a conflict between optional exclusive peers {{#peersWithLabels}}","object.pattern.match":"{{#label}} keys failed to match pattern requirements","object.refType":"{{#label}} must be a Joi reference","object.regex":"{{#label}} must be a RegExp object","object.rename.multiple":"{{#label}} cannot rename {{:#from}} because multiple renames are disabled and another key was already renamed to {{:#to}}","object.rename.override":"{{#label}} cannot rename {{:#from}} because override is disabled and target {{:#to}} exists","object.schema":"{{#label}} must be a Joi schema of {{#type}} type","object.unknown":"{{#label}} is not allowed","object.with":"{{:#mainWithLabel}} missing required peer {{:#peerWithLabel}}","object.without":"{{:#mainWithLabel}} conflict with forbidden peer {{:#peerWithLabel}}","object.xor":"{{#label}} contains a conflict between exclusive peers {{#peersWithLabels}}"}}),h.clone=function(e,t){if("object"==typeof e){if(t.nonEnumerables)return a(e,{shallow:!0});const r=Object.create(Object.getPrototypeOf(e));return Object.assign(r,e),r}const r=function(...t){return e.apply(this,t)};return r.prototype=a(e.prototype),Object.defineProperty(r,"name",{value:e.name,writable:!1}),Object.defineProperty(r,"length",{value:e.length,writable:!1}),Object.assign(r,e),r},h.dependency=function(e,t,r,s,a){n(null===r||"string"==typeof r,t,"key must be a strings"),a||(a=s.length>1&&"object"==typeof s[s.length-1]?s.pop():{}),l.assertOptions(a,["separator"]),s=[].concat(s);const o=l.default(a.separator,"."),i=[];for(const e of s)n("string"==typeof e,t,"peers must be a string or a reference"),i.push(c.ref(e,{separator:o,ancestor:0,prefix:!1}));null!==r&&(r=c.ref(r,{separator:o,ancestor:0,prefix:!1}));const u=e.clone();return u.$_terms.dependencies=u.$_terms.dependencies||[],u.$_terms.dependencies.push(new h.Dependency(t,r,i,s)),u},h.dependencies={and(e,t,r,s,n){const a=[],o=[],i=t.peers.length;for(const e of t.peers)void 0===e.resolve(r,s,n,null,{shadow:!1})?a.push(e.key):o.push(e.key);if(a.length!==i&&o.length!==i)return{code:"object.and",context:{present:o,presentWithLabels:h.keysToLabels(e,o),missing:a,missingWithLabels:h.keysToLabels(e,a)}}},nand(e,t,r,s,n){const a=[];for(const e of t.peers)void 0!==e.resolve(r,s,n,null,{shadow:!1})&&a.push(e.key);if(a.length!==t.peers.length)return;const o=t.paths[0],i=t.paths.slice(1);return{code:"object.nand",context:{main:o,mainWithLabel:h.keysToLabels(e,o),peers:i,peersWithLabels:h.keysToLabels(e,i)}}},or(e,t,r,s,n){for(const e of t.peers)if(void 0!==e.resolve(r,s,n,null,{shadow:!1}))return;return{code:"object.missing",context:{peers:t.paths,peersWithLabels:h.keysToLabels(e,t.paths)}}},oxor(e,t,r,s,n){const a=[];for(const e of t.peers)void 0!==e.resolve(r,s,n,null,{shadow:!1})&&a.push(e.key);if(!a.length||1===a.length)return;const o={peers:t.paths,peersWithLabels:h.keysToLabels(e,t.paths)};return o.present=a,o.presentWithLabels=h.keysToLabels(e,a),{code:"object.oxor",context:o}},with(e,t,r,s,n){for(const a of t.peers)if(void 0===a.resolve(r,s,n,null,{shadow:!1}))return{code:"object.with",context:{main:t.key.key,mainWithLabel:h.keysToLabels(e,t.key.key),peer:a.key,peerWithLabel:h.keysToLabels(e,a.key)}}},without(e,t,r,s,n){for(const a of t.peers)if(void 0!==a.resolve(r,s,n,null,{shadow:!1}))return{code:"object.without",context:{main:t.key.key,mainWithLabel:h.keysToLabels(e,t.key.key),peer:a.key,peerWithLabel:h.keysToLabels(e,a.key)}}},xor(e,t,r,s,n){const a=[];for(const e of t.peers)void 0!==e.resolve(r,s,n,null,{shadow:!1})&&a.push(e.key);if(1===a.length)return;const o={peers:t.paths,peersWithLabels:h.keysToLabels(e,t.paths)};return 0===a.length?{code:"object.missing",context:o}:(o.present=a,o.presentWithLabels=h.keysToLabels(e,a),{code:"object.xor",context:o})}},h.keysToLabels=function(e,t){return Array.isArray(t)?t.map(t=>e.$_mapLabels(t)):e.$_mapLabels(t)},h.rename=function(e,t,r,s,n){const a={};for(const o of e.$_terms.renames){const i=[],l="string"!=typeof o.from;if(l)for(const e in t){if(void 0===t[e]&&o.options.ignoreUndefined)continue;if(e===o.to)continue;const r=o.from.exec(e);r&&i.push({from:e,to:o.to,match:r})}else!Object.prototype.hasOwnProperty.call(t,o.from)||void 0===t[o.from]&&o.options.ignoreUndefined||i.push(o);for(const c of i){const i=c.from;let u=c.to;if(u instanceof m&&(u=u.render(t,r,s,c.match)),i!==u){if(!o.options.multiple&&a[u]&&(n.push(e.$_createError("object.rename.multiple",t,{from:i,to:u,pattern:l},r,s)),s.abortEarly))return!1;if(Object.prototype.hasOwnProperty.call(t,u)&&!o.options.override&&!a[u]&&(n.push(e.$_createError("object.rename.override",t,{from:i,to:u,pattern:l},r,s)),s.abortEarly))return!1;void 0===t[i]?delete t[u]:t[u]=t[i],a[u]=!0,o.options.alias||delete t[i]}}}return!0},h.unknown=function(e,t,r,s,n,a){if(e.$_terms.patterns){let o=!1;const i=e.$_terms.patterns.map(e=>{if(e.matches)return o=!0,[]}),l=[t,...n.ancestors];for(const o of r){const c=t[o],u=[...n.path,o];for(let f=0;f256)return n.code("DOMAIN_TOO_LONG");if(!!a.nonAsciiRx.test(e)){if(!1===t.allowUnicode)return n.code("DOMAIN_INVALID_UNICODE_CHARS");e=e.normalize("NFC")}if(a.domainControlRx.test(e))return n.code("DOMAIN_INVALID_CHARS");e=a.punycode(e);const r=t.minDomainSegments||a.minDomainSegments,s=e.split(".");if(s.lengtht.maxDomainSegments)return n.code("DOMAIN_SEGMENTS_COUNT_MAX");const o=t.tlds;if(o){const e=s[s.length-1].toLowerCase();if(o.deny&&o.deny.has(e)||o.allow&&!o.allow.has(e))return n.code("DOMAIN_FORBIDDEN_TLDS")}for(let e=0;e63)return n.code("DOMAIN_LONG_SEGMENT");if(e=1,"scheme must have at least 1 scheme specified");const a=[];for(let e=0;e=256)return"&#"+e+";";const r=e.toString(16).padStart(2,"0");return"&#x".concat(r,";")},s.isSafe=function(e){return void 0!==s.safeCharCodes[e]},s.namedHtml={38:"&",60:"<",62:">",34:""",160:" ",162:"¢",163:"£",164:"¤",169:"©",174:"®"},s.safeCharCodes=function(){const e={};for(let t=32;t<123;++t)(t>=97||t>=65&&t<=90||t>=48&&t<=57||32===t||46===t||44===t||45===t||58===t||95===t)&&(e[t]=null);return e}()},function(e,t,r){"use strict";const s={operators:["!","^","*","/","%","+","-","<","<=",">",">=","==","!=","&&","||","??"],operatorCharacters:["!","^","*","/","%","+","-","<","=",">","&","|","?"],operatorsOrder:[["^"],["*","/","%"],["+","-"],["<","<=",">",">="],["==","!="],["&&"],["||","??"]],operatorsPrefix:["!","n"],literals:{'"':'"',"`":"`","'":"'","[":"]"},numberRx:/^(?:[0-9]*\.?[0-9]*){1}$/,tokenRx:/^[\w\$\#\.\@\:\{\}]+$/,symbol:Symbol("formula"),settings:Symbol("settings")};t.Parser=class{constructor(e,t={}){if(!t[s.settings]&&t.constants)for(const e in t.constants){const r=t.constants[e];if(null!==r&&!["boolean","number","string"].includes(typeof r))throw new Error("Formula constant ".concat(e," contains invalid ").concat(typeof r," value type"))}this.settings=t[s.settings]?t:Object.assign({[s.settings]:!0,constants:{},functions:{}},t),this.single=null,this._parts=null,this._parse(e)}_parse(e){let r=[],n="",a=0,o=!1;const i=e=>{if(a)throw new Error("Formula missing closing parenthesis");const i=r.length?r[r.length-1]:null;if(o||n||e){if(i&&"reference"===i.type&&")"===e)return i.type="function",i.value=this._subFormula(n,i.value),void(n="");if(")"===e){const e=new t.Parser(n,this.settings);r.push({type:"segment",value:e})}else if(o){if("]"===o)return r.push({type:"reference",value:n}),void(n="");r.push({type:"literal",value:n})}else if(s.operatorCharacters.includes(n))i&&"operator"===i.type&&s.operators.includes(i.value+n)?i.value+=n:r.push({type:"operator",value:n});else if(n.match(s.numberRx))r.push({type:"constant",value:parseFloat(n)});else if(void 0!==this.settings.constants[n])r.push({type:"constant",value:this.settings.constants[n]});else{if(!n.match(s.tokenRx))throw new Error("Formula contains invalid token: ".concat(n));r.push({type:"reference",value:n})}n=""}};for(const t of e)o?t===o?(i(),o=!1):n+=t:a?"("===t?(n+=t,++a):")"===t?(--a,a?n+=t:i(t)):n+=t:t in s.literals?o=s.literals[t]:"("===t?(i(),++a):s.operatorCharacters.includes(t)?(i(),n=t,i()):" "!==t?n+=t:i();i(),r=r.map((e,t)=>"operator"!==e.type||"-"!==e.value||t&&"operator"!==r[t-1].type?e:{type:"operator",value:"n"});let l=!1;for(const e of r){if("operator"===e.type){if(s.operatorsPrefix.includes(e.value))continue;if(!l)throw new Error("Formula contains an operator in invalid position");if(!s.operators.includes(e.value))throw new Error("Formula contains an unknown operator ".concat(e.value))}else if(l)throw new Error("Formula missing expected operator");l=!l}if(!l)throw new Error("Formula contains invalid trailing operator");1===r.length&&["reference","literal","constant"].includes(r[0].type)&&(this.single={type:"reference"===r[0].type?"reference":"value",value:r[0].value}),this._parts=r.map(e=>{if("operator"===e.type)return s.operatorsPrefix.includes(e.value)?e:e.value;if("reference"!==e.type)return e.value;if(this.settings.tokenRx&&!this.settings.tokenRx.test(e.value))throw new Error("Formula contains invalid reference ".concat(e.value));return this.settings.reference?this.settings.reference(e.value):s.reference(e.value)})}_subFormula(e,r){const n=this.settings.functions[r];if("function"!=typeof n)throw new Error("Formula contains unknown function ".concat(r));let a=[];if(e){let t="",n=0,o=!1;const i=()=>{if(!t)throw new Error("Formula contains function ".concat(r," with invalid arguments ").concat(e));a.push(t),t=""};for(let r=0;rnew t.Parser(e,this.settings)),function(e){const t=[];for(const r of a)t.push(r.evaluate(e));return n.call(e,...t)}}evaluate(e){const t=this._parts.slice();for(let r=t.length-2;r>=0;--r){const n=t[r];if(n&&"operator"===n.type){const a=t[r+1];t.splice(r+1,1);const o=s.evaluate(a,e);t[r]=s.single(n.value,o)}}return s.operatorsOrder.forEach(r=>{for(let n=1;n":return t>r;case">=":return t>=r;case"==":return t===r;case"!=":return t!==r;case"&&":return t&&r;case"||":return t||r}return null},s.exists=function(e){return null!=e}},function(e,t){},function(e,t,r){"use strict";const s=r(0),n=r(3),a=r(1),o=r(8),i=r(4),l=r(5),c={};e.exports=n.extend({type:"alternatives",flags:{match:{default:"any"}},terms:{matches:{init:[],register:l.toSibling}},args:(e,...t)=>1===t.length&&Array.isArray(t[0])?e.try(...t[0]):e.try(...t),validate(e,t){const{schema:r,error:s,state:n,prefs:a}=t;if(r._flags.match){let t,o=0;for(let s=0;s"is"!==r.path[0]?t.label(e):void 0,ref:!1})}},rebuild(e){e.$_modify({each:t=>{a.isSchema(t)&&"array"===t.type&&e.$_setFlag("_arrayItems",!0,{clone:!1})}})},manifest:{build(e,t){if(t.matches)for(const r of t.matches){const{schema:t,ref:s,is:n,not:a,then:o,otherwise:i}=r;e=t?e.try(t):s?e.conditional(s,{is:n,then:o,not:a,otherwise:i,switch:r.switch}):e.conditional(n,{then:o,otherwise:i})}return e}},messages:{"alternatives.all":"{{#label}} does not match all of the required types","alternatives.any":"{{#label}} does not match any of the allowed types","alternatives.match":"{{#label}} does not match any of the allowed types","alternatives.one":"{{#label}} matches more than one allowed type","alternatives.types":"{{#label}} must be one of {{#types}}"}}),c.errors=function(e,{error:t,state:r}){if(!e.length)return{errors:t("alternatives.any")};if(1===e.length)return{errors:e[0].reports};const s=new Set,n=[];for(const{reports:a,schema:o}of e){if(a.length>1)return c.unmatched(e,t);const l=a[0];if(l instanceof i.Report==!1)return c.unmatched(e,t);if(l.state.path.length!==r.path.length){n.push({type:o.type,report:l});continue}if("any.only"===l.code){for(const e of l.local.valids)s.add(e);continue}const[u,f]=l.code.split(".");"base"===f?s.add(u):n.push({type:o.type,report:l})}return n.length?1===n.length?{errors:n[0].report}:c.unmatched(e,t):{errors:t("alternatives.types",{types:[...s]})}},c.unmatched=function(e,t){const r=[];for(const t of e)r.push(...t.reports);return{errors:t("alternatives.match",i.details(r,{override:!1}))}}},function(e,t,r){"use strict";const s=r(0),n=r(2),a=r(10),o=r(20),i=r(15),l=r(1),c=r(8),u=r(4),f=r(17),m=r(18),h=r(9),p=r(35),d=r(5),g=r(19),y=r(36),b=r(21),v={Base:class{constructor(e){this.type=e,this.$_root=null,this._definition={},this._reset()}_reset(){this._ids=new p.Ids,this._preferences=null,this._refs=new d.Manager,this._cache=null,this._valids=null,this._invalids=null,this._flags={},this._rules=[],this._singleRules=new Map,this.$_terms={},this.$_temp={ruleset:null,whens:{}}}describe(){return s("function"==typeof m.describe,"Manifest functionality disabled"),m.describe(this)}allow(...e){return l.verifyFlat(e,"allow"),this._values(e,"_valids")}alter(e){s(e&&"object"==typeof e&&!Array.isArray(e),"Invalid targets argument"),s(!this._inRuleset(),"Cannot set alterations inside a ruleset");const t=this.clone();t.$_terms.alterations=t.$_terms.alterations||[];for(const r in e){const n=e[r];s("function"==typeof n,"Alteration adjuster for",r,"must be a function"),t.$_terms.alterations.push({target:r,adjuster:n})}return t.$_temp.ruleset=!1,t}artifact(e){return s(void 0!==e,"Artifact cannot be undefined"),s(!this._cache,"Cannot set an artifact with a rule cache"),this.$_setFlag("artifact",e)}cast(e){return s(!1===e||"string"==typeof e,"Invalid to value"),s(!1===e||this._definition.cast[e],"Type",this.type,"does not support casting to",e),this.$_setFlag("cast",!1===e?void 0:e)}default(e,t){return this._default("default",e,t)}description(e){return s(e&&"string"==typeof e,"Description must be a non-empty string"),this.$_setFlag("description",e)}empty(e){const t=this.clone();return void 0!==e&&(e=t.$_compile(e,{override:!1})),t.$_setFlag("empty",e,{clone:!1})}error(e){return s(e,"Missing error"),s(e instanceof Error||"function"==typeof e,"Must provide a valid Error object or a function"),this.$_setFlag("error",e)}example(e,t={}){return s(void 0!==e,"Missing example"),l.assertOptions(t,["override"]),this._inner("examples",e,{single:!0,override:t.override})}external(e,t){return"object"==typeof e&&(s(!t,"Cannot combine options with description"),t=e.description,e=e.method),s("function"==typeof e,"Method must be a function"),s(void 0===t||t&&"string"==typeof t,"Description must be a non-empty string"),this._inner("externals",{method:e,description:t},{single:!0})}failover(e,t){return this._default("failover",e,t)}forbidden(){return this.presence("forbidden")}id(e){return e?(s("string"==typeof e,"id must be a non-empty string"),s(/^[^\.]+$/.test(e),"id cannot contain period character"),this.$_setFlag("id",e)):this.$_setFlag("id",void 0)}invalid(...e){return this._values(e,"_invalids")}label(e){return s(e&&"string"==typeof e,"Label name must be a non-empty string"),this.$_setFlag("label",e)}meta(e){return s(void 0!==e,"Meta cannot be undefined"),this._inner("metas",e,{single:!0})}note(...e){s(e.length,"Missing notes");for(const t of e)s(t&&"string"==typeof t,"Notes must be non-empty strings");return this._inner("notes",e)}only(e=!0){return s("boolean"==typeof e,"Invalid mode:",e),this.$_setFlag("only",e)}optional(){return this.presence("optional")}prefs(e){s(e,"Missing preferences"),s(void 0===e.context,"Cannot override context"),s(void 0===e.externals,"Cannot override externals"),s(void 0===e.warnings,"Cannot override warnings"),s(void 0===e.debug,"Cannot override debug"),l.checkPreferences(e);const t=this.clone();return t._preferences=l.preferences(t._preferences,e),t}presence(e){return s(["optional","required","forbidden"].includes(e),"Unknown presence mode",e),this.$_setFlag("presence",e)}raw(e=!0){return this.$_setFlag("result",e?"raw":void 0)}result(e){return s(["raw","strip"].includes(e),"Unknown result mode",e),this.$_setFlag("result",e)}required(){return this.presence("required")}strict(e){const t=this.clone(),r=void 0!==e&&!e;return t._preferences=l.preferences(t._preferences,{convert:r}),t}strip(e=!0){return this.$_setFlag("result",e?"strip":void 0)}tag(...e){s(e.length,"Missing tags");for(const t of e)s(t&&"string"==typeof t,"Tags must be non-empty strings");return this._inner("tags",e)}unit(e){return s(e&&"string"==typeof e,"Unit name must be a non-empty string"),this.$_setFlag("unit",e)}valid(...e){l.verifyFlat(e,"valid");const t=this.allow(...e);return t.$_setFlag("only",!!t._valids,{clone:!1}),t}when(e,t){const r=this.clone();r.$_terms.whens||(r.$_terms.whens=[]);const n=c.when(r,e,t);if(!["any","link"].includes(r.type)){const e=n.is?[n]:n.switch;for(const t of e)s(!t.then||"any"===t.then.type||t.then.type===r.type,"Cannot combine",r.type,"with",t.then&&t.then.type),s(!t.otherwise||"any"===t.otherwise.type||t.otherwise.type===r.type,"Cannot combine",r.type,"with",t.otherwise&&t.otherwise.type)}return r.$_terms.whens.push(n),r.$_mutateRebuild()}cache(e){s(!this._inRuleset(),"Cannot set caching inside a ruleset"),s(!this._cache,"Cannot override schema cache"),s(void 0===this._flags.artifact,"Cannot cache a rule with an artifact");const t=this.clone();return t._cache=e||i.provider.provision(),t.$_temp.ruleset=!1,t}clone(){const e=Object.create(Object.getPrototypeOf(this));return this._assign(e)}concat(e){s(l.isSchema(e),"Invalid schema object"),s("any"===this.type||"any"===e.type||e.type===this.type,"Cannot merge type",this.type,"with another type:",e.type),s(!this._inRuleset(),"Cannot concatenate onto a schema with open ruleset"),s(!e._inRuleset(),"Cannot concatenate a schema with open ruleset");let t=this.clone();if("any"===this.type&&"any"!==e.type){const r=e.clone();for(const e of Object.keys(t))"type"!==e&&(r[e]=t[e]);t=r}t._ids.concat(e._ids),t._refs.register(e,d.toSibling),t._preferences=t._preferences?l.preferences(t._preferences,e._preferences):e._preferences,t._valids=b.merge(t._valids,e._valids,e._invalids),t._invalids=b.merge(t._invalids,e._invalids,e._valids);for(const r of e._singleRules.keys())t._singleRules.has(r)&&(t._rules=t._rules.filter(e=>e.keep||e.name!==r),t._singleRules.delete(r));for(const r of e._rules)e._definition.rules[r.method].multi||t._singleRules.set(r.name,r),t._rules.push(r);if(t._flags.empty&&e._flags.empty){t._flags.empty=t._flags.empty.concat(e._flags.empty);const r=Object.assign({},e._flags);delete r.empty,o(t._flags,r)}else if(e._flags.empty){t._flags.empty=e._flags.empty;const r=Object.assign({},e._flags);delete r.empty,o(t._flags,r)}else o(t._flags,e._flags);for(const r in e.$_terms){const s=e.$_terms[r];s?t.$_terms[r]?t.$_terms[r]=t.$_terms[r].concat(s):t.$_terms[r]=s.slice():t.$_terms[r]||(t.$_terms[r]=s)}return this.$_root._tracer&&this.$_root._tracer._combine(t,[this,e]),t.$_mutateRebuild()}extend(e){return s(!e.base,"Cannot extend type with another base"),f.type(this,e)}extract(e){return e=Array.isArray(e)?e:e.split("."),this._ids.reach(e)}fork(e,t){s(!this._inRuleset(),"Cannot fork inside a ruleset");let r=this;for(let s of[].concat(e))s=Array.isArray(s)?s:s.split("."),r=r._ids.fork(s,t,r);return r.$_temp.ruleset=!1,r}rule(e){const t=this._definition;l.assertOptions(e,Object.keys(t.modifiers)),s(!1!==this.$_temp.ruleset,"Cannot apply rules to empty ruleset or the last rule added does not support rule properties");const r=null===this.$_temp.ruleset?this._rules.length-1:this.$_temp.ruleset;s(r>=0&&rt.tailor(e),ref:!1}),t.$_temp.ruleset=!1,t.$_mutateRebuild()}tracer(){return g.location?g.location(this):this}validate(e,t){return y.entry(e,this,t)}validateAsync(e,t){return y.entryAsync(e,this,t)}$_addRule(e){"string"==typeof e&&(e={name:e}),s(e&&"object"==typeof e,"Invalid options"),s(e.name&&"string"==typeof e.name,"Invalid rule name");for(const t in e)s("_"!==t[0],"Cannot set private rule properties");const t=Object.assign({},e);t._resolve=[],t.method=t.method||t.name;const r=this._definition.rules[t.method],n=t.args;s(r,"Unknown rule",t.method);const a=this.clone();if(n){s(1===Object.keys(n).length||Object.keys(n).length===this._definition.rules[t.name].args.length,"Invalid rule definition for",this.type,t.name);for(const e in n){let o=n[e];if(void 0!==o){if(r.argsByName){const i=r.argsByName.get(e);if(i.ref&&l.isResolvable(o))t._resolve.push(e),a.$_mutateRegister(o);else if(i.normalize&&(o=i.normalize(o),n[e]=o),i.assert){const t=l.validateArg(o,e,i);s(!t,t,"or reference")}}n[e]=o}else delete n[e]}}return r.multi||(a._ruleRemove(t.name,{clone:!1}),a._singleRules.set(t.name,t)),!1===a.$_temp.ruleset&&(a.$_temp.ruleset=null),r.priority?a._rules.unshift(t):a._rules.push(t),a}$_compile(e,t){return c.schema(this.$_root,e,t)}$_createError(e,t,r,s,n,a={}){const o=!1!==a.flags?this._flags:{},i=a.messages?h.merge(this._definition.messages,a.messages):this._definition.messages;return new u.Report(e,t,r,o,i,s,n)}$_getFlag(e){return this._flags[e]}$_getRule(e){return this._singleRules.get(e)}$_mapLabels(e){return e=Array.isArray(e)?e:e.split("."),this._ids.labels(e)}$_match(e,t,r,s){(r=Object.assign({},r)).abortEarly=!0,r._externals=!1,t.snapshot();const n=!y.validate(e,this,t,r,s).errors;return t.restore(),n}$_modify(e){return l.assertOptions(e,["each","once","ref","schema"]),p.schema(this,e)||this}$_mutateRebuild(){s(!this._inRuleset(),"Cannot add this rule inside a ruleset"),this._refs.reset(),this._ids.reset();return this.$_modify({each:(e,{source:t,name:r,path:s,key:n})=>{const a=this._definition[t][r]&&this._definition[t][r].register;!1!==a&&this.$_mutateRegister(e,{family:a,key:n})}}),this._definition.rebuild&&this._definition.rebuild(this),this.$_temp.ruleset=!1,this}$_mutateRegister(e,{family:t,key:r}={}){this._refs.register(e,t),this._ids.register(e,{key:r})}$_property(e){return this._definition.properties[e]}$_reach(e){return this._ids.reach(e)}$_rootReferences(){return this._refs.roots()}$_setFlag(e,t,r={}){s("_"===e[0]||!this._inRuleset(),"Cannot set flag inside a ruleset");const n=this._definition.flags[e]||{};if(a(t,n.default)&&(t=void 0),a(t,this._flags[e]))return this;const o=!1!==r.clone?this.clone():this;return void 0!==t?(o._flags[e]=t,o.$_mutateRegister(t)):delete o._flags[e],"_"!==e[0]&&(o.$_temp.ruleset=!1),o}$_parent(e,...t){return this[e][l.symbols.parent].call(this,...t)}$_validate(e,t,r){return y.validate(e,this,t,r)}_assign(e){e.type=this.type,e.$_root=this.$_root,e.$_temp=Object.assign({},this.$_temp),e.$_temp.whens={},e._ids=this._ids.clone(),e._preferences=this._preferences,e._valids=this._valids&&this._valids.clone(),e._invalids=this._invalids&&this._invalids.clone(),e._rules=this._rules.slice(),e._singleRules=n(this._singleRules,{shallow:!0}),e._refs=this._refs.clone(),e._flags=Object.assign({},this._flags),e._cache=null,e.$_terms={};for(const t in this.$_terms)e.$_terms[t]=this.$_terms[t]?this.$_terms[t].slice():null;e.$_super={};for(const t in this.$_super)e.$_super[t]=this._super[t].bind(e);return e}_bare(){const e=this.clone();e._reset();const t=e._definition.terms;for(const r in t){const s=t[r];e.$_terms[r]=s.init}return e.$_mutateRebuild()}_default(e,t,r={}){l.assertOptions(r,"literal"),s(void 0!==t,"Missing",e,"value"),s("function"==typeof t||!r.literal,"Only function value supports literal option"),"function"==typeof t&&r.literal&&(t={[l.symbols.literal]:!0,literal:t});return this.$_setFlag(e,t)}_generate(e,t,r){if(!this.$_terms.whens)return{schema:this};const s=[],n=[];for(let a=0;ac)break}const a=n.join(", ");if(t.mainstay.tracer.debug(t,"rule","when",a),!a)return{schema:this};if(!t.mainstay.tracer.active&&this.$_temp.whens[a])return{schema:this.$_temp.whens[a],id:a};let o=this;this._definition.generate&&(o=this._definition.generate(this,e,t,r));for(const e of s)o=o.concat(e);return this.$_root._tracer&&this.$_root._tracer._combine(o,[this,...s]),this.$_temp.whens[a]=o,{schema:o,id:a}}_inner(e,t,r={}){s(!this._inRuleset(),"Cannot set ".concat(e," inside a ruleset"));const n=this.clone();return n.$_terms[e]&&!r.override||(n.$_terms[e]=[]),r.single?n.$_terms[e].push(t):n.$_terms[e].push(...t),n.$_temp.ruleset=!1,n}_inRuleset(){return null!==this.$_temp.ruleset&&!1!==this.$_temp.ruleset}_ruleRemove(e,t={}){if(!this._singleRules.has(e))return this;const r=!1!==t.clone?this.clone():this;r._singleRules.delete(e);const s=[];for(let t=0;t{if(r===(e._flags.id||t))return s},ref:!1});return n?n.$_mutateRebuild():e},t.schema=function(e,t){let r;for(const s in e._flags){if("_"===s[0])continue;const n=c.scan(e._flags[s],{source:"flags",name:s},t);void 0!==n&&(r=r||e.clone(),r._flags[s]=n)}for(let s=0;st.$_createError(n,e,a,o||r,s),o={original:e,prefs:s,schema:t,state:r,error:a,errorsArray:u.errorsArray,warn:(e,t,s)=>r.mainstay.warnings.push(a(e,t,s)),message:(n,a)=>t.$_createError("custom",e,a,r,s,{messages:n})};r.mainstay.tracer.entry(t,r);const l=t._definition;if(l.prepare&&void 0!==e&&s.convert){const t=l.prepare(e,o);if(t){if(r.mainstay.tracer.value(r,"prepare",e,t.value),t.errors)return u.finalize(t.value,[].concat(t.errors),o);e=t.value}}if(l.coerce&&void 0!==e&&s.convert&&(!l.coerce.from||l.coerce.from.includes(typeof e))){const t=l.coerce.method(e,o);if(t){if(r.mainstay.tracer.value(r,"coerced",e,t.value),t.errors)return u.finalize(t.value,[].concat(t.errors),o);e=t.value}}const c=t._flags.empty;c&&c.$_match(u.trim(e,t),r.nest(c),i.defaults)&&(r.mainstay.tracer.value(r,"empty",e,void 0),e=void 0);const f=n.presence||t._flags.presence||(t._flags._endedSwitch?null:s.presence);if(void 0===e){if("forbidden"===f)return u.finalize(e,null,o);if("required"===f)return u.finalize(e,[t.$_createError("any.required",e,null,r,s)],o);if("optional"===f){if(t._flags.default!==i.symbols.deepDefault)return u.finalize(e,null,o);r.mainstay.tracer.value(r,"default",e,{}),e={}}}else if("forbidden"===f)return u.finalize(e,[t.$_createError("any.unknown",e,null,r,s)],o);const m=[];if(t._valids){const n=t._valids.get(e,r,s,t._flags.insensitive);if(n)return s.convert&&(r.mainstay.tracer.value(r,"valids",e,n.value),e=n.value),r.mainstay.tracer.filter(t,r,"valid",n),u.finalize(e,null,o);if(t._flags.only){const n=t.$_createError("any.only",e,{valids:t._valids.values({display:!0})},r,s);if(s.abortEarly)return u.finalize(e,[n],o);m.push(n)}}if(t._invalids){const n=t._invalids.get(e,r,s,t._flags.insensitive);if(n){r.mainstay.tracer.filter(t,r,"invalid",n);const a=t.$_createError("any.invalid",e,{invalids:t._invalids.values({display:!0})},r,s);if(s.abortEarly)return u.finalize(e,[a],o);m.push(a)}}if(l.validate){const t=l.validate(e,o);if(t&&(r.mainstay.tracer.value(r,"base",e,t.value),e=t.value,t.errors)){if(!Array.isArray(t.errors))return m.push(t.errors),u.finalize(e,m,o);if(t.errors.length)return m.push(...t.errors),u.finalize(e,m,o)}}return t._rules.length?u.rules(e,m,o):u.finalize(e,m,o)},u.rules=function(e,t,r){const{schema:s,state:n,prefs:a}=r;for(const o of s._rules){const l=s._definition.rules[o.method];if(l.convert&&a.convert){n.mainstay.tracer.log(s,n,"rule",o.name,"full");continue}let c,f=o.args;if(o._resolve.length){f=Object.assign({},f);for(const t of o._resolve){const r=l.argsByName.get(t),o=f[t].resolve(e,n,a),u=r.normalize?r.normalize(o):o,m=i.validateArg(u,null,r);if(m){c=s.$_createError("any.ref",o,{arg:t,ref:f[t],reason:m},n,a);break}f[t]=u}}c=c||l.validate(e,r,f,o);const m=u.rule(c,o);if(m.errors){if(n.mainstay.tracer.log(s,n,"rule",o.name,"error"),o.warn){n.mainstay.warnings.push(...m.errors);continue}if(a.abortEarly)return u.finalize(e,m.errors,r);t.push(...m.errors)}else n.mainstay.tracer.log(s,n,"rule",o.name,"pass"),n.mainstay.tracer.value(n,"rule",e,m.value,o.name),e=m.value}return u.finalize(e,t,r)},u.rule=function(e,t){return e instanceof l.Report?(u.error(e,t),{errors:[e],value:null}):Array.isArray(e)&&e[i.symbols.errors]?(e.forEach(e=>u.error(e,t)),{errors:e,value:null}):{errors:null,value:e}},u.error=function(e,t){return t.message&&e._setTemplate(t.message),e},u.finalize=function(e,t,r){t=t||[];const{schema:n,state:a,prefs:o}=r;if(t.length){const s=u.default("failover",void 0,t,r);void 0!==s&&(a.mainstay.tracer.value(a,"failover",e,s),e=s,t=[])}if(t.length&&n._flags.error)if("function"==typeof n._flags.error){t=n._flags.error(t),Array.isArray(t)||(t=[t]);for(const e of t)s(e instanceof Error||e instanceof l.Report,"error() must return an Error object")}else t=[n._flags.error];if(void 0===e){const s=u.default("default",e,t,r);a.mainstay.tracer.value(a,"default",e,s),e=s}if(n._flags.cast&&void 0!==e){const t=n._definition.cast[n._flags.cast];if(t.from(e)){const s=t.to(e,r);a.mainstay.tracer.value(a,"cast",e,s,n._flags.cast),e=s}}if(n.$_terms.externals&&o.externals&&!1!==o._externals)for(const{method:e}of n.$_terms.externals)a.mainstay.externals.push({method:e,path:a.path,label:l.label(n._flags,a,o)});const i={value:e,errors:t.length?t:null};return n._flags.result&&(i.value="strip"===n._flags.result?void 0:r.original,a.mainstay.tracer.value(a,n._flags.result,e,i.value),a.shadow(e,n._flags.result)),n._cache&&!1!==o.cache&&!n._refs.length&&n._cache.set(r.original,i),void 0===e||i.errors||void 0===n._flags.artifact||(a.mainstay.artifacts=a.mainstay.artifacts||new Map,a.mainstay.artifacts.has(n._flags.artifact)||a.mainstay.artifacts.set(n._flags.artifact,[]),a.mainstay.artifacts.get(n._flags.artifact).push(a.path)),i},u.prefs=function(e,t){const r=t===i.defaults;return r&&e._preferences[i.symbols.prefs]?e._preferences[i.symbols.prefs]:(t=i.preferences(t,e._preferences),r&&(e._preferences[i.symbols.prefs]=t),t)},u.default=function(e,t,r,s){const{schema:a,state:o,prefs:l}=s,c=a._flags[e];if(l.noDefaults||void 0===c)return t;if(o.mainstay.tracer.log(a,o,"rule",e,"full"),!c)return c;if("function"==typeof c){const t=c.length?[n(o.ancestors[0]),s]:[];try{return c(...t)}catch(t){return void r.push(a.$_createError("any.".concat(e),null,{error:t},o,l))}}return"object"!=typeof c?c:c[i.symbols.literal]?c.literal:i.isResolvable(c)?c.resolve(t,o,l):n(c)},u.trim=function(e,t){if("string"!=typeof e)return e;const r=t.$_getRule("trim");return r&&r.args.enabled?e.trim():e},u.ignore={active:!1,debug:a,entry:a,filter:a,log:a,resolve:a,value:a},u.errorsArray=function(){const e=[];return e[i.symbols.errors]=!0,e}},function(e,t,r){"use strict";e.exports=function(){}},function(e,t,r){"use strict";const s=r(2),n=r(6),a=r(1),o={value:Symbol("value")};e.exports=o.State=class{constructor(e,t,r){this.path=e,this.ancestors=t,this.mainstay=r.mainstay,this.schemas=r.schemas,this.debug=null}localize(e,t=null,r=null){const s=new o.State(e,t,this);return r&&s.schemas&&(s.schemas=[o.schemas(r),...s.schemas]),s}nest(e,t){const r=new o.State(this.path,this.ancestors,this);return r.schemas=r.schemas&&[o.schemas(e),...r.schemas],r.debug=t,r}shadow(e,t){this.mainstay.shadow=this.mainstay.shadow||new o.Shadow,this.mainstay.shadow.set(this.path,e,t)}snapshot(){this.mainstay.shadow&&(this._snapshot=s(this.mainstay.shadow.node(this.path)))}restore(){this.mainstay.shadow&&(this.mainstay.shadow.override(this.path,this._snapshot),this._snapshot=void 0)}},o.schemas=function(e){return a.isSchema(e)?{schema:e}:e},o.Shadow=class{constructor(){this._values=null}set(e,t,r){if(!e.length)return;if("strip"===r&&"number"==typeof e[e.length-1])return;this._values=this._values||new Map;let s=this._values;for(let t=0;tthis.$_compile(e[r]),r,{append:!0});t.$_terms.items.push(s)}return t.$_mutateRebuild()},validate(e,{schema:t,error:r,state:s,prefs:n,errorsArray:a}){const o=t.$_terms._requireds.slice(),l=t.$_terms.ordered.slice(),u=[...t.$_terms._inclusions,...o],f=!e[i.symbols.arraySingle];delete e[i.symbols.arraySingle];const m=a();let h=e.length;for(let a=0;a="})}},ordered:{method(...e){i.verifyFlat(e,"ordered");const t=this.$_addRule("items");for(let r=0;rthis.$_compile(e[r]),r,{append:!0});c.validateSingle(s,t),t.$_mutateRegister(s),t.$_terms.ordered.push(s)}return t.$_mutateRebuild()}},single:{method(e){const t=void 0===e||!!e;return s(!t||!this._flags._arrayItems,"Cannot specify single rule when array has array items"),this.$_setFlag("single",t)}},sort:{method(e={}){i.assertOptions(e,["by","order"]);const t={order:e.order||"ascending"};return e.by&&(t.by=l.ref(e.by,{ancestor:0}),s(!t.by.ancestor,"Cannot sort by ancestor")),this.$_addRule({name:"sort",args:{options:t}})},validate(e,{error:t,state:r,prefs:s,schema:n},{options:a}){const{value:o,errors:i}=c.sort(n,e,a,r,s);if(i)return i;for(let r=0;rnew Set(e)}},rebuild(e){e.$_terms._inclusions=[],e.$_terms._exclusions=[],e.$_terms._requireds=[];for(const t of e.$_terms.items)c.validateSingle(t,e),"required"===t._flags.presence?e.$_terms._requireds.push(t):"forbidden"===t._flags.presence?e.$_terms._exclusions.push(t):e.$_terms._inclusions.push(t);for(const t of e.$_terms.ordered)c.validateSingle(t,e)},manifest:{build:(e,t)=>(t.items&&(e=e.items(...t.items)),t.ordered&&(e=e.ordered(...t.ordered)),e)},messages:{"array.base":"{{#label}} must be an array","array.excludes":"{{#label}} contains an excluded value","array.hasKnown":"{{#label}} does not contain at least one required match for type {:#patternLabel}","array.hasUnknown":"{{#label}} does not contain at least one required match","array.includes":"{{#label}} does not match any of the allowed types","array.includesRequiredBoth":"{{#label}} does not contain {{#knownMisses}} and {{#unknownMisses}} other required value(s)","array.includesRequiredKnowns":"{{#label}} does not contain {{#knownMisses}}","array.includesRequiredUnknowns":"{{#label}} does not contain {{#unknownMisses}} required value(s)","array.length":"{{#label}} must contain {{#limit}} items","array.max":"{{#label}} must contain less than or equal to {{#limit}} items","array.min":"{{#label}} must contain at least {{#limit}} items","array.orderedLength":"{{#label}} must contain at most {{#limit}} items","array.sort":"{{#label}} must be sorted in {#order} order by {{#by}}","array.sort.mismatching":"{{#label}} cannot be sorted due to mismatching types","array.sort.unsupported":"{{#label}} cannot be sorted due to unsupported type {#type}","array.sparse":"{{#label}} must not be a sparse array item","array.unique":"{{#label}} contains a duplicate value"}}),c.fillMissedErrors=function(e,t,r,s,n,a){const o=[];let i=0;for(const e of r){const t=e._flags.label;t?o.push(t):++i}o.length?i?t.push(e.$_createError("array.includesRequiredBoth",s,{knownMisses:o,unknownMisses:i},n,a)):t.push(e.$_createError("array.includesRequiredKnowns",s,{knownMisses:o},n,a)):t.push(e.$_createError("array.includesRequiredUnknowns",s,{unknownMisses:i},n,a))},c.fillOrderedErrors=function(e,t,r,s,n,a){const o=[];for(const e of r)"required"===e._flags.presence&&o.push(e);o.length&&c.fillMissedErrors(e,t,o,s,n,a)},c.fastSplice=function(e,t){let r=t;for(;r{let f=c.compare(l,u,o,i);if(null!==f)return f;if(r.by&&(l=r.by.resolve(l,s,n),u=r.by.resolve(u,s,n)),f=c.compare(l,u,o,i),null!==f)return f;const m=typeof l;if(m!==typeof u)throw e.$_createError("array.sort.mismatching",t,null,s,n);if("number"!==m&&"string"!==m)throw e.$_createError("array.sort.unsupported",t,{type:m},s,n);return"number"===m?(l-u)*a:le?1:0},string:{from:i.isBool,to:(e,t)=>e?"true":"false"}},manifest:{build:(e,t)=>(t.truthy&&(e=e.truthy(...t.truthy)),t.falsy&&(e=e.falsy(...t.falsy)),e)},messages:{"boolean.base":"{{#label}} must be a boolean"}})},function(e,t,r){"use strict";const s=r(0),n=r(3),a=r(1),o=r(7),i={isDate:function(e){return e instanceof Date}};e.exports=n.extend({type:"date",coerce:{from:["number","string"],method:(e,{schema:t})=>({value:i.parse(e,t._flags.format)||e})},validate(e,{schema:t,error:r,prefs:s}){if(e instanceof Date&&!isNaN(e.getTime()))return;const n=t._flags.format;return s.convert&&n&&"string"==typeof e?{value:e,errors:r("date.format",{format:n})}:{value:e,errors:r("date.base")}},rules:{compare:{method:!1,validate(e,t,{date:r},{name:s,operator:n,args:o}){const i="now"===r?Date.now():r.getTime();return a.compare(e.getTime(),i,n)?e:t.error("date."+s,{limit:o.date,value:e})},args:[{name:"date",ref:!0,normalize:e=>"now"===e?e:i.parse(e),assert:e=>null!==e,message:"must have a valid date format"}]},format:{method(e){return s(["iso","javascript","unix"].includes(e),"Unknown date format",e),this.$_setFlag("format",e)}},greater:{method(e){return this.$_addRule({name:"greater",method:"compare",args:{date:e},operator:">"})}},iso:{method(){return this.format("iso")}},less:{method(e){return this.$_addRule({name:"less",method:"compare",args:{date:e},operator:"<"})}},max:{method(e){return this.$_addRule({name:"max",method:"compare",args:{date:e},operator:"<="})}},min:{method(e){return this.$_addRule({name:"min",method:"compare",args:{date:e},operator:">="})}},timestamp:{method(e="javascript"){return s(["javascript","unix"].includes(e),'"type" must be one of "javascript, unix"'),this.format(e)}}},cast:{number:{from:i.isDate,to:(e,t)=>e.getTime()},string:{from:i.isDate,to:(e,{prefs:t})=>o.date(e,t)}},messages:{"date.base":"{{#label}} must be a valid date","date.format":'{{#label}} must be in {msg("date.format." + #format) || #format} format',"date.greater":"{{#label}} must be greater than {{:#limit}}","date.less":"{{#label}} must be less than {{:#limit}}","date.max":"{{#label}} must be less than or equal to {{:#limit}}","date.min":"{{#label}} must be greater than or equal to {{:#limit}}","date.format.iso":"ISO 8601 date","date.format.javascript":"timestamp or number of milliseconds","date.format.unix":"timestamp or number of seconds"}}),i.parse=function(e,t){if(e instanceof Date)return e;if("string"!=typeof e&&(isNaN(e)||!isFinite(e)))return null;if(/^\s*$/.test(e))return null;if("iso"===t)return a.isIsoDate(e)?i.date(e.toString()):null;const r=e;if("string"==typeof e&&/^[+-]?\d+(\.\d+)?$/.test(e)&&(e=parseFloat(e)),t){if("javascript"===t)return i.date(1*e);if("unix"===t)return i.date(1e3*e);if("string"==typeof r)return null}return i.date(e)},i.date=function(e){const t=new Date(e);return isNaN(t.getTime())?null:t}},function(e,t,r){"use strict";const s=r(0),n=r(22);e.exports=n.extend({type:"function",properties:{typeof:"function"},rules:{arity:{method(e){return s(Number.isSafeInteger(e)&&e>=0,"n must be a positive integer"),this.$_addRule({name:"arity",args:{n:e}})},validate:(e,t,{n:r})=>e.length===r?e:t.error("function.arity",{n:r})},class:{method(){return this.$_addRule("class")},validate:(e,t)=>/^\s*class\s/.test(e.toString())?e:t.error("function.class",{value:e})},minArity:{method(e){return s(Number.isSafeInteger(e)&&e>0,"n must be a strict positive integer"),this.$_addRule({name:"minArity",args:{n:e}})},validate:(e,t,{n:r})=>e.length>=r?e:t.error("function.minArity",{n:r})},maxArity:{method(e){return s(Number.isSafeInteger(e)&&e>=0,"n must be a positive integer"),this.$_addRule({name:"maxArity",args:{n:e}})},validate:(e,t,{n:r})=>e.length<=r?e:t.error("function.maxArity",{n:r})}},messages:{"function.arity":"{{#label}} must have an arity of {{#n}}","function.class":"{{#label}} must be a class","function.maxArity":"{{#label}} must have an arity lesser or equal to {{#n}}","function.minArity":"{{#label}} must have an arity greater or equal to {{#n}}"}})},function(e,t,r){"use strict";const s=r(0),n=r(2),a=r(20),o=r(6),i={};e.exports=function(e,t,r={}){if(s(e&&"object"==typeof e,"Invalid defaults value: must be an object"),s(!t||!0===t||"object"==typeof t,"Invalid source value: must be true, falsy or an object"),s("object"==typeof r,"Invalid options: must be an object"),!t)return null;if(r.shallow)return i.applyToDefaultsWithShallow(e,t,r);const o=n(e);if(!0===t)return o;const l=void 0!==r.nullOverride&&r.nullOverride;return a(o,t,{nullOverride:l,mergeArrays:!1})},i.applyToDefaultsWithShallow=function(e,t,r){const l=r.shallow;s(Array.isArray(l),"Invalid keys");const c=new Map,u=!0===t?null:new Set;for(let r of l){r=Array.isArray(r)?r:r.split(".");const s=o(e,r);s&&"object"==typeof s?c.set(s,u&&o(t,r)||s):u&&u.add(r)}const f=n(e,{},c);if(!u)return f;for(const e of u)i.reachCopy(f,t,e);return a(f,t,{mergeArrays:!1,nullOverride:!1})},i.reachCopy=function(e,t,r){for(const e of r){if(!(e in t))return;t=t[e]}const s=t;let n=e;for(let e=0;ee.sort===t.sort?0:e.sorte.ref(t),validate(e,{schema:t,state:r,prefs:n}){s(t.$_terms.link,"Uninitialized link schema");const a=l.generate(t,e,r,n),o=t.$_terms.link[0].ref;return a.$_validate(e,r.nest(a,"link:".concat(o.display,":").concat(a.type)),n)},generate:(e,t,r,s)=>l.generate(e,t,r,s),rules:{ref:{method(e){s(!this.$_terms.link,"Cannot reinitialize schema"),e=o.ref(e),s("value"===e.type||"local"===e.type,"Invalid reference type:",e.type),s("local"===e.type||"root"===e.ancestor||e.ancestor>0,"Link cannot reference itself");const t=this.clone();return t.$_terms.link=[{ref:e}],t}},relative:{method(e=!0){return this.$_setFlag("relative",e)}}},overrides:{concat(e){s(this.$_terms.link,"Uninitialized link schema"),s(a.isSchema(e),"Invalid schema object"),s("link"!==e.type,"Cannot merge type link with another link");const t=this.clone();return t.$_terms.whens||(t.$_terms.whens=[]),t.$_terms.whens.push({concat:e}),t.$_mutateRebuild()}},manifest:{build:(e,t)=>(s(t.link,"Invalid link description missing link"),e.ref(t.link))}}),l.generate=function(e,t,r,s){let n=r.mainstay.links.get(e);if(n)return n._generate(t,r,s).schema;const a=e.$_terms.link[0].ref,{perspective:o,path:i}=l.perspective(a,r);l.assert(o,"which is outside of schema boundaries",a,e,r,s);try{n=i.length?o.$_reach(i):o}catch(t){l.assert(!1,"to non-existing schema",a,e,r,s)}return l.assert("link"!==n.type,"which is another link",a,e,r,s),e._flags.relative||r.mainstay.links.set(e,n),n._generate(t,r,s).schema},l.perspective=function(e,t){if("local"===e.type){for(const{schema:r,key:s}of t.schemas){if((r._flags.id||s)===e.path[0])return{perspective:r,path:e.path.slice(1)};if(r.$_terms.shared)for(const t of r.$_terms.shared)if(t._flags.id===e.path[0])return{perspective:t,path:e.path.slice(1)}}return{perspective:null,path:null}}return"root"===e.ancestor?{perspective:t.schemas[t.schemas.length-1].schema,path:e.path}:{perspective:t.schemas[e.ancestor]&&t.schemas[e.ancestor].schema,path:e.path}},l.assert=function(e,t,r,n,a,o){e||s(!1,'"'.concat(i.label(n._flags,a,o),'" contains link reference "').concat(r.display,'" ').concat(t))}},function(e,t,r){"use strict";const s=r(0),n=r(3),a=r(1),o={numberRx:/^\s*[+-]?(?:(?:\d+(?:\.\d*)?)|(?:\.\d+))(?:e([+-]?\d+))?\s*$/i,precisionRx:/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/};e.exports=n.extend({type:"number",flags:{unsafe:{default:!1}},coerce:{from:"string",method(e,{schema:t,error:r}){const s=e.match(o.numberRx);if(!s)return;e=e.trim();const n={value:parseFloat(e)};if(0===n.value&&(n.value=0),!t._flags.unsafe)if(e.match(/e/i)){if(o.normalizeExponent("".concat(n.value/Math.pow(10,s[1]),"e").concat(s[1]))!==o.normalizeExponent(e))return n.errors=r("number.unsafe"),n}else{const t=n.value.toString();if(t.match(/e/i))return n;if(t!==o.normalizeDecimal(e))return n.errors=r("number.unsafe"),n}return n}},validate(e,{schema:t,error:r,prefs:s}){if(e===1/0||e===-1/0)return{value:e,errors:r("number.infinity")};if(!a.isNumber(e))return{value:e,errors:r("number.base")};const n={value:e};if(s.convert){const e=t.$_getRule("precision");if(e){const t=Math.pow(10,e.args.limit);n.value=Math.round(n.value*t)/t}}return 0===n.value&&(n.value=0),!t._flags.unsafe&&(e>Number.MAX_SAFE_INTEGER||ea.compare(e,r,n)?e:t.error("number."+s,{limit:o.limit,value:e}),args:[{name:"limit",ref:!0,assert:a.isNumber,message:"must be a number"}]},greater:{method(e){return this.$_addRule({name:"greater",method:"compare",args:{limit:e},operator:">"})}},integer:{method(){return this.$_addRule("integer")},validate:(e,t)=>Math.trunc(e)-e==0?e:t.error("number.integer")},less:{method(e){return this.$_addRule({name:"less",method:"compare",args:{limit:e},operator:"<"})}},max:{method(e){return this.$_addRule({name:"max",method:"compare",args:{limit:e},operator:"<="})}},min:{method(e){return this.$_addRule({name:"min",method:"compare",args:{limit:e},operator:">="})}},multiple:{method(e){return this.$_addRule({name:"multiple",args:{base:e}})},validate:(e,t,{base:r},s)=>e%r==0?e:t.error("number.multiple",{multiple:s.args.base,value:e}),args:[{name:"base",ref:!0,assert:e=>"number"==typeof e&&isFinite(e)&&e>0,message:"must be a positive number"}],multi:!0},negative:{method(){return this.sign("negative")}},port:{method(){return this.$_addRule("port")},validate:(e,t)=>Number.isSafeInteger(e)&&e>=0&&e<=65535?e:t.error("number.port")},positive:{method(){return this.sign("positive")}},precision:{method(e){return s(Number.isSafeInteger(e),"limit must be an integer"),this.$_addRule({name:"precision",args:{limit:e}})},validate(e,t,{limit:r}){const s=e.toString().match(o.precisionRx);return Math.max((s[1]?s[1].length:0)-(s[2]?parseInt(s[2],10):0),0)<=r?e:t.error("number.precision",{limit:r,value:e})},convert:!0},sign:{method(e){return s(["negative","positive"].includes(e),"Invalid sign",e),this.$_addRule({name:"sign",args:{sign:e}})},validate:(e,t,{sign:r})=>"negative"===r&&e<0||"positive"===r&&e>0?e:t.error("number.".concat(r))},unsafe:{method(e=!0){return s("boolean"==typeof e,"enabled must be a boolean"),this.$_setFlag("unsafe",e)}}},cast:{string:{from:e=>"number"==typeof e,to:(e,t)=>e.toString()}},messages:{"number.base":"{{#label}} must be a number","number.greater":"{{#label}} must be greater than {{#limit}}","number.infinity":"{{#label}} cannot be infinity","number.integer":"{{#label}} must be an integer","number.less":"{{#label}} must be less than {{#limit}}","number.max":"{{#label}} must be less than or equal to {{#limit}}","number.min":"{{#label}} must be greater than or equal to {{#limit}}","number.multiple":"{{#label}} must be a multiple of {{#multiple}}","number.negative":"{{#label}} must be a negative number","number.port":"{{#label}} must be a valid port","number.positive":"{{#label}} must be a positive number","number.precision":"{{#label}} must have no more than {{#limit}} decimal places","number.unsafe":"{{#label}} must be a safe number"}}),o.normalizeExponent=function(e){return e.replace(/E/,"e").replace(/\.(\d*[1-9])?0+e/,".$1e").replace(/\.e/,"e").replace(/e\+/,"e").replace(/^\+/,"").replace(/^(-?)0+([1-9])/,"$1$2")},o.normalizeDecimal=function(e){return(e=e.replace(/^\+/,"").replace(/\.0*$/,"").replace(/^(-?)\.([^\.]*)$/,"$10.$2").replace(/^(-?)0+([0-9])/,"$1$2")).includes(".")&&e.endsWith("0")&&(e=e.replace(/0+$/,"")),"-0"===e?"0":e}},function(e,t,r){"use strict";const s=r(22);e.exports=s.extend({type:"object",cast:{map:{from:e=>e&&"object"==typeof e,to:(e,t)=>new Map(Object.entries(e))}}})},function(e,t,r){"use strict";function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,s)}return r}function n(e){for(var t=1;t"string"!=typeof e?{value:e,errors:t("string.base")}:""===e?{value:e,errors:t("string.empty")}:void 0,rules:{alphanum:{method(){return this.$_addRule("alphanum")},validate:(e,t)=>/^[a-zA-Z0-9]+$/.test(e)?e:t.error("string.alphanum")},base64:{method(e={}){return p.assertOptions(e,["paddingRequired","urlSafe"]),e=n({urlSafe:!1,paddingRequired:!0},e),o("boolean"==typeof e.paddingRequired,"paddingRequired must be boolean"),o("boolean"==typeof e.urlSafe,"urlSafe must be boolean"),this.$_addRule({name:"base64",args:{options:e}})},validate:(e,t,{options:r})=>d.base64Regex[r.paddingRequired][r.urlSafe].test(e)?e:t.error("string.base64")},case:{method(e){return o(["lower","upper"].includes(e),"Invalid case:",e),this.$_addRule({name:"case",args:{direction:e}})},validate:(e,t,{direction:r})=>"lower"===r&&e===e.toLocaleLowerCase()||"upper"===r&&e===e.toLocaleUpperCase()?e:t.error("string.".concat(r,"case")),convert:!0},creditCard:{method(){return this.$_addRule("creditCard")},validate(e,t){let r=e.length,s=0,n=1;for(;r--;){const t=e.charAt(r)*n;s+=t-9*(t>9),n^=3}return s>0&&s%10==0?e:t.error("string.creditCard")}},dataUri:{method(e={}){return p.assertOptions(e,["paddingRequired"]),e=n({paddingRequired:!0},e),o("boolean"==typeof e.paddingRequired,"paddingRequired must be boolean"),this.$_addRule({name:"dataUri",args:{options:e}})},validate(e,t,{options:r}){const s=e.match(d.dataUriRegex);if(s){if(!s[2])return e;if("base64"!==s[2])return e;if(d.base64Regex[r.paddingRequired].false.test(s[3]))return e}return t.error("string.dataUri")}},domain:{method(e){e&&p.assertOptions(e,["allowUnicode","maxDomainSegments","minDomainSegments","tlds"]);const t=d.addressOptions(e);return this.$_addRule({name:"domain",args:{options:e},address:t})},validate:(e,t,r,{address:s})=>i.isValid(e,s)?e:t.error("string.domain")},email:{method(e={}){p.assertOptions(e,["allowUnicode","ignoreLength","maxDomainSegments","minDomainSegments","multiple","separator","tlds"]),o(void 0===e.multiple||"boolean"==typeof e.multiple,"multiple option must be an boolean");const t=d.addressOptions(e),r=new RegExp("\\s*[".concat(e.separator?u(e.separator):",","]\\s*"));return this.$_addRule({name:"email",args:{options:e},regex:r,address:t})},validate(e,t,{options:r},{regex:s,address:n}){const a=r.multiple?e.split(s):[e],o=[];for(const e of a)l.isValid(e,n)||o.push(e);return o.length?t.error("string.email",{value:e,invalids:o}):e}},guid:{alias:"uuid",method(e={}){p.assertOptions(e,["version","separator"]);let t="";if(e.version){const r=[].concat(e.version);o(r.length>=1,"version must have at least 1 valid version specified");const s=new Set;for(let e=0;ed.hexRegex.test(e)?r.byteAligned&&e.length%2!=0?t.error("string.hexAlign"):e:t.error("string.hex")},hostname:{method(){return this.$_addRule("hostname")},validate:(e,t)=>i.isValid(e,{minDomainSegments:1})||d.ipRegex.test(e)?e:t.error("string.hostname")},insensitive:{method(){return this.$_setFlag("insensitive",!0)}},ip:{method(e={}){p.assertOptions(e,["cidr","version"]);const{cidr:t,versions:r,regex:s}=c.regex(e),n=e.version?r:void 0;return this.$_addRule({name:"ip",args:{options:{cidr:t,version:n}},regex:s})},validate:(e,t,{options:r},{regex:s})=>s.test(e)?e:r.version?t.error("string.ipVersion",{value:e,cidr:r.cidr,version:r.version}):t.error("string.ip",{value:e,cidr:r.cidr})},isoDate:{method(){return this.$_addRule("isoDate")},validate:(e,{error:t})=>d.isoDate(e)?e:t("string.isoDate")},isoDuration:{method(){return this.$_addRule("isoDuration")},validate:(e,t)=>d.isoDurationRegex.test(e)?e:t.error("string.isoDuration")},length:{method(e,t){return d.length(this,"length",e,"=",t)},validate(e,t,{limit:r,encoding:s},{name:n,operator:a,args:o}){const i=!s&&e.length;return p.compare(i,r,a)?e:t.error("string."+n,{limit:o.limit,value:e,encoding:s})},args:[{name:"limit",ref:!0,assert:p.limit,message:"must be a positive integer"},"encoding"]},lowercase:{method(){return this.case("lower")}},max:{method(e,t){return d.length(this,"max",e,"<=",t)},args:["limit","encoding"]},min:{method(e,t){return d.length(this,"min",e,">=",t)},args:["limit","encoding"]},normalize:{method(e="NFC"){return o(d.normalizationForms.includes(e),"normalization form must be one of "+d.normalizationForms.join(", ")),this.$_addRule({name:"normalize",args:{form:e}})},validate:(e,{error:t},{form:r})=>e===e.normalize(r)?e:t("string.normalize",{value:e,form:r}),convert:!0},pattern:{alias:"regex",method(e,t={}){o(e instanceof RegExp,"regex must be a RegExp"),o(!e.flags.includes("g")&&!e.flags.includes("y"),"regex should not use global or sticky mode"),"string"==typeof t&&(t={name:t}),p.assertOptions(t,["invert","name"]);const r=["string.pattern",t.invert?".invert":"",t.name?".name":".base"].join("");return this.$_addRule({name:"pattern",args:{regex:e,options:t},errorCode:r})},validate:(e,t,{regex:r,options:s},{errorCode:n})=>r.test(e)^s.invert?e:t.error(n,{name:s.name,regex:r,value:e}),args:["regex","options"],multi:!0},replace:{method(e,t){"string"==typeof e&&(e=new RegExp(u(e),"g")),o(e instanceof RegExp,"pattern must be a RegExp"),o("string"==typeof t,"replacement must be a String");const r=this.clone();return r.$_terms.replacements||(r.$_terms.replacements=[]),r.$_terms.replacements.push({pattern:e,replacement:t}),r}},token:{method(){return this.$_addRule("token")},validate:(e,t)=>/^\w+$/.test(e)?e:t.error("string.token")},trim:{method(e=!0){return o("boolean"==typeof e,"enabled must be a boolean"),this.$_addRule({name:"trim",args:{enabled:e}})},validate:(e,t,{enabled:r})=>r&&e!==e.trim()?t.error("string.trim"):e,convert:!0},truncate:{method(e=!0){return o("boolean"==typeof e,"enabled must be a boolean"),this.$_setFlag("truncate",e)}},uppercase:{method(){return this.case("upper")}},uri:{method(e={}){p.assertOptions(e,["allowRelative","allowQuerySquareBrackets","domain","relativeOnly","scheme"]),e.domain&&p.assertOptions(e.domain,["allowUnicode","maxDomainSegments","minDomainSegments","tlds"]);const{regex:t,scheme:r}=m.regex(e),s=e.domain?d.addressOptions(e.domain):null;return this.$_addRule({name:"uri",args:{options:e},regex:t,domain:s,scheme:r})},validate(e,t,{options:r},{regex:s,domain:n,scheme:a}){if(["http:/","https:/"].includes(e))return t.error("string.uri");const o=s.exec(e);if(o){if(n){const e=o[1]||o[2];if(!i.isValid(e,n))return t.error("string.domain",{value:e})}return e}return r.relativeOnly?t.error("string.uriRelativeOnly"):r.scheme?t.error("string.uriCustomScheme",{scheme:a,value:e}):t.error("string.uri")}}},manifest:{build(e,t){if(t.replacements)for(const{pattern:r,replacement:s}of t.replacements)e=e.replace(r,s);return e}},messages:{"string.alphanum":"{{#label}} must only contain alpha-numeric characters","string.base":"{{#label}} must be a string","string.base64":"{{#label}} must be a valid base64 string","string.creditCard":"{{#label}} must be a credit card","string.dataUri":"{{#label}} must be a valid dataUri string","string.domain":"{{#label}} must contain a valid domain name","string.email":"{{#label}} must be a valid email","string.empty":"{{#label}} is not allowed to be empty","string.guid":"{{#label}} must be a valid GUID","string.hex":"{{#label}} must only contain hexadecimal characters","string.hexAlign":"{{#label}} hex decoded representation must be byte aligned","string.hostname":"{{#label}} must be a valid hostname","string.ip":"{{#label}} must be a valid ip address with a {{#cidr}} CIDR","string.ipVersion":"{{#label}} must be a valid ip address of one of the following versions {{#version}} with a {{#cidr}} CIDR","string.isoDate":"{{#label}} must be in iso format","string.isoDuration":"{{#label}} must be a valid ISO 8601 duration","string.length":"{{#label}} length must be {{#limit}} characters long","string.lowercase":"{{#label}} must only contain lowercase characters","string.max":"{{#label}} length must be less than or equal to {{#limit}} characters long","string.min":"{{#label}} length must be at least {{#limit}} characters long","string.normalize":"{{#label}} must be unicode normalized in the {{#form}} form","string.token":"{{#label}} must only contain alpha-numeric and underscore characters","string.pattern.base":"{{#label}} with value {:[.]} fails to match the required pattern: {{#regex}}","string.pattern.name":"{{#label}} with value {:[.]} fails to match the {{#name}} pattern","string.pattern.invert.base":"{{#label}} with value {:[.]} matches the inverted pattern: {{#regex}}","string.pattern.invert.name":"{{#label}} with value {:[.]} matches the inverted {{#name}} pattern","string.trim":"{{#label}} must not have leading or trailing whitespace","string.uri":"{{#label}} must be a valid uri","string.uriCustomScheme":"{{#label}} must be a valid uri with a scheme matching the {{#scheme}} pattern","string.uriRelativeOnly":"{{#label}} must be a valid relative uri","string.uppercase":"{{#label}} must only contain uppercase characters"}}),d.addressOptions=function(e){if(!e)return e;if(o(void 0===e.minDomainSegments||Number.isSafeInteger(e.minDomainSegments)&&e.minDomainSegments>0,"minDomainSegments must be a positive integer"),o(void 0===e.maxDomainSegments||Number.isSafeInteger(e.maxDomainSegments)&&e.maxDomainSegments>0,"maxDomainSegments must be a positive integer"),!1===e.tlds)return e;if(!0===e.tlds||void 0===e.tlds)return o(d.tlds,"Built-in TLD list disabled"),Object.assign({},e,d.tlds);o("object"==typeof e.tlds,"tlds must be true, false, or an object");const t=e.tlds.deny;if(t)return Array.isArray(t)&&(e=Object.assign({},e,{tlds:{deny:new Set(t)}})),o(e.tlds.deny instanceof Set,"tlds.deny must be an array, Set, or boolean"),o(!e.tlds.allow,"Cannot specify both tlds.allow and tlds.deny lists"),d.validateTlds(e.tlds.deny,"tlds.deny"),e;const r=e.tlds.allow;return r?!0===r?(o(d.tlds,"Built-in TLD list disabled"),Object.assign({},e,d.tlds)):(Array.isArray(r)&&(e=Object.assign({},e,{tlds:{allow:new Set(r)}})),o(e.tlds.allow instanceof Set,"tlds.allow must be an array, Set, or boolean"),d.validateTlds(e.tlds.allow,"tlds.allow"),e):e},d.validateTlds=function(e,t){for(const r of e)o(i.isValid(r,{minDomainSegments:1,maxDomainSegments:1}),"".concat(t," must contain valid top level domain names"))},d.isoDate=function(e){if(!p.isIsoDate(e))return null;/.*T.*[+-]\d\d$/.test(e)&&(e+="00");const t=new Date(e);return isNaN(t.getTime())?null:t.toISOString()},d.length=function(e,t,r,s,n){return o(!n||!1,"Invalid encoding:",n),e.$_addRule({name:t,method:"length",args:{limit:r,encoding:n},operator:s})}},function(e,t,r){"use strict";const s=r(24),n=r(23),a=r(25),o={nonAsciiRx:/[^\x00-\x7f]/,encoder:new(s.TextEncoder||TextEncoder)};t.analyze=function(e,t){return o.email(e,t)},t.isValid=function(e,t){return!o.email(e,t)},o.email=function(e,t={}){if("string"!=typeof e)throw new Error("Invalid input: email must be a string");if(!e)return a.code("EMPTY_STRING");const r=!o.nonAsciiRx.test(e);if(!r){if(!1===t.allowUnicode)return a.code("FORBIDDEN_UNICODE");e=e.normalize("NFC")}const s=e.split("@");if(2!==s.length)return s.length>2?a.code("MULTIPLE_AT_CHAR"):a.code("MISSING_AT_CHAR");const[i,l]=s;if(!i)return a.code("EMPTY_LOCAL");if(!t.ignoreLength){if(e.length>254)return a.code("ADDRESS_TOO_LONG");if(o.encoder.encode(i).length>64)return a.code("LOCAL_TOO_LONG")}return o.local(i,r)||n.analyze(l,t)},o.local=function(e,t){const r=e.split(".");for(const e of r){if(!e.length)return a.code("EMPTY_LOCAL_SEGMENT");if(t){if(!o.atextRx.test(e))return a.code("INVALID_LOCAL_CHARS")}else for(const t of e){if(o.atextRx.test(t))continue;const e=o.binary(t);if(!o.atomRx.test(e))return a.code("INVALID_LOCAL_CHARS")}}},o.binary=function(e){return Array.from(o.encoder.encode(e)).map(e=>String.fromCharCode(e)).join("")},o.atextRx=/^[\w!#\$%&'\*\+\-/=\?\^`\{\|\}~]+$/,o.atomRx=new RegExp(["(?:[\\xc2-\\xdf][\\x80-\\xbf])","(?:\\xe0[\\xa0-\\xbf][\\x80-\\xbf])|(?:[\\xe1-\\xec][\\x80-\\xbf]{2})|(?:\\xed[\\x80-\\x9f][\\x80-\\xbf])|(?:[\\xee-\\xef][\\x80-\\xbf]{2})","(?:\\xf0[\\x90-\\xbf][\\x80-\\xbf]{2})|(?:[\\xf1-\\xf3][\\x80-\\xbf]{3})|(?:\\xf4[\\x80-\\x8f][\\x80-\\xbf]{2})"].join("|"))},function(e,t,r){"use strict";const s=r(0),n=r(26);t.regex=function(e={}){s(void 0===e.cidr||"string"==typeof e.cidr,"options.cidr must be a string");const t=e.cidr?e.cidr.toLowerCase():"optional";s(["required","optional","forbidden"].includes(t),"options.cidr must be one of required, optional, forbidden"),s(void 0===e.version||"string"==typeof e.version||Array.isArray(e.version),"options.version must be a string or an array of string");let r=e.version||["ipv4","ipv6","ipvfuture"];Array.isArray(r)||(r=[r]),s(r.length>=1,"options.version must have at least 1 version specified");for(let e=0;e{if("forbidden"===t)return n.ip[e];const r="\\/".concat("ipv4"===e?n.ip.v4Cidr:n.ip.v6Cidr);return"required"===t?"".concat(n.ip[e]).concat(r):"".concat(n.ip[e],"(?:").concat(r,")?")}),o="(?:".concat(a.join("|"),")"),i=new RegExp("^".concat(o,"$"));return{cidr:t,versions:r,regex:i,raw:o}}},function(e,t){},function(e,t,r){"use strict";const s=r(0),n=r(3),a={};a.Map=class extends Map{slice(){return new a.Map(this)}},e.exports=n.extend({type:"symbol",terms:{map:{init:new a.Map}},coerce:{method(e,{schema:t,error:r}){const s=t.$_terms.map.get(e);return s&&(e=s),t._flags.only&&"symbol"!=typeof e?{value:e,errors:r("symbol.map",{map:t.$_terms.map})}:{value:e}}},validate(e,{error:t}){if("symbol"!=typeof e)return{value:e,errors:t("symbol.base")}},rules:{map:{method(e){e&&!e[Symbol.iterator]&&"object"==typeof e&&(e=Object.entries(e)),s(e&&e[Symbol.iterator],"Iterable must be an iterable or object");const t=this.clone(),r=[];for(const n of e){s(n&&n[Symbol.iterator],"Entry must be an iterable");const[e,a]=n;s("object"!=typeof e&&"function"!=typeof e&&"symbol"!=typeof e,"Key must not be of type object, function, or Symbol"),s("symbol"==typeof a,"Value must be a Symbol"),t.$_terms.map.set(e,a),r.push(a)}return t.valid(...r)}}},manifest:{build:(e,t)=>(t.map&&(e=e.map(t.map)),e)},messages:{"symbol.base":"{{#label}} must be a symbol","symbol.map":"{{#label}} must be one of {{#map}}"}})}])})); \ No newline at end of file diff --git a/node_modules/joi/lib/annotate.js b/node_modules/joi/lib/annotate.js new file mode 100755 index 0000000..42798fc --- /dev/null +++ b/node_modules/joi/lib/annotate.js @@ -0,0 +1,175 @@ +'use strict'; + +const Clone = require('@hapi/hoek/lib/clone'); + +const Common = require('./common'); + + +const internals = { + annotations: Symbol('annotations') +}; + + +exports.error = function (stripColorCodes) { + + if (!this._original || + typeof this._original !== 'object') { + + return this.details[0].message; + } + + const redFgEscape = stripColorCodes ? '' : '\u001b[31m'; + const redBgEscape = stripColorCodes ? '' : '\u001b[41m'; + const endColor = stripColorCodes ? '' : '\u001b[0m'; + + const obj = Clone(this._original); + + for (let i = this.details.length - 1; i >= 0; --i) { // Reverse order to process deepest child first + const pos = i + 1; + const error = this.details[i]; + const path = error.path; + let node = obj; + for (let j = 0; ; ++j) { + const seg = path[j]; + + if (Common.isSchema(node)) { + node = node.clone(); // joi schemas are not cloned by hoek, we have to take this extra step + } + + if (j + 1 < path.length && + typeof node[seg] !== 'string') { + + node = node[seg]; + } + else { + const refAnnotations = node[internals.annotations] || { errors: {}, missing: {} }; + node[internals.annotations] = refAnnotations; + + const cacheKey = seg || error.context.key; + + if (node[seg] !== undefined) { + refAnnotations.errors[cacheKey] = refAnnotations.errors[cacheKey] || []; + refAnnotations.errors[cacheKey].push(pos); + } + else { + refAnnotations.missing[cacheKey] = pos; + } + + break; + } + } + } + + const replacers = { + key: /_\$key\$_([, \d]+)_\$end\$_"/g, + missing: /"_\$miss\$_([^|]+)\|(\d+)_\$end\$_": "__missing__"/g, + arrayIndex: /\s*"_\$idx\$_([, \d]+)_\$end\$_",?\n(.*)/g, + specials: /"\[(NaN|Symbol.*|-?Infinity|function.*|\(.*)]"/g + }; + + let message = internals.safeStringify(obj, 2) + .replace(replacers.key, ($0, $1) => `" ${redFgEscape}[${$1}]${endColor}`) + .replace(replacers.missing, ($0, $1, $2) => `${redBgEscape}"${$1}"${endColor}${redFgEscape} [${$2}]: -- missing --${endColor}`) + .replace(replacers.arrayIndex, ($0, $1, $2) => `\n${$2} ${redFgEscape}[${$1}]${endColor}`) + .replace(replacers.specials, ($0, $1) => $1); + + message = `${message}\n${redFgEscape}`; + + for (let i = 0; i < this.details.length; ++i) { + const pos = i + 1; + message = `${message}\n[${pos}] ${this.details[i].message}`; + } + + message = message + endColor; + + return message; +}; + + +// Inspired by json-stringify-safe + +internals.safeStringify = function (obj, spaces) { + + return JSON.stringify(obj, internals.serializer(), spaces); +}; + + +internals.serializer = function () { + + const keys = []; + const stack = []; + + const cycleReplacer = (key, value) => { + + if (stack[0] === value) { + return '[Circular ~]'; + } + + return '[Circular ~.' + keys.slice(0, stack.indexOf(value)).join('.') + ']'; + }; + + return function (key, value) { + + if (stack.length > 0) { + const thisPos = stack.indexOf(this); + if (~thisPos) { + stack.length = thisPos + 1; + keys.length = thisPos + 1; + keys[thisPos] = key; + } + else { + stack.push(this); + keys.push(key); + } + + if (~stack.indexOf(value)) { + value = cycleReplacer.call(this, key, value); + } + } + else { + stack.push(value); + } + + if (value) { + const annotations = value[internals.annotations]; + if (annotations) { + if (Array.isArray(value)) { + const annotated = []; + + for (let i = 0; i < value.length; ++i) { + if (annotations.errors[i]) { + annotated.push(`_$idx$_${annotations.errors[i].sort().join(', ')}_$end$_`); + } + + annotated.push(value[i]); + } + + value = annotated; + } + else { + for (const errorKey in annotations.errors) { + value[`${errorKey}_$key$_${annotations.errors[errorKey].sort().join(', ')}_$end$_`] = value[errorKey]; + value[errorKey] = undefined; + } + + for (const missingKey in annotations.missing) { + value[`_$miss$_${missingKey}|${annotations.missing[missingKey]}_$end$_`] = '__missing__'; + } + } + + return value; + } + } + + if (value === Infinity || + value === -Infinity || + Number.isNaN(value) || + typeof value === 'function' || + typeof value === 'symbol') { + + return '[' + value.toString() + ']'; + } + + return value; + }; +}; diff --git a/node_modules/joi/lib/base.js b/node_modules/joi/lib/base.js new file mode 100755 index 0000000..309ae41 --- /dev/null +++ b/node_modules/joi/lib/base.js @@ -0,0 +1,1068 @@ +'use strict'; + +const Assert = require('@hapi/hoek/lib/assert'); +const Clone = require('@hapi/hoek/lib/clone'); +const DeepEqual = require('@hapi/hoek/lib/deepEqual'); +const Merge = require('@hapi/hoek/lib/merge'); + +const Cache = require('./cache'); +const Common = require('./common'); +const Compile = require('./compile'); +const Errors = require('./errors'); +const Extend = require('./extend'); +const Manifest = require('./manifest'); +const Messages = require('./messages'); +const Modify = require('./modify'); +const Ref = require('./ref'); +const Trace = require('./trace'); +const Validator = require('./validator'); +const Values = require('./values'); + + +const internals = {}; + + +internals.Base = class { + + constructor(type) { + + // Naming: public, _private, $_extension, $_mutate{action} + + this.type = type; + + this.$_root = null; + this._definition = {}; + this._reset(); + } + + _reset() { + + this._ids = new Modify.Ids(); + this._preferences = null; + this._refs = new Ref.Manager(); + this._cache = null; + + this._valids = null; + this._invalids = null; + + this._flags = {}; + this._rules = []; + this._singleRules = new Map(); // The rule options passed for non-multi rules + + this.$_terms = {}; // Hash of arrays of immutable objects (extended by other types) + + this.$_temp = { // Runtime state (not cloned) + ruleset: null, // null: use last, false: error, number: start position + whens: {} // Runtime cache of generated whens + }; + } + + // Manifest + + describe() { + + Assert(typeof Manifest.describe === 'function', 'Manifest functionality disabled'); + return Manifest.describe(this); + } + + // Rules + + allow(...values) { + + Common.verifyFlat(values, 'allow'); + return this._values(values, '_valids'); + } + + alter(targets) { + + Assert(targets && typeof targets === 'object' && !Array.isArray(targets), 'Invalid targets argument'); + Assert(!this._inRuleset(), 'Cannot set alterations inside a ruleset'); + + const obj = this.clone(); + obj.$_terms.alterations = obj.$_terms.alterations || []; + for (const target in targets) { + const adjuster = targets[target]; + Assert(typeof adjuster === 'function', 'Alteration adjuster for', target, 'must be a function'); + obj.$_terms.alterations.push({ target, adjuster }); + } + + obj.$_temp.ruleset = false; + return obj; + } + + artifact(id) { + + Assert(id !== undefined, 'Artifact cannot be undefined'); + Assert(!this._cache, 'Cannot set an artifact with a rule cache'); + + return this.$_setFlag('artifact', id); + } + + cast(to) { + + Assert(to === false || typeof to === 'string', 'Invalid to value'); + Assert(to === false || this._definition.cast[to], 'Type', this.type, 'does not support casting to', to); + + return this.$_setFlag('cast', to === false ? undefined : to); + } + + default(value, options) { + + return this._default('default', value, options); + } + + description(desc) { + + Assert(desc && typeof desc === 'string', 'Description must be a non-empty string'); + + return this.$_setFlag('description', desc); + } + + empty(schema) { + + const obj = this.clone(); + + if (schema !== undefined) { + schema = obj.$_compile(schema, { override: false }); + } + + return obj.$_setFlag('empty', schema, { clone: false }); + } + + error(err) { + + Assert(err, 'Missing error'); + Assert(err instanceof Error || typeof err === 'function', 'Must provide a valid Error object or a function'); + + return this.$_setFlag('error', err); + } + + example(example, options = {}) { + + Assert(example !== undefined, 'Missing example'); + Common.assertOptions(options, ['override']); + + return this._inner('examples', example, { single: true, override: options.override }); + } + + external(method, description) { + + if (typeof method === 'object') { + Assert(!description, 'Cannot combine options with description'); + description = method.description; + method = method.method; + } + + Assert(typeof method === 'function', 'Method must be a function'); + Assert(description === undefined || description && typeof description === 'string', 'Description must be a non-empty string'); + + return this._inner('externals', { method, description }, { single: true }); + } + + failover(value, options) { + + return this._default('failover', value, options); + } + + forbidden() { + + return this.presence('forbidden'); + } + + id(id) { + + if (!id) { + return this.$_setFlag('id', undefined); + } + + Assert(typeof id === 'string', 'id must be a non-empty string'); + Assert(/^[^\.]+$/.test(id), 'id cannot contain period character'); + + return this.$_setFlag('id', id); + } + + invalid(...values) { + + return this._values(values, '_invalids'); + } + + label(name) { + + Assert(name && typeof name === 'string', 'Label name must be a non-empty string'); + + return this.$_setFlag('label', name); + } + + meta(meta) { + + Assert(meta !== undefined, 'Meta cannot be undefined'); + + return this._inner('metas', meta, { single: true }); + } + + note(...notes) { + + Assert(notes.length, 'Missing notes'); + for (const note of notes) { + Assert(note && typeof note === 'string', 'Notes must be non-empty strings'); + } + + return this._inner('notes', notes); + } + + only(mode = true) { + + Assert(typeof mode === 'boolean', 'Invalid mode:', mode); + + return this.$_setFlag('only', mode); + } + + optional() { + + return this.presence('optional'); + } + + prefs(prefs) { + + Assert(prefs, 'Missing preferences'); + Assert(prefs.context === undefined, 'Cannot override context'); + Assert(prefs.externals === undefined, 'Cannot override externals'); + Assert(prefs.warnings === undefined, 'Cannot override warnings'); + Assert(prefs.debug === undefined, 'Cannot override debug'); + + Common.checkPreferences(prefs); + + const obj = this.clone(); + obj._preferences = Common.preferences(obj._preferences, prefs); + return obj; + } + + presence(mode) { + + Assert(['optional', 'required', 'forbidden'].includes(mode), 'Unknown presence mode', mode); + + return this.$_setFlag('presence', mode); + } + + raw(enabled = true) { + + return this.$_setFlag('result', enabled ? 'raw' : undefined); + } + + result(mode) { + + Assert(['raw', 'strip'].includes(mode), 'Unknown result mode', mode); + + return this.$_setFlag('result', mode); + } + + required() { + + return this.presence('required'); + } + + strict(enabled) { + + const obj = this.clone(); + + const convert = enabled === undefined ? false : !enabled; + obj._preferences = Common.preferences(obj._preferences, { convert }); + return obj; + } + + strip(enabled = true) { + + return this.$_setFlag('result', enabled ? 'strip' : undefined); + } + + tag(...tags) { + + Assert(tags.length, 'Missing tags'); + for (const tag of tags) { + Assert(tag && typeof tag === 'string', 'Tags must be non-empty strings'); + } + + return this._inner('tags', tags); + } + + unit(name) { + + Assert(name && typeof name === 'string', 'Unit name must be a non-empty string'); + + return this.$_setFlag('unit', name); + } + + valid(...values) { + + Common.verifyFlat(values, 'valid'); + + const obj = this.allow(...values); + obj.$_setFlag('only', !!obj._valids, { clone: false }); + return obj; + } + + when(condition, options) { + + const obj = this.clone(); + + if (!obj.$_terms.whens) { + obj.$_terms.whens = []; + } + + const when = Compile.when(obj, condition, options); + if (!['any', 'link'].includes(obj.type)) { + const conditions = when.is ? [when] : when.switch; + for (const item of conditions) { + Assert(!item.then || item.then.type === 'any' || item.then.type === obj.type, 'Cannot combine', obj.type, 'with', item.then && item.then.type); + Assert(!item.otherwise || item.otherwise.type === 'any' || item.otherwise.type === obj.type, 'Cannot combine', obj.type, 'with', item.otherwise && item.otherwise.type); + + } + } + + obj.$_terms.whens.push(when); + return obj.$_mutateRebuild(); + } + + // Helpers + + cache(cache) { + + Assert(!this._inRuleset(), 'Cannot set caching inside a ruleset'); + Assert(!this._cache, 'Cannot override schema cache'); + Assert(this._flags.artifact === undefined, 'Cannot cache a rule with an artifact'); + + const obj = this.clone(); + obj._cache = cache || Cache.provider.provision(); + obj.$_temp.ruleset = false; + return obj; + } + + clone() { + + const obj = Object.create(Object.getPrototypeOf(this)); + return this._assign(obj); + } + + concat(source) { + + Assert(Common.isSchema(source), 'Invalid schema object'); + Assert(this.type === 'any' || source.type === 'any' || source.type === this.type, 'Cannot merge type', this.type, 'with another type:', source.type); + Assert(!this._inRuleset(), 'Cannot concatenate onto a schema with open ruleset'); + Assert(!source._inRuleset(), 'Cannot concatenate a schema with open ruleset'); + + let obj = this.clone(); + + if (this.type === 'any' && + source.type !== 'any') { + + // Change obj to match source type + + const tmpObj = source.clone(); + for (const key of Object.keys(obj)) { + if (key !== 'type') { + tmpObj[key] = obj[key]; + } + } + + obj = tmpObj; + } + + obj._ids.concat(source._ids); + obj._refs.register(source, Ref.toSibling); + + obj._preferences = obj._preferences ? Common.preferences(obj._preferences, source._preferences) : source._preferences; + obj._valids = Values.merge(obj._valids, source._valids, source._invalids); + obj._invalids = Values.merge(obj._invalids, source._invalids, source._valids); + + // Remove unique rules present in source + + for (const name of source._singleRules.keys()) { + if (obj._singleRules.has(name)) { + obj._rules = obj._rules.filter((target) => target.keep || target.name !== name); + obj._singleRules.delete(name); + } + } + + // Rules + + for (const test of source._rules) { + if (!source._definition.rules[test.method].multi) { + obj._singleRules.set(test.name, test); + } + + obj._rules.push(test); + } + + // Flags + + if (obj._flags.empty && + source._flags.empty) { + + obj._flags.empty = obj._flags.empty.concat(source._flags.empty); + const flags = Object.assign({}, source._flags); + delete flags.empty; + Merge(obj._flags, flags); + } + else if (source._flags.empty) { + obj._flags.empty = source._flags.empty; + const flags = Object.assign({}, source._flags); + delete flags.empty; + Merge(obj._flags, flags); + } + else { + Merge(obj._flags, source._flags); + } + + // Terms + + for (const key in source.$_terms) { + const terms = source.$_terms[key]; + if (!terms) { + if (!obj.$_terms[key]) { + obj.$_terms[key] = terms; + } + + continue; + } + + if (!obj.$_terms[key]) { + obj.$_terms[key] = terms.slice(); + continue; + } + + obj.$_terms[key] = obj.$_terms[key].concat(terms); + } + + // Tracing + + if (this.$_root._tracer) { + this.$_root._tracer._combine(obj, [this, source]); + } + + // Rebuild + + return obj.$_mutateRebuild(); + } + + extend(options) { + + Assert(!options.base, 'Cannot extend type with another base'); + + return Extend.type(this, options); + } + + extract(path) { + + path = Array.isArray(path) ? path : path.split('.'); + return this._ids.reach(path); + } + + fork(paths, adjuster) { + + Assert(!this._inRuleset(), 'Cannot fork inside a ruleset'); + + let obj = this; // eslint-disable-line consistent-this + for (let path of [].concat(paths)) { + path = Array.isArray(path) ? path : path.split('.'); + obj = obj._ids.fork(path, adjuster, obj); + } + + obj.$_temp.ruleset = false; + return obj; + } + + rule(options) { + + const def = this._definition; + Common.assertOptions(options, Object.keys(def.modifiers)); + + Assert(this.$_temp.ruleset !== false, 'Cannot apply rules to empty ruleset or the last rule added does not support rule properties'); + const start = this.$_temp.ruleset === null ? this._rules.length - 1 : this.$_temp.ruleset; + Assert(start >= 0 && start < this._rules.length, 'Cannot apply rules to empty ruleset'); + + const obj = this.clone(); + + for (let i = start; i < obj._rules.length; ++i) { + const original = obj._rules[i]; + const rule = Clone(original); + + for (const name in options) { + def.modifiers[name](rule, options[name]); + Assert(rule.name === original.name, 'Cannot change rule name'); + } + + obj._rules[i] = rule; + + if (obj._singleRules.get(rule.name) === original) { + obj._singleRules.set(rule.name, rule); + } + } + + obj.$_temp.ruleset = false; + return obj.$_mutateRebuild(); + } + + get ruleset() { + + Assert(!this._inRuleset(), 'Cannot start a new ruleset without closing the previous one'); + + const obj = this.clone(); + obj.$_temp.ruleset = obj._rules.length; + return obj; + } + + get $() { + + return this.ruleset; + } + + tailor(targets) { + + targets = [].concat(targets); + + Assert(!this._inRuleset(), 'Cannot tailor inside a ruleset'); + + let obj = this; // eslint-disable-line consistent-this + + if (this.$_terms.alterations) { + for (const { target, adjuster } of this.$_terms.alterations) { + if (targets.includes(target)) { + obj = adjuster(obj); + Assert(Common.isSchema(obj), 'Alteration adjuster for', target, 'failed to return a schema object'); + } + } + } + + obj = obj.$_modify({ each: (item) => item.tailor(targets), ref: false }); + obj.$_temp.ruleset = false; + return obj.$_mutateRebuild(); + } + + tracer() { + + return Trace.location ? Trace.location(this) : this; // $lab:coverage:ignore$ + } + + validate(value, options) { + + return Validator.entry(value, this, options); + } + + validateAsync(value, options) { + + return Validator.entryAsync(value, this, options); + } + + // Extensions + + $_addRule(options) { + + // Normalize rule + + if (typeof options === 'string') { + options = { name: options }; + } + + Assert(options && typeof options === 'object', 'Invalid options'); + Assert(options.name && typeof options.name === 'string', 'Invalid rule name'); + + for (const key in options) { + Assert(key[0] !== '_', 'Cannot set private rule properties'); + } + + const rule = Object.assign({}, options); // Shallow cloned + rule._resolve = []; + rule.method = rule.method || rule.name; + + const definition = this._definition.rules[rule.method]; + const args = rule.args; + + Assert(definition, 'Unknown rule', rule.method); + + // Args + + const obj = this.clone(); + + if (args) { + Assert(Object.keys(args).length === 1 || Object.keys(args).length === this._definition.rules[rule.name].args.length, 'Invalid rule definition for', this.type, rule.name); + + for (const key in args) { + let arg = args[key]; + if (arg === undefined) { + delete args[key]; + continue; + } + + if (definition.argsByName) { + const resolver = definition.argsByName.get(key); + + if (resolver.ref && + Common.isResolvable(arg)) { + + rule._resolve.push(key); + obj.$_mutateRegister(arg); + } + else { + if (resolver.normalize) { + arg = resolver.normalize(arg); + args[key] = arg; + } + + if (resolver.assert) { + const error = Common.validateArg(arg, key, resolver); + Assert(!error, error, 'or reference'); + } + } + } + + args[key] = arg; + } + } + + // Unique rules + + if (!definition.multi) { + obj._ruleRemove(rule.name, { clone: false }); + obj._singleRules.set(rule.name, rule); + } + + if (obj.$_temp.ruleset === false) { + obj.$_temp.ruleset = null; + } + + if (definition.priority) { + obj._rules.unshift(rule); + } + else { + obj._rules.push(rule); + } + + return obj; + } + + $_compile(schema, options) { + + return Compile.schema(this.$_root, schema, options); + } + + $_createError(code, value, local, state, prefs, options = {}) { + + const flags = options.flags !== false ? this._flags : {}; + const messages = options.messages ? Messages.merge(this._definition.messages, options.messages) : this._definition.messages; + return new Errors.Report(code, value, local, flags, messages, state, prefs); + } + + $_getFlag(name) { + + return this._flags[name]; + } + + $_getRule(name) { + + return this._singleRules.get(name); + } + + $_mapLabels(path) { + + path = Array.isArray(path) ? path : path.split('.'); + return this._ids.labels(path); + } + + $_match(value, state, prefs, overrides) { + + prefs = Object.assign({}, prefs); // Shallow cloned + prefs.abortEarly = true; + prefs._externals = false; + + state.snapshot(); + const result = !Validator.validate(value, this, state, prefs, overrides).errors; + state.restore(); + + return result; + } + + $_modify(options) { + + Common.assertOptions(options, ['each', 'once', 'ref', 'schema']); + return Modify.schema(this, options) || this; + } + + $_mutateRebuild() { + + Assert(!this._inRuleset(), 'Cannot add this rule inside a ruleset'); + + this._refs.reset(); + this._ids.reset(); + + const each = (item, { source, name, path, key }) => { + + const family = this._definition[source][name] && this._definition[source][name].register; + if (family !== false) { + this.$_mutateRegister(item, { family, key }); + } + }; + + this.$_modify({ each }); + + if (this._definition.rebuild) { + this._definition.rebuild(this); + } + + this.$_temp.ruleset = false; + return this; + } + + $_mutateRegister(schema, { family, key } = {}) { + + this._refs.register(schema, family); + this._ids.register(schema, { key }); + } + + $_property(name) { + + return this._definition.properties[name]; + } + + $_reach(path) { + + return this._ids.reach(path); + } + + $_rootReferences() { + + return this._refs.roots(); + } + + $_setFlag(name, value, options = {}) { + + Assert(name[0] === '_' || !this._inRuleset(), 'Cannot set flag inside a ruleset'); + + const flag = this._definition.flags[name] || {}; + if (DeepEqual(value, flag.default)) { + value = undefined; + } + + if (DeepEqual(value, this._flags[name])) { + return this; + } + + const obj = options.clone !== false ? this.clone() : this; + + if (value !== undefined) { + obj._flags[name] = value; + obj.$_mutateRegister(value); + } + else { + delete obj._flags[name]; + } + + if (name[0] !== '_') { + obj.$_temp.ruleset = false; + } + + return obj; + } + + $_parent(method, ...args) { + + return this[method][Common.symbols.parent].call(this, ...args); + } + + $_validate(value, state, prefs) { + + return Validator.validate(value, this, state, prefs); + } + + // Internals + + _assign(target) { + + target.type = this.type; + + target.$_root = this.$_root; + + target.$_temp = Object.assign({}, this.$_temp); + target.$_temp.whens = {}; + + target._ids = this._ids.clone(); + target._preferences = this._preferences; + target._valids = this._valids && this._valids.clone(); + target._invalids = this._invalids && this._invalids.clone(); + target._rules = this._rules.slice(); + target._singleRules = Clone(this._singleRules, { shallow: true }); + target._refs = this._refs.clone(); + target._flags = Object.assign({}, this._flags); + target._cache = null; + + target.$_terms = {}; + for (const key in this.$_terms) { + target.$_terms[key] = this.$_terms[key] ? this.$_terms[key].slice() : null; + } + + // Backwards compatibility + + target.$_super = {}; + for (const override in this.$_super) { + target.$_super[override] = this._super[override].bind(target); + } + + return target; + } + + _bare() { + + const obj = this.clone(); + obj._reset(); + + const terms = obj._definition.terms; + for (const name in terms) { + const term = terms[name]; + obj.$_terms[name] = term.init; + } + + return obj.$_mutateRebuild(); + } + + _default(flag, value, options = {}) { + + Common.assertOptions(options, 'literal'); + + Assert(value !== undefined, 'Missing', flag, 'value'); + Assert(typeof value === 'function' || !options.literal, 'Only function value supports literal option'); + + if (typeof value === 'function' && + options.literal) { + + value = { + [Common.symbols.literal]: true, + literal: value + }; + } + + const obj = this.$_setFlag(flag, value); + return obj; + } + + _generate(value, state, prefs) { + + if (!this.$_terms.whens) { + return { schema: this }; + } + + // Collect matching whens + + const whens = []; + const ids = []; + for (let i = 0; i < this.$_terms.whens.length; ++i) { + const when = this.$_terms.whens[i]; + + if (when.concat) { + whens.push(when.concat); + ids.push(`${i}.concat`); + continue; + } + + const input = when.ref ? when.ref.resolve(value, state, prefs) : value; + const tests = when.is ? [when] : when.switch; + const before = ids.length; + + for (let j = 0; j < tests.length; ++j) { + const { is, then, otherwise } = tests[j]; + + const baseId = `${i}${when.switch ? '.' + j : ''}`; + if (is.$_match(input, state.nest(is, `${baseId}.is`), prefs)) { + if (then) { + const localState = state.localize([...state.path, `${baseId}.then`], state.ancestors, state.schemas); + const { schema: generated, id } = then._generate(value, localState, prefs); + whens.push(generated); + ids.push(`${baseId}.then${id ? `(${id})` : ''}`); + break; + } + } + else if (otherwise) { + const localState = state.localize([...state.path, `${baseId}.otherwise`], state.ancestors, state.schemas); + const { schema: generated, id } = otherwise._generate(value, localState, prefs); + whens.push(generated); + ids.push(`${baseId}.otherwise${id ? `(${id})` : ''}`); + break; + } + } + + if (when.break && + ids.length > before) { // Something matched + + break; + } + } + + // Check cache + + const id = ids.join(', '); + state.mainstay.tracer.debug(state, 'rule', 'when', id); + + if (!id) { + return { schema: this }; + } + + if (!state.mainstay.tracer.active && + this.$_temp.whens[id]) { + + return { schema: this.$_temp.whens[id], id }; + } + + // Generate dynamic schema + + let obj = this; // eslint-disable-line consistent-this + if (this._definition.generate) { + obj = this._definition.generate(this, value, state, prefs); + } + + // Apply whens + + for (const when of whens) { + obj = obj.concat(when); + } + + // Tracing + + if (this.$_root._tracer) { + this.$_root._tracer._combine(obj, [this, ...whens]); + } + + // Cache result + + this.$_temp.whens[id] = obj; + return { schema: obj, id }; + } + + _inner(type, values, options = {}) { + + Assert(!this._inRuleset(), `Cannot set ${type} inside a ruleset`); + + const obj = this.clone(); + if (!obj.$_terms[type] || + options.override) { + + obj.$_terms[type] = []; + } + + if (options.single) { + obj.$_terms[type].push(values); + } + else { + obj.$_terms[type].push(...values); + } + + obj.$_temp.ruleset = false; + return obj; + } + + _inRuleset() { + + return this.$_temp.ruleset !== null && this.$_temp.ruleset !== false; + } + + _ruleRemove(name, options = {}) { + + if (!this._singleRules.has(name)) { + return this; + } + + const obj = options.clone !== false ? this.clone() : this; + + obj._singleRules.delete(name); + + const filtered = []; + for (let i = 0; i < obj._rules.length; ++i) { + const test = obj._rules[i]; + if (test.name === name && + !test.keep) { + + if (obj._inRuleset() && + i < obj.$_temp.ruleset) { + + --obj.$_temp.ruleset; + } + + continue; + } + + filtered.push(test); + } + + obj._rules = filtered; + return obj; + } + + _values(values, key) { + + Common.verifyFlat(values, key.slice(1, -1)); + + const obj = this.clone(); + + const override = values[0] === Common.symbols.override; + if (override) { + values = values.slice(1); + } + + if (!obj[key] && + values.length) { + + obj[key] = new Values(); + } + else if (override) { + obj[key] = values.length ? new Values() : null; + obj.$_mutateRebuild(); + } + + if (!obj[key]) { + return obj; + } + + if (override) { + obj[key].override(); + } + + for (const value of values) { + Assert(value !== undefined, 'Cannot call allow/valid/invalid with undefined'); + Assert(value !== Common.symbols.override, 'Override must be the first value'); + + const other = key === '_invalids' ? '_valids' : '_invalids'; + if (obj[other]) { + obj[other].remove(value); + if (!obj[other].length) { + Assert(key === '_valids' || !obj._flags.only, 'Setting invalid value', value, 'leaves schema rejecting all values due to previous valid rule'); + obj[other] = null; + } + } + + obj[key].add(value, obj._refs); + } + + return obj; + } +}; + + +internals.Base.prototype[Common.symbols.any] = { + version: Common.version, + compile: Compile.compile, + root: '$_root' +}; + + +internals.Base.prototype.isImmutable = true; // Prevents Hoek from deep cloning schema objects (must be on prototype) + + +// Aliases + +internals.Base.prototype.deny = internals.Base.prototype.invalid; +internals.Base.prototype.disallow = internals.Base.prototype.invalid; +internals.Base.prototype.equal = internals.Base.prototype.valid; +internals.Base.prototype.exist = internals.Base.prototype.required; +internals.Base.prototype.not = internals.Base.prototype.invalid; +internals.Base.prototype.options = internals.Base.prototype.prefs; +internals.Base.prototype.preferences = internals.Base.prototype.prefs; + + +module.exports = new internals.Base(); diff --git a/node_modules/joi/lib/cache.js b/node_modules/joi/lib/cache.js new file mode 100755 index 0000000..32c61e0 --- /dev/null +++ b/node_modules/joi/lib/cache.js @@ -0,0 +1,143 @@ +'use strict'; + +const Assert = require('@hapi/hoek/lib/assert'); +const Clone = require('@hapi/hoek/lib/clone'); + +const Common = require('./common'); + + +const internals = { + max: 1000, + supported: new Set(['undefined', 'boolean', 'number', 'string']) +}; + + +exports.provider = { + + provision(options) { + + return new internals.Cache(options); + } +}; + + +// Least Recently Used (LRU) Cache + +internals.Cache = class { + + constructor(options = {}) { + + Common.assertOptions(options, ['max']); + Assert(options.max === undefined || options.max && options.max > 0 && isFinite(options.max), 'Invalid max cache size'); + + this._max = options.max || internals.max; + + this._map = new Map(); // Map of nodes by key + this._list = new internals.List(); // List of nodes (most recently used in head) + } + + get length() { + + return this._map.size; + } + + set(key, value) { + + if (key !== null && + !internals.supported.has(typeof key)) { + + return; + } + + let node = this._map.get(key); + if (node) { + node.value = value; + this._list.first(node); + return; + } + + node = this._list.unshift({ key, value }); + this._map.set(key, node); + this._compact(); + } + + get(key) { + + const node = this._map.get(key); + if (node) { + this._list.first(node); + return Clone(node.value); + } + } + + _compact() { + + if (this._map.size > this._max) { + const node = this._list.pop(); + this._map.delete(node.key); + } + } +}; + + +internals.List = class { + + constructor() { + + this.tail = null; + this.head = null; + } + + unshift(node) { + + node.next = null; + node.prev = this.head; + + if (this.head) { + this.head.next = node; + } + + this.head = node; + + if (!this.tail) { + this.tail = node; + } + + return node; + } + + first(node) { + + if (node === this.head) { + return; + } + + this._remove(node); + this.unshift(node); + } + + pop() { + + return this._remove(this.tail); + } + + _remove(node) { + + const { next, prev } = node; + + next.prev = prev; + + if (prev) { + prev.next = next; + } + + if (node === this.tail) { + this.tail = next; + } + + node.prev = null; + node.next = null; + + return node; + } +}; diff --git a/node_modules/joi/lib/common.js b/node_modules/joi/lib/common.js new file mode 100755 index 0000000..7d572c1 --- /dev/null +++ b/node_modules/joi/lib/common.js @@ -0,0 +1,216 @@ +'use strict'; + +const Assert = require('@hapi/hoek/lib/assert'); +const AssertError = require('@hapi/hoek/lib/error'); + +const Pkg = require('../package.json'); + +let Messages; +let Schemas; + + +const internals = { + isoDate: /^(?:[-+]\d{2})?(?:\d{4}(?!\d{2}\b))(?:(-?)(?:(?:0[1-9]|1[0-2])(?:\1(?:[12]\d|0[1-9]|3[01]))?|W(?:[0-4]\d|5[0-2])(?:-?[1-7])?|(?:00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[1-6])))(?![T]$|[T][\d]+Z$)(?:[T\s](?:(?:(?:[01]\d|2[0-3])(?:(:?)[0-5]\d)?|24\:?00)(?:[.,]\d+(?!:))?)(?:\2[0-5]\d(?:[.,]\d+)?)?(?:[Z]|(?:[+-])(?:[01]\d|2[0-3])(?::?[0-5]\d)?)?)?)?$/ +}; + + +exports.version = Pkg.version; + + +exports.defaults = { + abortEarly: true, + allowUnknown: false, + artifacts: false, + cache: true, + context: null, + convert: true, + dateFormat: 'iso', + errors: { + escapeHtml: false, + label: 'path', + language: null, + render: true, + stack: false, + wrap: { + label: '"', + array: '[]' + } + }, + externals: true, + messages: {}, + nonEnumerables: false, + noDefaults: false, + presence: 'optional', + skipFunctions: false, + stripUnknown: false, + warnings: false +}; + + +exports.symbols = { + any: Symbol.for('@hapi/joi/schema'), // Used to internally identify any-based types (shared with other joi versions) + arraySingle: Symbol('arraySingle'), + deepDefault: Symbol('deepDefault'), + errors: Symbol('errors'), + literal: Symbol('literal'), + override: Symbol('override'), + parent: Symbol('parent'), + prefs: Symbol('prefs'), + ref: Symbol('ref'), + template: Symbol('template'), + values: Symbol('values') +}; + + +exports.assertOptions = function (options, keys, name = 'Options') { + + Assert(options && typeof options === 'object' && !Array.isArray(options), 'Options must be of type object'); + const unknownKeys = Object.keys(options).filter((k) => !keys.includes(k)); + Assert(unknownKeys.length === 0, `${name} contain unknown keys: ${unknownKeys}`); +}; + + +exports.checkPreferences = function (prefs) { + + Schemas = Schemas || require('./schemas'); + + const result = Schemas.preferences.validate(prefs); + + if (result.error) { + throw new AssertError([result.error.details[0].message]); + } +}; + + +exports.compare = function (a, b, operator) { + + switch (operator) { + case '=': return a === b; + case '>': return a > b; + case '<': return a < b; + case '>=': return a >= b; + case '<=': return a <= b; + } +}; + + +exports.default = function (value, defaultValue) { + + return value === undefined ? defaultValue : value; +}; + + +exports.isIsoDate = function (date) { + + return internals.isoDate.test(date); +}; + + +exports.isNumber = function (value) { + + return typeof value === 'number' && !isNaN(value); +}; + + +exports.isResolvable = function (obj) { + + if (!obj) { + return false; + } + + return obj[exports.symbols.ref] || obj[exports.symbols.template]; +}; + + +exports.isSchema = function (schema, options = {}) { + + const any = schema && schema[exports.symbols.any]; + if (!any) { + return false; + } + + Assert(options.legacy || any.version === exports.version, 'Cannot mix different versions of joi schemas'); + return true; +}; + + +exports.isValues = function (obj) { + + return obj[exports.symbols.values]; +}; + + +exports.limit = function (value) { + + return Number.isSafeInteger(value) && value >= 0; +}; + + +exports.preferences = function (target, source) { + + Messages = Messages || require('./messages'); + + target = target || {}; + source = source || {}; + + const merged = Object.assign({}, target, source); + if (source.errors && + target.errors) { + + merged.errors = Object.assign({}, target.errors, source.errors); + merged.errors.wrap = Object.assign({}, target.errors.wrap, source.errors.wrap); + } + + if (source.messages) { + merged.messages = Messages.compile(source.messages, target.messages); + } + + delete merged[exports.symbols.prefs]; + return merged; +}; + + +exports.tryWithPath = function (fn, key, options = {}) { + + try { + return fn(); + } + catch (err) { + if (err.path !== undefined) { + err.path = key + '.' + err.path; + } + else { + err.path = key; + } + + if (options.append) { + err.message = `${err.message} (${err.path})`; + } + + throw err; + } +}; + + +exports.validateArg = function (value, label, { assert, message }) { + + if (exports.isSchema(assert)) { + const result = assert.validate(value); + if (!result.error) { + return; + } + + return result.error.message; + } + else if (!assert(value)) { + return label ? `${label} ${message}` : message; + } +}; + + +exports.verifyFlat = function (args, method) { + + for (const arg of args) { + Assert(!Array.isArray(arg), 'Method no longer accepts array arguments:', method); + } +}; diff --git a/node_modules/joi/lib/compile.js b/node_modules/joi/lib/compile.js new file mode 100755 index 0000000..5593b7c --- /dev/null +++ b/node_modules/joi/lib/compile.js @@ -0,0 +1,283 @@ +'use strict'; + +const Assert = require('@hapi/hoek/lib/assert'); + +const Common = require('./common'); +const Ref = require('./ref'); + + +const internals = {}; + + +exports.schema = function (Joi, config, options = {}) { + + Common.assertOptions(options, ['appendPath', 'override']); + + try { + return internals.schema(Joi, config, options); + } + catch (err) { + if (options.appendPath && + err.path !== undefined) { + + err.message = `${err.message} (${err.path})`; + } + + throw err; + } +}; + + +internals.schema = function (Joi, config, options) { + + Assert(config !== undefined, 'Invalid undefined schema'); + + if (Array.isArray(config)) { + Assert(config.length, 'Invalid empty array schema'); + + if (config.length === 1) { + config = config[0]; + } + } + + const valid = (base, ...values) => { + + if (options.override !== false) { + return base.valid(Joi.override, ...values); + } + + return base.valid(...values); + }; + + if (internals.simple(config)) { + return valid(Joi, config); + } + + if (typeof config === 'function') { + return Joi.custom(config); + } + + Assert(typeof config === 'object', 'Invalid schema content:', typeof config); + + if (Common.isResolvable(config)) { + return valid(Joi, config); + } + + if (Common.isSchema(config)) { + return config; + } + + if (Array.isArray(config)) { + for (const item of config) { + if (!internals.simple(item)) { + return Joi.alternatives().try(...config); + } + } + + return valid(Joi, ...config); + } + + if (config instanceof RegExp) { + return Joi.string().regex(config); + } + + if (config instanceof Date) { + return valid(Joi.date(), config); + } + + Assert(Object.getPrototypeOf(config) === Object.getPrototypeOf({}), 'Schema can only contain plain objects'); + + return Joi.object().keys(config); +}; + + +exports.ref = function (id, options) { + + return Ref.isRef(id) ? id : Ref.create(id, options); +}; + + +exports.compile = function (root, schema, options = {}) { + + Common.assertOptions(options, ['legacy']); + + // Compiled by any supported version + + const any = schema && schema[Common.symbols.any]; + if (any) { + Assert(options.legacy || any.version === Common.version, 'Cannot mix different versions of joi schemas:', any.version, Common.version); + return schema; + } + + // Uncompiled root + + if (typeof schema !== 'object' || + !options.legacy) { + + return exports.schema(root, schema, { appendPath: true }); // Will error if schema contains other versions + } + + // Scan schema for compiled parts + + const compiler = internals.walk(schema); + if (!compiler) { + return exports.schema(root, schema, { appendPath: true }); + } + + return compiler.compile(compiler.root, schema); +}; + + +internals.walk = function (schema) { + + if (typeof schema !== 'object') { + return null; + } + + if (Array.isArray(schema)) { + for (const item of schema) { + const compiler = internals.walk(item); + if (compiler) { + return compiler; + } + } + + return null; + } + + const any = schema[Common.symbols.any]; + if (any) { + return { root: schema[any.root], compile: any.compile }; + } + + Assert(Object.getPrototypeOf(schema) === Object.getPrototypeOf({}), 'Schema can only contain plain objects'); + + for (const key in schema) { + const compiler = internals.walk(schema[key]); + if (compiler) { + return compiler; + } + } + + return null; +}; + + +internals.simple = function (value) { + + return value === null || ['boolean', 'string', 'number'].includes(typeof value); +}; + + +exports.when = function (schema, condition, options) { + + if (options === undefined) { + Assert(condition && typeof condition === 'object', 'Missing options'); + + options = condition; + condition = Ref.create('.'); + } + + if (Array.isArray(options)) { + options = { switch: options }; + } + + Common.assertOptions(options, ['is', 'not', 'then', 'otherwise', 'switch', 'break']); + + // Schema condition + + if (Common.isSchema(condition)) { + Assert(options.is === undefined, '"is" can not be used with a schema condition'); + Assert(options.not === undefined, '"not" can not be used with a schema condition'); + Assert(options.switch === undefined, '"switch" can not be used with a schema condition'); + + return internals.condition(schema, { is: condition, then: options.then, otherwise: options.otherwise, break: options.break }); + } + + // Single condition + + Assert(Ref.isRef(condition) || typeof condition === 'string', 'Invalid condition:', condition); + Assert(options.not === undefined || options.is === undefined, 'Cannot combine "is" with "not"'); + + if (options.switch === undefined) { + let rule = options; + if (options.not !== undefined) { + rule = { is: options.not, then: options.otherwise, otherwise: options.then, break: options.break }; + } + + let is = rule.is !== undefined ? schema.$_compile(rule.is) : schema.$_root.invalid(null, false, 0, '').required(); + Assert(rule.then !== undefined || rule.otherwise !== undefined, 'options must have at least one of "then", "otherwise", or "switch"'); + Assert(rule.break === undefined || rule.then === undefined || rule.otherwise === undefined, 'Cannot specify then, otherwise, and break all together'); + + if (options.is !== undefined && + !Ref.isRef(options.is) && + !Common.isSchema(options.is)) { + + is = is.required(); // Only apply required if this wasn't already a schema or a ref + } + + return internals.condition(schema, { ref: exports.ref(condition), is, then: rule.then, otherwise: rule.otherwise, break: rule.break }); + } + + // Switch statement + + Assert(Array.isArray(options.switch), '"switch" must be an array'); + Assert(options.is === undefined, 'Cannot combine "switch" with "is"'); + Assert(options.not === undefined, 'Cannot combine "switch" with "not"'); + Assert(options.then === undefined, 'Cannot combine "switch" with "then"'); + + const rule = { + ref: exports.ref(condition), + switch: [], + break: options.break + }; + + for (let i = 0; i < options.switch.length; ++i) { + const test = options.switch[i]; + const last = i === options.switch.length - 1; + + Common.assertOptions(test, last ? ['is', 'then', 'otherwise'] : ['is', 'then']); + + Assert(test.is !== undefined, 'Switch statement missing "is"'); + Assert(test.then !== undefined, 'Switch statement missing "then"'); + + const item = { + is: schema.$_compile(test.is), + then: schema.$_compile(test.then) + }; + + if (!Ref.isRef(test.is) && + !Common.isSchema(test.is)) { + + item.is = item.is.required(); // Only apply required if this wasn't already a schema or a ref + } + + if (last) { + Assert(options.otherwise === undefined || test.otherwise === undefined, 'Cannot specify "otherwise" inside and outside a "switch"'); + const otherwise = options.otherwise !== undefined ? options.otherwise : test.otherwise; + if (otherwise !== undefined) { + Assert(rule.break === undefined, 'Cannot specify both otherwise and break'); + item.otherwise = schema.$_compile(otherwise); + } + } + + rule.switch.push(item); + } + + return rule; +}; + + +internals.condition = function (schema, condition) { + + for (const key of ['then', 'otherwise']) { + if (condition[key] === undefined) { + delete condition[key]; + } + else { + condition[key] = schema.$_compile(condition[key]); + } + } + + return condition; +}; diff --git a/node_modules/joi/lib/errors.js b/node_modules/joi/lib/errors.js new file mode 100755 index 0000000..0823f92 --- /dev/null +++ b/node_modules/joi/lib/errors.js @@ -0,0 +1,262 @@ +'use strict'; + +const Annotate = require('./annotate'); +const Common = require('./common'); +const Template = require('./template'); + + +const internals = {}; + + +exports.Report = class { + + constructor(code, value, local, flags, messages, state, prefs) { + + this.code = code; + this.flags = flags; + this.messages = messages; + this.path = state.path; + this.prefs = prefs; + this.state = state; + this.value = value; + + this.message = null; + this.template = null; + + this.local = local || {}; + this.local.label = exports.label(this.flags, this.state, this.prefs, this.messages); + + if (this.value !== undefined && + !this.local.hasOwnProperty('value')) { + + this.local.value = this.value; + } + + if (this.path.length) { + const key = this.path[this.path.length - 1]; + if (typeof key !== 'object') { + this.local.key = key; + } + } + } + + _setTemplate(template) { + + this.template = template; + + if (!this.flags.label && + this.path.length === 0) { + + const localized = this._template(this.template, 'root'); + if (localized) { + this.local.label = localized; + } + } + } + + toString() { + + if (this.message) { + return this.message; + } + + const code = this.code; + + if (!this.prefs.errors.render) { + return this.code; + } + + const template = this._template(this.template) || + this._template(this.prefs.messages) || + this._template(this.messages); + + if (template === undefined) { + return `Error code "${code}" is not defined, your custom type is missing the correct messages definition`; + } + + // Render and cache result + + this.message = template.render(this.value, this.state, this.prefs, this.local, { errors: this.prefs.errors, messages: [this.prefs.messages, this.messages] }); + if (!this.prefs.errors.label) { + this.message = this.message.replace(/^"" /, '').trim(); + } + + return this.message; + } + + _template(messages, code) { + + return exports.template(this.value, messages, code || this.code, this.state, this.prefs); + } +}; + + +exports.path = function (path) { + + let label = ''; + for (const segment of path) { + if (typeof segment === 'object') { // Exclude array single path segment + continue; + } + + if (typeof segment === 'string') { + if (label) { + label += '.'; + } + + label += segment; + } + else { + label += `[${segment}]`; + } + } + + return label; +}; + + +exports.template = function (value, messages, code, state, prefs) { + + if (!messages) { + return; + } + + if (Template.isTemplate(messages)) { + return code !== 'root' ? messages : null; + } + + let lang = prefs.errors.language; + if (Common.isResolvable(lang)) { + lang = lang.resolve(value, state, prefs); + } + + if (lang && + messages[lang] && + messages[lang][code] !== undefined) { + + return messages[lang][code]; + } + + return messages[code]; +}; + + +exports.label = function (flags, state, prefs, messages) { + + if (flags.label) { + return flags.label; + } + + if (!prefs.errors.label) { + return ''; + } + + let path = state.path; + if (prefs.errors.label === 'key' && + state.path.length > 1) { + + path = state.path.slice(-1); + } + + const normalized = exports.path(path); + if (normalized) { + return normalized; + } + + return exports.template(null, prefs.messages, 'root', state, prefs) || + messages && exports.template(null, messages, 'root', state, prefs) || + 'value'; +}; + + +exports.process = function (errors, original, prefs) { + + if (!errors) { + return null; + } + + const { override, message, details } = exports.details(errors); + if (override) { + return override; + } + + if (prefs.errors.stack) { + return new exports.ValidationError(message, details, original); + } + + const limit = Error.stackTraceLimit; + Error.stackTraceLimit = 0; + const validationError = new exports.ValidationError(message, details, original); + Error.stackTraceLimit = limit; + return validationError; +}; + + +exports.details = function (errors, options = {}) { + + let messages = []; + const details = []; + + for (const item of errors) { + + // Override + + if (item instanceof Error) { + if (options.override !== false) { + return { override: item }; + } + + const message = item.toString(); + messages.push(message); + + details.push({ + message, + type: 'override', + context: { error: item } + }); + + continue; + } + + // Report + + const message = item.toString(); + messages.push(message); + + details.push({ + message, + path: item.path.filter((v) => typeof v !== 'object'), + type: item.code, + context: item.local + }); + } + + if (messages.length > 1) { + messages = [...new Set(messages)]; + } + + return { message: messages.join('. '), details }; +}; + + +exports.ValidationError = class extends Error { + + constructor(message, details, original) { + + super(message); + this._original = original; + this.details = details; + } + + static isError(err) { + + return err instanceof exports.ValidationError; + } +}; + + +exports.ValidationError.prototype.isJoi = true; + +exports.ValidationError.prototype.name = 'ValidationError'; + +exports.ValidationError.prototype.annotate = Annotate.error; diff --git a/node_modules/joi/lib/extend.js b/node_modules/joi/lib/extend.js new file mode 100755 index 0000000..2a5acf7 --- /dev/null +++ b/node_modules/joi/lib/extend.js @@ -0,0 +1,312 @@ +'use strict'; + +const Assert = require('@hapi/hoek/lib/assert'); +const Clone = require('@hapi/hoek/lib/clone'); + +const Common = require('./common'); +const Messages = require('./messages'); + + +const internals = {}; + + +exports.type = function (from, options) { + + const base = Object.getPrototypeOf(from); + const prototype = Clone(base); + const schema = from._assign(Object.create(prototype)); + const def = Object.assign({}, options); // Shallow cloned + delete def.base; + + prototype._definition = def; + + const parent = base._definition || {}; + def.messages = Messages.merge(parent.messages, def.messages); + def.properties = Object.assign({}, parent.properties, def.properties); + + // Type + + schema.type = def.type; + + // Flags + + def.flags = Object.assign({}, parent.flags, def.flags); + + // Terms + + const terms = Object.assign({}, parent.terms); + if (def.terms) { + for (const name in def.terms) { // Only apply own terms + const term = def.terms[name]; + Assert(schema.$_terms[name] === undefined, 'Invalid term override for', def.type, name); + schema.$_terms[name] = term.init; + terms[name] = term; + } + } + + def.terms = terms; + + // Constructor arguments + + if (!def.args) { + def.args = parent.args; + } + + // Prepare + + def.prepare = internals.prepare(def.prepare, parent.prepare); + + // Coerce + + if (def.coerce) { + if (typeof def.coerce === 'function') { + def.coerce = { method: def.coerce }; + } + + if (def.coerce.from && + !Array.isArray(def.coerce.from)) { + + def.coerce = { method: def.coerce.method, from: [].concat(def.coerce.from) }; + } + } + + def.coerce = internals.coerce(def.coerce, parent.coerce); + + // Validate + + def.validate = internals.validate(def.validate, parent.validate); + + // Rules + + const rules = Object.assign({}, parent.rules); + if (def.rules) { + for (const name in def.rules) { + const rule = def.rules[name]; + Assert(typeof rule === 'object', 'Invalid rule definition for', def.type, name); + + let method = rule.method; + if (method === undefined) { + method = function () { + + return this.$_addRule(name); + }; + } + + if (method) { + Assert(!prototype[name], 'Rule conflict in', def.type, name); + prototype[name] = method; + } + + Assert(!rules[name], 'Rule conflict in', def.type, name); + rules[name] = rule; + + if (rule.alias) { + const aliases = [].concat(rule.alias); + for (const alias of aliases) { + prototype[alias] = rule.method; + } + } + + if (rule.args) { + rule.argsByName = new Map(); + rule.args = rule.args.map((arg) => { + + if (typeof arg === 'string') { + arg = { name: arg }; + } + + Assert(!rule.argsByName.has(arg.name), 'Duplicated argument name', arg.name); + + if (Common.isSchema(arg.assert)) { + arg.assert = arg.assert.strict().label(arg.name); + } + + rule.argsByName.set(arg.name, arg); + return arg; + }); + } + } + } + + def.rules = rules; + + // Modifiers + + const modifiers = Object.assign({}, parent.modifiers); + if (def.modifiers) { + for (const name in def.modifiers) { + Assert(!prototype[name], 'Rule conflict in', def.type, name); + + const modifier = def.modifiers[name]; + Assert(typeof modifier === 'function', 'Invalid modifier definition for', def.type, name); + + const method = function (arg) { + + return this.rule({ [name]: arg }); + }; + + prototype[name] = method; + modifiers[name] = modifier; + } + } + + def.modifiers = modifiers; + + // Overrides + + if (def.overrides) { + prototype._super = base; + schema.$_super = {}; // Backwards compatibility + for (const override in def.overrides) { + Assert(base[override], 'Cannot override missing', override); + def.overrides[override][Common.symbols.parent] = base[override]; + schema.$_super[override] = base[override].bind(schema); // Backwards compatibility + } + + Object.assign(prototype, def.overrides); + } + + // Casts + + def.cast = Object.assign({}, parent.cast, def.cast); + + // Manifest + + const manifest = Object.assign({}, parent.manifest, def.manifest); + manifest.build = internals.build(def.manifest && def.manifest.build, parent.manifest && parent.manifest.build); + def.manifest = manifest; + + // Rebuild + + def.rebuild = internals.rebuild(def.rebuild, parent.rebuild); + + return schema; +}; + + +// Helpers + +internals.build = function (child, parent) { + + if (!child || + !parent) { + + return child || parent; + } + + return function (obj, desc) { + + return parent(child(obj, desc), desc); + }; +}; + + +internals.coerce = function (child, parent) { + + if (!child || + !parent) { + + return child || parent; + } + + return { + from: child.from && parent.from ? [...new Set([...child.from, ...parent.from])] : null, + method(value, helpers) { + + let coerced; + if (!parent.from || + parent.from.includes(typeof value)) { + + coerced = parent.method(value, helpers); + if (coerced) { + if (coerced.errors || + coerced.value === undefined) { + + return coerced; + } + + value = coerced.value; + } + } + + if (!child.from || + child.from.includes(typeof value)) { + + const own = child.method(value, helpers); + if (own) { + return own; + } + } + + return coerced; + } + }; +}; + + +internals.prepare = function (child, parent) { + + if (!child || + !parent) { + + return child || parent; + } + + return function (value, helpers) { + + const prepared = child(value, helpers); + if (prepared) { + if (prepared.errors || + prepared.value === undefined) { + + return prepared; + } + + value = prepared.value; + } + + return parent(value, helpers) || prepared; + }; +}; + + +internals.rebuild = function (child, parent) { + + if (!child || + !parent) { + + return child || parent; + } + + return function (schema) { + + parent(schema); + child(schema); + }; +}; + + +internals.validate = function (child, parent) { + + if (!child || + !parent) { + + return child || parent; + } + + return function (value, helpers) { + + const result = parent(value, helpers); + if (result) { + if (result.errors && + (!Array.isArray(result.errors) || result.errors.length)) { + + return result; + } + + value = result.value; + } + + return child(value, helpers) || result; + }; +}; diff --git a/node_modules/joi/lib/index.d.ts b/node_modules/joi/lib/index.d.ts new file mode 100644 index 0000000..2b2f745 --- /dev/null +++ b/node_modules/joi/lib/index.d.ts @@ -0,0 +1,2206 @@ +// The following definitions have been copied (almost) as-is from: +// https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/hapi__joi +// +// Note: This file is expected to change dramatically in the next major release and have been +// imported here to make migrating back to the "joi" module name simpler. It include known bugs +// and other issues. It does not include some new features included in version 17.2.0 or newer. +// +// TypeScript Version: 2.8 + +// TODO express type of Schema in a type-parameter (.default, .valid, .example etc) + +declare namespace Joi { + type Types = + | 'any' + | 'alternatives' + | 'array' + | 'boolean' + | 'binary' + | 'date' + | 'function' + | 'link' + | 'number' + | 'object' + | 'string' + | 'symbol'; + + type BasicType = boolean | number | string | any[] | object | null; + + type LanguageMessages = Record; + + type PresenceMode = 'optional' | 'required' | 'forbidden'; + + interface ErrorFormattingOptions { + /** + * when true, error message templates will escape special characters to HTML entities, for security purposes. + * + * @default false + */ + escapeHtml?: boolean; + /** + * defines the value used to set the label context variable. + */ + label?: 'path' | 'key' | false; + /** + * The preferred language code for error messages. + * The value is matched against keys at the root of the messages object, and then the error code as a child key of that. + * Can be a reference to the value, global context, or local context which is the root value passed to the validation function. + * + * Note that references to the value are usually not what you want as they move around the value structure relative to where the error happens. + * Instead, either use the global context, or the absolute value (e.g. `Joi.ref('/variable')`) + */ + language?: keyof LanguageMessages; + /** + * when false, skips rendering error templates. Useful when error messages are generated elsewhere to save processing time. + * + * @default true + */ + render?: boolean; + /** + * when true, the main error will possess a stack trace, otherwise it will be disabled. + * Defaults to false for performances reasons. Has no effect on platforms other than V8/node.js as it uses the Stack trace API. + * + * @default false + */ + stack?: boolean; + /** + * overrides the way values are wrapped (e.g. `[]` arround arrays, `""` around labels). + * Each key can be set to a string with one (same character before and after the value) or two characters (first character + * before and second character after), or `false` to disable wrapping. + */ + wrap?: { + /** + * the characters used around `{#label}` references. Defaults to `'"'`. + * + * @default '"' + */ + label?: string | false, + + /** + * the characters used around array avlues. Defaults to `'[]'` + * + * @default '[]' + */ + array?: string | false + }; + } + + interface BaseValidationOptions { + /** + * when true, stops validation on the first error, otherwise returns all the errors found. + * + * @default true + */ + abortEarly?: boolean; + /** + * when true, allows object to contain unknown keys which are ignored. + * + * @default false + */ + allowUnknown?: boolean; + /** + * when true, schema caching is enabled (for schemas with explicit caching rules). + * + * @default false + */ + cache?: boolean; + /** + * provides an external data set to be used in references + */ + context?: Context; + /** + * when true, attempts to cast values to the required types (e.g. a string to a number). + * + * @default true + */ + convert?: boolean; + /** + * sets the string format used when converting dates to strings in error messages and casting. + * + * @default 'iso' + */ + dateFormat?: 'date' | 'iso' | 'string' | 'time' | 'utc'; + /** + * when true, valid results and throw errors are decorated with a debug property which includes an array of the validation steps used to generate the returned result. + * + * @default false + */ + debug?: boolean; + /** + * error formatting settings. + */ + errors?: ErrorFormattingOptions; + /** + * if false, the external rules set with `any.external()` are ignored, which is required to ignore any external validations in synchronous mode (or an exception is thrown). + * + * @default true + */ + externals?: boolean; + /** + * when true, do not apply default values. + * + * @default false + */ + noDefaults?: boolean; + /** + * when true, inputs are shallow cloned to include non-enumerables properties. + * + * @default false + */ + nonEnumerables?: boolean; + /** + * sets the default presence requirements. Supported modes: 'optional', 'required', and 'forbidden'. + * + * @default 'optional' + */ + presence?: PresenceMode; + /** + * when true, ignores unknown keys with a function value. + * + * @default false + */ + skipFunctions?: boolean; + /** + * remove unknown elements from objects and arrays. + * - when true, all unknown elements will be removed + * - when an object: + * - objects - set to true to remove unknown keys from objects + * + * @default false + */ + stripUnknown?: boolean | { arrays?: boolean; objects?: boolean }; + } + + interface ValidationOptions extends BaseValidationOptions { + /** + * overrides individual error messages. Defaults to no override (`{}`). + * Messages use the same rules as templates. + * Variables in double braces `{{var}}` are HTML escaped if the option `errors.escapeHtml` is set to true. + * + * @default {} + */ + messages?: LanguageMessages; + } + + interface AsyncValidationOptions extends ValidationOptions { + /** + * when true, warnings are returned alongside the value (i.e. `{ value, warning }`). + * + * @default false + */ + warnings?: boolean; + } + + interface LanguageMessageTemplate { + source: string; + rendered: string; + } + + interface ErrorValidationOptions extends BaseValidationOptions { + messages?: Record; + } + + interface RenameOptions { + /** + * if true, does not delete the old key name, keeping both the new and old keys in place. + * + * @default false + */ + alias?: boolean; + /** + * if true, allows renaming multiple keys to the same destination where the last rename wins. + * + * @default false + */ + multiple?: boolean; + /** + * if true, allows renaming a key over an existing key. + * + * @default false + */ + override?: boolean; + /** + * if true, skip renaming of a key if it's undefined. + * + * @default false + */ + ignoreUndefined?: boolean; + } + + interface TopLevelDomainOptions { + /** + * - `true` to use the IANA list of registered TLDs. This is the default value. + * - `false` to allow any TLD not listed in the `deny` list, if present. + * - A `Set` or array of the allowed TLDs. Cannot be used together with `deny`. + */ + allow?: Set | string[] | boolean; + /** + * - A `Set` or array of the forbidden TLDs. Cannot be used together with a custom `allow` list. + */ + deny?: Set | string[]; + } + + interface HierarchySeparatorOptions { + /** + * overrides the default `.` hierarchy separator. Set to false to treat the key as a literal value. + * + * @default '.' + */ + separator?: string | false; + } + + interface EmailOptions { + /** + * If `true`, Unicode characters are permitted + * + * @default true + */ + allowUnicode?: boolean; + /** + * if `true`, ignore invalid email length errors. + * + * @default false + */ + ignoreLength?: boolean; + /** + * if true, allows multiple email addresses in a single string, separated by , or the separator characters. + * + * @default false + */ + multiple?: boolean; + /** + * when multiple is true, overrides the default , separator. String can be a single character or multiple separator characters. + * + * @default ',' + */ + separator?: string | string[]; + /** + * Options for TLD (top level domain) validation. By default, the TLD must be a valid name listed on the [IANA registry](http://data.iana.org/TLD/tlds-alpha-by-domain.txt) + * + * @default { allow: true } + */ + tlds?: TopLevelDomainOptions | false; + /** + * Number of segments required for the domain. Be careful since some domains, such as `io`, directly allow email. + * + * @default 2 + */ + minDomainSegments?: number; + } + + interface DomainOptions { + /** + * If `true`, Unicode characters are permitted + * + * @default true + */ + allowUnicode?: boolean; + + /** + * Options for TLD (top level domain) validation. By default, the TLD must be a valid name listed on the [IANA registry](http://data.iana.org/TLD/tlds-alpha-by-domain.txt) + * + * @default { allow: true } + */ + tlds?: TopLevelDomainOptions | false; + /** + * Number of segments required for the domain. + * + * @default 2 + */ + minDomainSegments?: number; + } + + interface HexOptions { + /** + * hex decoded representation must be byte aligned. + * @default false + */ + byteAligned?: boolean; + } + + interface IpOptions { + /** + * One or more IP address versions to validate against. Valid values: ipv4, ipv6, ipvfuture + */ + version?: string | string[]; + /** + * Used to determine if a CIDR is allowed or not. Valid values: optional, required, forbidden + */ + cidr?: PresenceMode; + } + + type GuidVersions = 'uuidv1' | 'uuidv2' | 'uuidv3' | 'uuidv4' | 'uuidv5'; + + interface GuidOptions { + version: GuidVersions[] | GuidVersions; + } + + interface UriOptions { + /** + * Specifies one or more acceptable Schemes, should only include the scheme name. + * Can be an Array or String (strings are automatically escaped for use in a Regular Expression). + */ + scheme?: string | RegExp | Array; + /** + * Allow relative URIs. + * + * @default false + */ + allowRelative?: boolean; + /** + * Restrict only relative URIs. + * + * @default false + */ + relativeOnly?: boolean; + /** + * Allows unencoded square brackets inside the query string. + * This is NOT RFC 3986 compliant but query strings like abc[]=123&abc[]=456 are very common these days. + * + * @default false + */ + allowQuerySquareBrackets?: boolean; + /** + * Validate the domain component using the options specified in `string.domain()`. + */ + domain?: DomainOptions; + } + + interface DataUriOptions { + /** + * optional parameter defaulting to true which will require `=` padding if true or make padding optional if false + * + * @default true + */ + paddingRequired?: boolean; + } + + interface Base64Options extends Pick { + /** + * if true, uses the URI-safe base64 format which replaces `+` with `-` and `\` with `_`. + * + * @default false + */ + urlSafe?: boolean; + } + + interface SwitchCases { + /** + * the required condition joi type. + */ + is: SchemaLike; + /** + * the alternative schema type if the condition is true. + */ + then: SchemaLike; + } + + interface SwitchDefault { + /** + * the alternative schema type if no cases matched. + * Only one otherwise statement is allowed in switch as the last array item. + */ + otherwise: SchemaLike; + } + + interface WhenOptions { + /** + * the required condition joi type. + */ + is?: SchemaLike; + + /** + * the negative version of `is` (`then` and `otherwise` have reverse + * roles). + */ + not?: SchemaLike; + + /** + * the alternative schema type if the condition is true. Required if otherwise or switch are missing. + */ + then?: SchemaLike; + + /** + * the alternative schema type if the condition is false. Required if then or switch are missing. + */ + otherwise?: SchemaLike; + + /** + * the list of cases. Required if then is missing. Required if then or otherwise are missing. + */ + switch?: Array; + + /** + * whether to stop applying further conditions if the condition is true. + */ + break?: boolean; + } + + interface WhenSchemaOptions { + /** + * the alternative schema type if the condition is true. Required if otherwise is missing. + */ + then?: SchemaLike; + /** + * the alternative schema type if the condition is false. Required if then is missing. + */ + otherwise?: SchemaLike; + } + + interface Cache { + /** + * Add an item to the cache. + * + * Note that key and value can be anything including objects, array, etc. + */ + set(key: any, value: any): void; + + /** + * Retrieve an item from the cache. + * + * Note that key and value can be anything including objects, array, etc. + */ + get(key: any): any; + } + interface CacheProvisionOptions { + /** + * number of items to store in the cache before the least used items are dropped. + * + * @default 1000 + */ + max: number; + } + + interface CacheConfiguration { + /** + * Provisions a simple LRU cache for caching simple inputs (`undefined`, `null`, strings, numbers, and booleans). + */ + provision(options?: CacheProvisionOptions): void; + } + + interface CompileOptions { + /** + * If true and the provided schema is (or contains parts) using an older version of joi, will return a compiled schema that is compatible with the older version. + * If false, the schema is always compiled using the current version and if older schema components are found, an error is thrown. + */ + legacy: boolean; + } + + interface IsSchemaOptions { + /** + * If true, will identify schemas from older versions of joi, otherwise will throw an error. + * + * @default false + */ + legacy: boolean; + } + + interface ReferenceOptions extends HierarchySeparatorOptions { + /** + * a function with the signature `function(value)` where `value` is the resolved reference value and the return value is the adjusted value to use. + * Note that the adjust feature will not perform any type validation on the adjusted value and it must match the value expected by the rule it is used in. + * Cannot be used with `map`. + * + * @example `(value) => value + 5` + */ + adjust?: (value: any) => any; + + /** + * an array of array pairs using the format `[[key, value], [key, value]]` used to maps the resolved reference value to another value. + * If the resolved value is not in the map, it is returned as-is. + * Cannot be used with `adjust`. + */ + map?: Array<[any, any]>; + + /** + * overrides default prefix characters. + */ + prefix?: { + /** + * references to the globally provided context preference. + * + * @default '$' + */ + global?: string; + + /** + * references to error-specific or rule specific context. + * + * @default '#' + */ + local?: string; + + /** + * references to the root value being validated. + * + * @default '/' + */ + root?: string; + }; + + /** + * If set to a number, sets the reference relative starting point. + * Cannot be combined with separator prefix characters. + * Defaults to the reference key prefix (or 1 if none present) + */ + ancestor?: number; + + /** + * creates an in-reference. + */ + in?: boolean; + + /** + * when true, the reference resolves by reaching into maps and sets. + */ + iterables?: boolean; + + /** + * when true, the value of the reference is used instead of its name in error messages + * and template rendering. Defaults to false. + */ + render?: boolean; + } + + interface StringRegexOptions { + /** + * optional pattern name. + */ + name?: string; + + /** + * when true, the provided pattern will be disallowed instead of required. + * + * @default false + */ + invert?: boolean; + } + + interface RuleOptions { + /** + * if true, the rules will not be replaced by the same unique rule later. + * + * For example, `Joi.number().min(1).rule({ keep: true }).min(2)` will keep both `min()` rules instead of the later rule overriding the first. + * + * @default false + */ + keep?: boolean; + + /** + * a single message string or a messages object where each key is an error code and corresponding message string as value. + * + * The object is the same as the messages used as an option in `any.validate()`. + * The strings can be plain messages or a message template. + */ + message?: string | LanguageMessages; + + /** + * if true, turns any error generated by the ruleset to warnings. + */ + warn?: boolean; + } + + interface ErrorReport extends Error { + code: string; + flags: Record; + path: string[]; + prefs: ErrorValidationOptions; + messages: LanguageMessages; + state: State; + value: any; + } + + interface ValidationError extends Error { + name: 'ValidationError'; + + isJoi: boolean; + + /** + * array of errors. + */ + details: ValidationErrorItem[]; + + /** + * function that returns a string with an annotated version of the object pointing at the places where errors occurred. + * + * NOTE: This method does not exist in browser builds of Joi + * + * @param stripColors - if truthy, will strip the colors out of the output. + */ + annotate(stripColors?: boolean): string; + + _original: any; + } + + interface ValidationErrorItem { + message: string; + path: Array; + type: string; + context?: Context; + } + + type ValidationErrorFunction = (errors: ErrorReport[]) => string | ValidationErrorItem | Error; + + interface ValidationResult { + error?: ValidationError; + errors?: ValidationError; + warning?: ValidationError; + value: any; + } + + interface CreateErrorOptions { + flags?: boolean; + messages?: LanguageMessages; + } + + interface ModifyOptions { + each?: boolean; + once?: boolean; + ref?: boolean; + schema?: boolean; + } + + interface MutateRegisterOptions { + family?: any; + key?: any; + } + + interface SetFlagOptions { + clone: boolean; + } + + interface CustomHelpers { + schema: ExtensionBoundSchema; + state: State; + prefs: ValidationOptions; + original: V; + warn: (code: string, local?: Context) => void; + error: (code: string, local?: Context) => ErrorReport; + message: (messages: LanguageMessages, local?: Context) => ErrorReport; + } + + type CustomValidator = (value: V, helpers: CustomHelpers) => V | ErrorReport; + + type ExternalValidationFunction = (value: any) => any; + + type SchemaLikeWithoutArray = string | number | boolean | null | Schema | SchemaMap; + type SchemaLike = SchemaLikeWithoutArray | object; + + type SchemaMap = { + [key in keyof TSchema]?: SchemaLike | SchemaLike[]; + }; + + type Schema = + | AnySchema + | ArraySchema + | AlternativesSchema + | BinarySchema + | BooleanSchema + | DateSchema + | FunctionSchema + | NumberSchema + | ObjectSchema + | StringSchema + | LinkSchema + | SymbolSchema; + + type SchemaFunction = (schema: Schema) => Schema; + + interface AddRuleOptions { + name: string; + args?: { + [key: string]: any; + }; + } + + interface GetRuleOptions { + args?: Record; + method?: string; + name: string; + operator?: string; + } + + interface SchemaInternals { + /** + * Parent schema object. + */ + $_super: Schema; + + /** + * Terms of current schema. + */ + $_terms: Record; + + /** + * Adds a rule to current validation schema. + */ + $_addRule(rule: string | AddRuleOptions): Schema; + + /** + * Internally compiles schema. + */ + $_compile(schema: SchemaLike, options?: CompileOptions): Schema; + + /** + * Creates a joi error object. + */ + $_createError( + code: string, + value: any, + context: Context, + state: State, + prefs: ValidationOptions, + options?: CreateErrorOptions, + ): Err; + + /** + * Get value from given flag. + */ + $_getFlag(name: string): any; + + /** + * Retrieve some rule configuration. + */ + $_getRule(name: string): GetRuleOptions | undefined; + + $_mapLabels(path: string | string[]): string; + + /** + * Returns true if validations runs fine on given value. + */ + $_match(value: any, state: State, prefs: ValidationOptions): boolean; + + $_modify(options?: ModifyOptions): Schema; + + /** + * Resets current schema. + */ + $_mutateRebuild(): this; + + $_mutateRegister(schema: Schema, options?: MutateRegisterOptions): void; + + /** + * Get value from given property. + */ + $_property(name: string): any; + + /** + * Get schema at given path. + */ + $_reach(path: string[]): Schema; + + /** + * Get current schema root references. + */ + $_rootReferences(): any; + + /** + * Set flag to given value. + */ + $_setFlag(flag: string, value: any, options?: SetFlagOptions): void; + + /** + * Runs internal validations against given value. + */ + $_validate(value: any, state: State, prefs: ValidationOptions): ValidationResult; + } + + interface AnySchema extends SchemaInternals { + /** + * Flags of current schema. + */ + _flags: Record; + + /** + * Starts a ruleset in order to apply multiple rule options. The set ends when `rule()`, `keep()`, `message()`, or `warn()` is called. + */ + $: this; + + /** + * Starts a ruleset in order to apply multiple rule options. The set ends when `rule()`, `keep()`, `message()`, or `warn()` is called. + */ + ruleset: this; + + type?: Types | string; + + /** + * Whitelists a value + */ + allow(...values: any[]): this; + + /** + * Assign target alteration options to a schema that are applied when `any.tailor()` is called. + * @param targets - an object where each key is a target name, and each value is a function that takes an schema and returns an schema. + */ + alter(targets: Record): this; + + /** + * By default, some Joi methods to function properly need to rely on the Joi instance they are attached to because + * they use `this` internally. + * So `Joi.string()` works but if you extract the function from it and call `string()` it won't. + * `bind()` creates a new Joi instance where all the functions relying on `this` are bound to the Joi instance. + */ + bind(): this; + + /** + * Adds caching to the schema which will attempt to cache the validation results (success and failures) of incoming inputs. + * If no cache is passed, a default cache is provisioned by using `cache.provision()` internally. + */ + cache(cache?: Cache): this; + + /** + * Casts the validated value to the specified type. + */ + cast(to: 'map' | 'number' | 'set' | 'string'): this; + + /** + * Returns a new type that is the result of adding the rules of one type to another. + */ + concat(schema: this): this; + + /** + * Adds a custom validation function. + */ + custom(fn: CustomValidator, description?: string): this; + + /** + * Sets a default value if the original value is `undefined` where: + * @param value - the default value. One of: + * - a literal value (string, number, object, etc.) + * - a [references](#refkey-options) + * - a function which returns the default value using the signature `function(parent, helpers)` where: + * - `parent` - a clone of the object containing the value being validated. Note that since specifying a + * `parent` ragument performs cloning, do not declare format arguments if you are not using them. + * - `helpers` - same as thsoe described in [`any.custom()`](anycustomermethod_description) + * + * When called without any `value` on an object schema type, a default value will be automatically generated + * based on the default values of the object keys. + * + * Note that if value is an object, any changes to the object after `default()` is called will change the + * reference and any future assignment. + */ + default(value?: BasicType | Reference | ((parent: any, helpers: CustomHelpers) => BasicType | Reference)): this; + + /** + * Returns a plain object representing the schema's rules and properties + */ + describe(): Description; + + /** + * Annotates the key + */ + description(desc: string): this; + + /** + * Disallows values. + */ + disallow(...values: any[]): this; + + /** + * Considers anything that matches the schema to be empty (undefined). + * @param schema - any object or joi schema to match. An undefined schema unsets that rule. + */ + empty(schema?: SchemaLike): this; + + /** + * Adds the provided values into the allowed whitelist and marks them as the only valid values allowed. + */ + equal(...values: any[]): this; + + /** + * Overrides the default joi error with a custom error if the rule fails where: + * @param err - can be: + * an instance of `Error` - the override error. + * a `function(errors)`, taking an array of errors as argument, where it must either: + * return a `string` - substitutes the error message with this text + * return a single ` object` or an `Array` of it, where: + * `type` - optional parameter providing the type of the error (eg. `number.min`). + * `message` - optional parameter if `template` is provided, containing the text of the error. + * `template` - optional parameter if `message` is provided, containing a template string, using the same format as usual joi language errors. + * `context` - optional parameter, to provide context to your error if you are using the `template`. + * return an `Error` - same as when you directly provide an `Error`, but you can customize the error message based on the errors. + * + * Note that if you provide an `Error`, it will be returned as-is, unmodified and undecorated with any of the + * normal joi error properties. If validation fails and another error is found before the error + * override, that error will be returned and the override will be ignored (unless the `abortEarly` + * option has been set to `false`). + */ + error(err: Error | ValidationErrorFunction): this; + + /** + * Annotates the key with an example value, must be valid. + */ + example(value: any, options?: { override: boolean }): this; + + /** + * Marks a key as required which will not allow undefined as value. All keys are optional by default. + */ + exist(): this; + + /** + * Adds an external validation rule. + * + * Note that external validation rules are only called after the all other validation rules for the entire schema (from the value root) are checked. + * This means that any changes made to the value by the external rules are not available to any other validation rules during the non-external validation phase. + * If schema validation failed, no external validation rules are called. + */ + external(method: ExternalValidationFunction, description?: string): this; + + /** + * Returns a sub-schema based on a path of object keys or schema ids. + * + * @param path - a dot `.` separated path string or a pre-split array of path keys. The keys must match the sub-schema id or object key (if no id was explicitly set). + */ + extract(path: string | string[]): Schema; + + /** + * Sets a failover value if the original value fails passing validation. + * + * @param value - the failover value. value supports references. value may be assigned a function which returns the default value. + * + * If value is specified as a function that accepts a single parameter, that parameter will be a context object that can be used to derive the resulting value. + * Note that if value is an object, any changes to the object after `failover()` is called will change the reference and any future assignment. + * Use a function when setting a dynamic value (e.g. the current time). + * Using a function with a single argument performs some internal cloning which has a performance impact. + * If you do not need access to the context, define the function without any arguments. + */ + failover(value: any): this; + + /** + * Marks a key as forbidden which will not allow any value except undefined. Used to explicitly forbid keys. + */ + forbidden(): this; + + /** + * Returns a new schema where each of the path keys listed have been modified. + * + * @param key - an array of key strings, a single key string, or an array of arrays of pre-split key strings. + * @param adjuster - a function which must return a modified schema. + */ + fork(key: string | string[] | string[][], adjuster: SchemaFunction): this; + + /** + * Sets a schema id for reaching into the schema via `any.extract()`. + * If no id is set, the schema id defaults to the object key it is associated with. + * If the schema is used in an array or alternatives type and no id is set, the schema in unreachable. + */ + id(name?: string): this; + + /** + * Disallows values. + */ + invalid(...values: any[]): this; + + /** + * Same as `rule({ keep: true })`. + * + * Note that `keep()` will terminate the current ruleset and cannot be followed by another rule option. + * Use `rule()` to apply multiple rule options. + */ + keep(): this; + + /** + * Overrides the key name in error messages. + */ + label(name: string): this; + + /** + * Same as `rule({ message })`. + * + * Note that `message()` will terminate the current ruleset and cannot be followed by another rule option. + * Use `rule()` to apply multiple rule options. + */ + message(message: string): this; + + /** + * Same as `any.prefs({ messages })`. + * Note that while `any.message()` applies only to the last rule or ruleset, `any.messages()` applies to the entire schema. + */ + messages(messages: LanguageMessages): this; + + /** + * Attaches metadata to the key. + */ + meta(meta: object): this; + + /** + * Disallows values. + */ + not(...values: any[]): this; + + /** + * Annotates the key + */ + note(...notes: string[]): this; + + /** + * Requires the validated value to match of the provided `any.allow()` values. + * It has not effect when called together with `any.valid()` since it already sets the requirements. + * When used with `any.allow()` it converts it to an `any.valid()`. + */ + only(): this; + + /** + * Marks a key as optional which will allow undefined as values. Used to annotate the schema for readability as all keys are optional by default. + */ + optional(): this; + + /** + * Overrides the global validate() options for the current key and any sub-key. + */ + options(options: ValidationOptions): this; + + /** + * Overrides the global validate() options for the current key and any sub-key. + */ + prefs(options: ValidationOptions): this; + + /** + * Overrides the global validate() options for the current key and any sub-key. + */ + preferences(options: ValidationOptions): this; + + /** + * Sets the presence mode for the schema. + */ + presence(mode: PresenceMode): this; + + /** + * Outputs the original untouched value instead of the casted value. + */ + raw(enabled?: boolean): this; + + /** + * Marks a key as required which will not allow undefined as value. All keys are optional by default. + */ + required(): this; + + /** + * Applies a set of rule options to the current ruleset or last rule added. + * + * When applying rule options, the last rule (e.g. `min()`) is used unless there is an active ruleset defined (e.g. `$.min().max()`) + * in which case the options are applied to all the provided rules. + * Once `rule()` is called, the previous rules can no longer be modified and any active ruleset is terminated. + * + * Rule modifications can only be applied to supported rules. + * Most of the `any` methods do not support rule modifications because they are implemented using schema flags (e.g. `required()`) or special + * internal implementation (e.g. `valid()`). + * In those cases, use the `any.messages()` method to override the error codes for the errors you want to customize. + */ + rule(options: RuleOptions): this; + + /** + * Registers a schema to be used by decendents of the current schema in named link references. + */ + shared(ref: Schema): this; + + /** + * Sets the options.convert options to false which prevent type casting for the current key and any child keys. + */ + strict(isStrict?: boolean): this; + + /** + * Marks a key to be removed from a resulting object or array after validation. Used to sanitize output. + * @param [enabled=true] - if true, the value is stripped, otherwise the validated value is retained. Defaults to true. + */ + strip(enabled?: boolean): this; + + /** + * Annotates the key + */ + tag(...tags: string[]): this; + + /** + * Applies any assigned target alterations to a copy of the schema that were applied via `any.alter()`. + */ + tailor(targets: string | string[]): Schema; + + /** + * Annotates the key with an unit name. + */ + unit(name: string): this; + + /** + * Adds the provided values into the allowed whitelist and marks them as the only valid values allowed. + */ + valid(...values: any[]): this; + + /** + * Validates a value using the schema and options. + */ + validate(value: any, options?: ValidationOptions): ValidationResult; + + /** + * Validates a value using the schema and options. + */ + validateAsync(value: any, options?: AsyncValidationOptions): Promise; + + /** + * Same as `rule({ warn: true })`. + * Note that `warn()` will terminate the current ruleset and cannot be followed by another rule option. + * Use `rule()` to apply multiple rule options. + */ + warn(): this; + + /** + * Generates a warning. + * When calling `any.validateAsync()`, set the `warning` option to true to enable warnings. + * Warnings are reported separately from errors alongside the result value via the warning key (i.e. `{ value, warning }`). + * Warning are always included when calling `any.validate()`. + */ + warning(code: string, context: Context): this; + + /** + * Converts the type into an alternatives type where the conditions are merged into the type definition where: + */ + when(ref: string | Reference, options: WhenOptions): this; + + /** + * Converts the type into an alternatives type where the conditions are merged into the type definition where: + */ + when(ref: Schema, options: WhenSchemaOptions): this; + } + + interface Description { + type?: Types | string; + label?: string; + description?: string; + flags?: object; + notes?: string[]; + tags?: string[]; + meta?: any[]; + example?: any[]; + valids?: any[]; + invalids?: any[]; + unit?: string; + options?: ValidationOptions; + [key: string]: any; + } + + interface Context { + [key: string]: any; + key?: string; + label?: string; + value?: any; + } + + interface State { + key?: string; + path?: string; + parent?: any; + reference?: any; + ancestors?: any; + localize?(...args: any[]): State; + } + + interface BooleanSchema extends AnySchema { + /** + * Allows for additional values to be considered valid booleans by converting them to false during validation. + * String comparisons are by default case insensitive, + * see `boolean.sensitive()` to change this behavior. + * @param values - strings, numbers or arrays of them + */ + falsy(...values: Array): this; + + /** + * Allows the values provided to truthy and falsy as well as the "true" and "false" default conversion + * (when not in `strict()` mode) to be matched in a case insensitive manner. + */ + sensitive(enabled?: boolean): this; + + /** + * Allows for additional values to be considered valid booleans by converting them to true during validation. + * String comparisons are by default case insensitive, see `boolean.sensitive()` to change this behavior. + * @param values - strings, numbers or arrays of them + */ + truthy(...values: Array): this; + } + + interface NumberSchema extends AnySchema { + /** + * Specifies that the value must be greater than limit. + * It can also be a reference to another field. + */ + greater(limit: number | Reference): this; + + /** + * Requires the number to be an integer (no floating point). + */ + integer(): this; + + /** + * Specifies that the value must be less than limit. + * It can also be a reference to another field. + */ + less(limit: number | Reference): this; + + /** + * Specifies the maximum value. + * It can also be a reference to another field. + */ + max(limit: number | Reference): this; + + /** + * Specifies the minimum value. + * It can also be a reference to another field. + */ + min(limit: number | Reference): this; + + /** + * Specifies that the value must be a multiple of base. + */ + multiple(base: number | Reference): this; + + /** + * Requires the number to be negative. + */ + negative(): this; + + /** + * Requires the number to be a TCP port, so between 0 and 65535. + */ + port(): this; + + /** + * Requires the number to be positive. + */ + positive(): this; + + /** + * Specifies the maximum number of decimal places where: + * @param limit - the maximum number of decimal places allowed. + */ + precision(limit: number): this; + + /** + * Requires the number to be negative or positive. + */ + sign(sign: 'positive' | 'negative'): this; + + /** + * Allows the number to be outside of JavaScript's safety range (Number.MIN_SAFE_INTEGER & Number.MAX_SAFE_INTEGER). + */ + unsafe(enabled?: any): this; + } + + interface StringSchema extends AnySchema { + /** + * Requires the string value to only contain a-z, A-Z, and 0-9. + */ + alphanum(): this; + + /** + * Requires the string value to be a valid base64 string; does not check the decoded value. + */ + base64(options?: Base64Options): this; + + /** + * Sets the required string case. + */ + case(direction: 'upper' | 'lower'): this; + + /** + * Requires the number to be a credit card number (Using Lunh Algorithm). + */ + creditCard(): this; + + /** + * Requires the string value to be a valid data URI string. + */ + dataUri(options?: DataUriOptions): this; + + /** + * Requires the string value to be a valid domain. + */ + domain(options?: DomainOptions): this; + + /** + * Requires the string value to be a valid email address. + */ + email(options?: EmailOptions): this; + + /** + * Requires the string value to be a valid GUID. + */ + guid(options?: GuidOptions): this; + + /** + * Requires the string value to be a valid hexadecimal string. + */ + hex(options?: HexOptions): this; + + /** + * Requires the string value to be a valid hostname as per RFC1123. + */ + hostname(): this; + + /** + * Allows the value to match any whitelist of blacklist item in a case insensitive comparison. + */ + insensitive(): this; + + /** + * Requires the string value to be a valid ip address. + */ + ip(options?: IpOptions): this; + + /** + * Requires the string value to be in valid ISO 8601 date format. + */ + isoDate(): this; + + /** + * Requires the string value to be in valid ISO 8601 duration format. + */ + isoDuration(): this; + + /** + * Specifies the exact string length required + * @param limit - the required string length. It can also be a reference to another field. + * @param encoding - if specified, the string length is calculated in bytes using the provided encoding. + */ + length(limit: number | Reference, encoding?: string): this; + + /** + * Requires the string value to be all lowercase. If the validation convert option is on (enabled by default), the string will be forced to lowercase. + */ + lowercase(): this; + + /** + * Specifies the maximum number of string characters. + * @param limit - the maximum number of string characters allowed. It can also be a reference to another field. + * @param encoding - if specified, the string length is calculated in bytes using the provided encoding. + */ + max(limit: number | Reference, encoding?: string): this; + + /** + * Specifies the minimum number string characters. + * @param limit - the minimum number of string characters required. It can also be a reference to another field. + * @param encoding - if specified, the string length is calculated in bytes using the provided encoding. + */ + min(limit: number | Reference, encoding?: string): this; + + /** + * Requires the string value to be in a unicode normalized form. If the validation convert option is on (enabled by default), the string will be normalized. + * @param [form='NFC'] - The unicode normalization form to use. Valid values: NFC [default], NFD, NFKC, NFKD + */ + normalize(form?: 'NFC' | 'NFD' | 'NFKC' | 'NFKD'): this; + + /** + * Defines a regular expression rule. + * @param pattern - a regular expression object the string value must match against. + * @param options - optional, can be: + * Name for patterns (useful with multiple patterns). Defaults to 'required'. + * An optional configuration object with the following supported properties: + * name - optional pattern name. + * invert - optional boolean flag. Defaults to false behavior. If specified as true, the provided pattern will be disallowed instead of required. + */ + pattern(pattern: RegExp, options?: string | StringRegexOptions): this; + + /** + * Defines a regular expression rule. + * @param pattern - a regular expression object the string value must match against. + * @param options - optional, can be: + * Name for patterns (useful with multiple patterns). Defaults to 'required'. + * An optional configuration object with the following supported properties: + * name - optional pattern name. + * invert - optional boolean flag. Defaults to false behavior. If specified as true, the provided pattern will be disallowed instead of required. + */ + regex(pattern: RegExp, options?: string | StringRegexOptions): this; + + /** + * Replace characters matching the given pattern with the specified replacement string where: + * @param pattern - a regular expression object to match against, or a string of which all occurrences will be replaced. + * @param replacement - the string that will replace the pattern. + */ + replace(pattern: RegExp | string, replacement: string): this; + + /** + * Requires the string value to only contain a-z, A-Z, 0-9, and underscore _. + */ + token(): this; + + /** + * Requires the string value to contain no whitespace before or after. If the validation convert option is on (enabled by default), the string will be trimmed. + * @param [enabled=true] - optional parameter defaulting to true which allows you to reset the behavior of trim by providing a falsy value. + */ + trim(enabled?: any): this; + + /** + * Specifies whether the string.max() limit should be used as a truncation. + * @param [enabled=true] - optional parameter defaulting to true which allows you to reset the behavior of truncate by providing a falsy value. + */ + truncate(enabled?: boolean): this; + + /** + * Requires the string value to be all uppercase. If the validation convert option is on (enabled by default), the string will be forced to uppercase. + */ + uppercase(): this; + + /** + * Requires the string value to be a valid RFC 3986 URI. + */ + uri(options?: UriOptions): this; + + /** + * Requires the string value to be a valid GUID. + */ + uuid(options?: GuidOptions): this; + } + + interface SymbolSchema extends AnySchema { + // TODO: support number and symbol index + map(iterable: Iterable<[string | number | boolean | symbol, symbol]> | { [key: string]: symbol }): this; + } + + interface ArraySortOptions { + /** + * @default 'ascending' + */ + order?: 'ascending' | 'descending'; + by?: string | Reference; + } + + interface ArrayUniqueOptions extends HierarchySeparatorOptions { + /** + * if true, undefined values for the dot notation string comparator will not cause the array to fail on uniqueness. + * + * @default false + */ + ignoreUndefined?: boolean; + } + + type ComparatorFunction = (a: any, b: any) => boolean; + + interface ArraySchema extends AnySchema { + /** + * Verifies that an assertion passes for at least one item in the array, where: + * `schema` - the validation rules required to satisfy the assertion. If the `schema` includes references, they are resolved against + * the array item being tested, not the value of the `ref` target. + */ + has(schema: SchemaLike): this; + + /** + * List the types allowed for the array values. + * If a given type is .required() then there must be a matching item in the array. + * If a type is .forbidden() then it cannot appear in the array. + * Required items can be added multiple times to signify that multiple items must be found. + * Errors will contain the number of items that didn't match. + * Any unmatched item having a label will be mentioned explicitly. + * + * @param type - a joi schema object to validate each array item against. + */ + items(...types: SchemaLikeWithoutArray[]): this; + + /** + * Specifies the exact number of items in the array. + */ + length(limit: number | Reference): this; + + /** + * Specifies the maximum number of items in the array. + */ + max(limit: number | Reference): this; + + /** + * Specifies the minimum number of items in the array. + */ + min(limit: number | Reference): this; + + /** + * Lists the types in sequence order for the array values where: + * @param type - a joi schema object to validate against each array item in sequence order. type can be multiple values passed as individual arguments. + * If a given type is .required() then there must be a matching item with the same index position in the array. + * Errors will contain the number of items that didn't match. + * Any unmatched item having a label will be mentioned explicitly. + */ + ordered(...types: SchemaLikeWithoutArray[]): this; + + /** + * Allow single values to be checked against rules as if it were provided as an array. + * enabled can be used with a falsy value to go back to the default behavior. + */ + single(enabled?: any): this; + + /** + * Sorts the array by given order. + */ + sort(options?: ArraySortOptions): this; + + /** + * Allow this array to be sparse. + * enabled can be used with a falsy value to go back to the default behavior. + */ + sparse(enabled?: any): this; + + /** + * Requires the array values to be unique. + * Remember that if you provide a custom comparator function, + * different types can be passed as parameter depending on the rules you set on items. + * Be aware that a deep equality is performed on elements of the array having a type of object, + * a performance penalty is to be expected for this kind of operation. + */ + unique(comparator?: string | ComparatorFunction, options?: ArrayUniqueOptions): this; + } + + interface ObjectPatternOptions { + fallthrough?: boolean; + matches: SchemaLike | Reference; + } + + interface ObjectSchema extends AnySchema { + /** + * Defines an all-or-nothing relationship between keys where if one of the peers is present, all of them are required as well. + * + * Optional settings must be the last argument. + */ + and(...peers: Array): this; + + /** + * Appends the allowed object keys. If schema is null, undefined, or {}, no changes will be applied. + */ + append(schema?: SchemaMap): this; + + /** + * Verifies an assertion where. + */ + assert(ref: string | Reference, schema: SchemaLike, message?: string): this; + + /** + * Requires the object to be an instance of a given constructor. + * + * @param constructor - the constructor function that the object must be an instance of. + * @param name - an alternate name to use in validation errors. This is useful when the constructor function does not have a name. + */ + // tslint:disable-next-line:ban-types + instance(constructor: Function, name?: string): this; + + /** + * Sets or extends the allowed object keys. + */ + keys(schema?: SchemaMap): this; + + /** + * Specifies the exact number of keys in the object. + */ + length(limit: number): this; + + /** + * Specifies the maximum number of keys in the object. + */ + max(limit: number | Reference): this; + + /** + * Specifies the minimum number of keys in the object. + */ + min(limit: number | Reference): this; + + /** + * Defines a relationship between keys where not all peers can be present at the same time. + * + * Optional settings must be the last argument. + */ + nand(...peers: Array): this; + + /** + * Defines a relationship between keys where one of the peers is required (and more than one is allowed). + * + * Optional settings must be the last argument. + */ + or(...peers: Array): this; + + /** + * Defines an exclusive relationship between a set of keys where only one is allowed but none are required. + * + * Optional settings must be the last argument. + */ + oxor(...peers: Array): this; + + /** + * Specify validation rules for unknown keys matching a pattern. + * + * @param pattern - a pattern that can be either a regular expression or a joi schema that will be tested against the unknown key names + * @param schema - the schema object matching keys must validate against + */ + pattern(pattern: RegExp | SchemaLike, schema: SchemaLike, options?: ObjectPatternOptions): this; + + /** + * Requires the object to be a Joi reference. + */ + ref(): this; + + /** + * Requires the object to be a `RegExp` object. + */ + regex(): this; + + /** + * Renames a key to another name (deletes the renamed key). + */ + rename(from: string | RegExp, to: string, options?: RenameOptions): this; + + /** + * Requires the object to be a Joi schema instance. + */ + schema(type?: SchemaLike): this; + + /** + * Overrides the handling of unknown keys for the scope of the current object only (does not apply to children). + */ + unknown(allow?: boolean): this; + + /** + * Requires the presence of other keys whenever the specified key is present. + */ + with(key: string, peers: string | string[], options?: HierarchySeparatorOptions): this; + + /** + * Forbids the presence of other keys whenever the specified is present. + */ + without(key: string, peers: string | string[], options?: HierarchySeparatorOptions): this; + + /** + * Defines an exclusive relationship between a set of keys. one of them is required but not at the same time. + * + * Optional settings must be the last argument. + */ + xor(...peers: Array): this; + } + + interface BinarySchema extends AnySchema { + /** + * Sets the string encoding format if a string input is converted to a buffer. + */ + encoding(encoding: string): this; + + /** + * Specifies the minimum length of the buffer. + */ + min(limit: number | Reference): this; + + /** + * Specifies the maximum length of the buffer. + */ + max(limit: number | Reference): this; + + /** + * Specifies the exact length of the buffer: + */ + length(limit: number | Reference): this; + } + + interface DateSchema extends AnySchema { + /** + * Specifies that the value must be greater than date. + * Notes: 'now' can be passed in lieu of date so as to always compare relatively to the current date, + * allowing to explicitly ensure a date is either in the past or in the future. + * It can also be a reference to another field. + */ + greater(date: 'now' | Date | number | string | Reference): this; + + /** + * Requires the string value to be in valid ISO 8601 date format. + */ + iso(): this; + + /** + * Specifies that the value must be less than date. + * Notes: 'now' can be passed in lieu of date so as to always compare relatively to the current date, + * allowing to explicitly ensure a date is either in the past or in the future. + * It can also be a reference to another field. + */ + less(date: 'now' | Date | number | string | Reference): this; + + /** + * Specifies the oldest date allowed. + * Notes: 'now' can be passed in lieu of date so as to always compare relatively to the current date, + * allowing to explicitly ensure a date is either in the past or in the future. + * It can also be a reference to another field. + */ + min(date: 'now' | Date | number | string | Reference): this; + + /** + * Specifies the latest date allowed. + * Notes: 'now' can be passed in lieu of date so as to always compare relatively to the current date, + * allowing to explicitly ensure a date is either in the past or in the future. + * It can also be a reference to another field. + */ + max(date: 'now' | Date | number | string | Reference): this; + + /** + * Requires the value to be a timestamp interval from Unix Time. + * @param type - the type of timestamp (allowed values are unix or javascript [default]) + */ + timestamp(type?: 'javascript' | 'unix'): this; + } + + interface FunctionSchema extends ObjectSchema { + /** + * Specifies the arity of the function where: + * @param n - the arity expected. + */ + arity(n: number): this; + + /** + * Requires the function to be a class. + */ + class(): this; + + /** + * Specifies the minimal arity of the function where: + * @param n - the minimal arity expected. + */ + minArity(n: number): this; + + /** + * Specifies the minimal arity of the function where: + * @param n - the minimal arity expected. + */ + maxArity(n: number): this; + } + + interface AlternativesSchema extends AnySchema { + /** + * Adds a conditional alternative schema type, either based on another key value, or a schema peeking into the current value. + */ + conditional(ref: string | Reference, options: WhenOptions): this; + conditional(ref: Schema, options: WhenSchemaOptions): this; + + /** + * Requires the validated value to match a specific set of the provided alternative.try() schemas. + * Cannot be combined with `alternatives.conditional()`. + */ + match(mode: 'any' | 'all' | 'one'): this; + + /** + * Adds an alternative schema type for attempting to match against the validated value. + */ + try(...types: SchemaLikeWithoutArray[]): this; + } + + interface LinkSchema extends AnySchema { + /** + * Same as `any.concat()` but the schema is merged after the link is resolved which allows merging with schemas of the same type as the resolved link. + * Will throw an exception during validation if the merged types are not compatible. + */ + concat(schema: Schema): this; + + /** + * Initializes the schema after constructions for cases where the schema has to be constructed first and then initialized. + * If `ref` was not passed to the constructor, `link.ref()` must be called prior to usaged. + */ + ref(ref: string): this; + } + + interface Reference extends Exclude { + depth: number; + type: string; + key: string; + root: string; + path: string[]; + display: string; + toString(): string; + } + + type ExtensionBoundSchema = Schema & SchemaInternals; + + interface RuleArgs { + name: string; + ref?: boolean; + assert?: ((value: any) => boolean) | AnySchema; + message?: string; + + /** + * Undocumented properties + */ + normalize?(value: any): any; + } + + type RuleMethod = (...args: any[]) => any; + + interface ExtensionRule { + /** + * alternative name for this rule. + */ + alias?: string; + /** + * whether rule supports multiple invocations. + */ + multi?: boolean; + /** + * Dual rule: converts or validates. + */ + convert?: boolean; + /** + * list of arguments accepted by `method`. + */ + args?: Array; + /** + * rule body. + */ + method?: RuleMethod | false; + /** + * validation function. + */ + validate?(value: any, helpers: any, args: Record, options: any): any; + + /** + * undocumented flags. + */ + priority?: boolean; + manifest?: boolean; + } + + interface CoerceResult { + errors?: ErrorReport[]; + value?: any; + } + + type CoerceFunction = (value: any, helpers: CustomHelpers) => CoerceResult; + + interface CoerceObject { + method: CoerceFunction; + from?: string | string[]; + } + + interface ExtensionFlag { + setter?: string; + default?: any; + } + + interface ExtensionTermManifest { + mapped: { + from: string; + to: string; + }; + } + + interface ExtensionTerm { + init: any[] | null; + register?: any; + manifest?: Record; + } + + interface Extension { + type: string | RegExp; + args?(...args: SchemaLike[]): Schema; + base?: Schema; + coerce?: CoerceFunction | CoerceObject; + flags?: Record; + manifest?: { + build?(obj: ExtensionBoundSchema, desc: Record): any; + }; + messages?: LanguageMessages | string; + modifiers?: Record any>; + overrides?: Record Schema>; + prepare?(value: any, helpers: CustomHelpers): any; + rebuild?(schema: ExtensionBoundSchema): void; + rules?: Record>; + terms?: Record; + validate?(value: any, helpers: CustomHelpers): any; + + /** + * undocumented options + */ + cast?: Record; + properties?: Record; + } + + type ExtensionFactory = (joi: Root) => Extension; + + interface Err { + toString(): string; + } + + // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- + + interface Root { + /** + * Current version of the joi package. + */ + version: string; + + ValidationError: new (message: string, details: any, original: any) => ValidationError; + + /** + * Generates a schema object that matches any data type. + */ + any(): AnySchema; + + /** + * Generates a schema object that matches an array data type. + */ + array(): ArraySchema; + + /** + * Generates a schema object that matches a boolean data type (as well as the strings 'true', 'false', 'yes', and 'no'). Can also be called via bool(). + */ + bool(): BooleanSchema; + + /** + * Generates a schema object that matches a boolean data type (as well as the strings 'true', 'false', 'yes', and 'no'). Can also be called via bool(). + */ + boolean(): BooleanSchema; + + /** + * Generates a schema object that matches a Buffer data type (as well as the strings which will be converted to Buffers). + */ + binary(): BinarySchema; + + /** + * Generates a schema object that matches a date type (as well as a JavaScript date string or number of milliseconds). + */ + date(): DateSchema; + + /** + * Generates a schema object that matches a function type. + */ + func(): FunctionSchema; + + /** + * Generates a schema object that matches a function type. + */ + function(): FunctionSchema; + + /** + * Generates a schema object that matches a number data type (as well as strings that can be converted to numbers). + */ + number(): NumberSchema; + + /** + * Generates a schema object that matches an object data type (as well as JSON strings that have been parsed into objects). + */ + // tslint:disable-next-line:no-unnecessary-generics + object(schema?: SchemaMap): ObjectSchema; + + /** + * Generates a schema object that matches a string data type. Note that empty strings are not allowed by default and must be enabled with allow(''). + */ + string(): StringSchema; + + /** + * Generates a schema object that matches any symbol. + */ + symbol(): SymbolSchema; + + /** + * Generates a type that will match one of the provided alternative schemas + */ + alternatives(types: SchemaLike[]): AlternativesSchema; + alternatives(...types: SchemaLike[]): AlternativesSchema; + + /** + * Alias for `alternatives` + */ + alt(types: SchemaLike[]): AlternativesSchema; + alt(...types: SchemaLike[]): AlternativesSchema; + + /** + * Links to another schema node and reuses it for validation, typically for creative recursive schemas. + * + * @param ref - the reference to the linked schema node. + * Cannot reference itself or its children as well as other links. + * Links can be expressed in relative terms like value references (`Joi.link('...')`), + * in absolute terms from the schema run-time root (`Joi.link('/a')`), + * or using schema ids implicitly using object keys or explicitly using `any.id()` (`Joi.link('#a.b.c')`). + */ + link(ref?: string): LinkSchema; + + /** + * Validates a value against a schema and throws if validation fails. + * + * @param value - the value to validate. + * @param schema - the schema object. + * @param message - optional message string prefix added in front of the error message. may also be an Error object. + */ + assert(value: any, schema: Schema, options?: ValidationOptions): void; + assert(value: any, schema: Schema, message: string | Error, options?: ValidationOptions): void; + + /** + * Validates a value against a schema, returns valid object, and throws if validation fails. + * + * @param value - the value to validate. + * @param schema - the schema object. + * @param message - optional message string prefix added in front of the error message. may also be an Error object. + */ + attempt(value: any, schema: Schema, options?: ValidationOptions): any; + attempt(value: any, schema: Schema, message: string | Error, options?: ValidationOptions): any; + + cache: CacheConfiguration; + + /** + * Converts literal schema definition to joi schema object (or returns the same back if already a joi schema object). + */ + compile(schema: SchemaLike, options?: CompileOptions): Schema; + + /** + * Checks if the provided preferences are valid. + * + * Throws an exception if the prefs object is invalid. + * + * The method is provided to perform inputs validation for the `any.validate()` and `any.validateAsync()` methods. + * Validation is not performed automatically for performance reasons. Instead, manually validate the preferences passed once and reuse. + */ + checkPreferences(prefs: ValidationOptions): void; + + /** + * Creates a custom validation schema. + */ + custom(fn: CustomValidator, description?: string): Schema; + + /** + * Creates a new Joi instance that will apply defaults onto newly created schemas + * through the use of the fn function that takes exactly one argument, the schema being created. + * + * @param fn - The function must always return a schema, even if untransformed. + */ + defaults(fn: SchemaFunction): Root; + + /** + * Generates a dynamic expression using a template string. + */ + expression(template: string, options?: ReferenceOptions): any; + + /** + * Creates a new Joi instance customized with the extension(s) you provide included. + */ + extend(...extensions: Array): any; + + /** + * Creates a reference that when resolved, is used as an array of values to match against the rule. + */ + in(ref: string, options?: ReferenceOptions): Reference; + + /** + * Checks whether or not the provided argument is an instance of ValidationError + */ + isError(error: any): error is ValidationError; + + /** + * Checks whether or not the provided argument is an expression. + */ + isExpression(expression: any): boolean; + + /** + * Checks whether or not the provided argument is a reference. It's especially useful if you want to post-process error messages. + */ + isRef(ref: any): ref is Reference; + + /** + * Checks whether or not the provided argument is a joi schema. + */ + isSchema(schema: any, options?: CompileOptions): boolean; + + /** + * A special value used with `any.allow()`, `any.invalid()`, and `any.valid()` as the first value to reset any previously set values. + */ + override: symbol; + + /** + * Generates a reference to the value of the named key. + */ + ref(key: string, options?: ReferenceOptions): Reference; + + /** + * Returns an object where each key is a plain joi schema type. + * Useful for creating type shortcuts using deconstruction. + * Note that the types are already formed and do not need to be called as functions (e.g. `string`, not `string()`). + */ + types(): { + alternatives: AlternativesSchema; + any: AnySchema; + array: ArraySchema; + binary: BinarySchema; + boolean: BooleanSchema; + date: DateSchema; + function: FunctionSchema; + link: LinkSchema; + number: NumberSchema; + object: ObjectSchema; + string: StringSchema; + symbol: SymbolSchema; + }; + + /** + * Generates a dynamic expression using a template string. + */ + x(template: string, options?: ReferenceOptions): any; + + // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- + // Below are undocumented APIs. use at your own risk + // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- + + /** + * Whitelists a value + */ + allow(...values: any[]): Schema; + + /** + * Adds the provided values into the allowed whitelist and marks them as the only valid values allowed. + */ + valid(...values: any[]): Schema; + equal(...values: any[]): Schema; + + /** + * Blacklists a value + */ + invalid(...values: any[]): Schema; + disallow(...values: any[]): Schema; + not(...values: any[]): Schema; + + /** + * Marks a key as required which will not allow undefined as value. All keys are optional by default. + */ + required(): Schema; + + /** + * Alias of `required`. + */ + exist(): Schema; + + /** + * Marks a key as optional which will allow undefined as values. Used to annotate the schema for readability as all keys are optional by default. + */ + optional(): Schema; + + /** + * Marks a key as forbidden which will not allow any value except undefined. Used to explicitly forbid keys. + */ + forbidden(): Schema; + + /** + * Overrides the global validate() options for the current key and any sub-key. + */ + preferences(options: ValidationOptions): Schema; + + /** + * Overrides the global validate() options for the current key and any sub-key. + */ + prefs(options: ValidationOptions): Schema; + + /** + * Converts the type into an alternatives type where the conditions are merged into the type definition where: + */ + when(ref: string | Reference, options: WhenOptions): AlternativesSchema; + when(ref: Schema, options: WhenSchemaOptions): AlternativesSchema; + + /** + * Unsure, maybe alias for `compile`? + */ + build(...args: any[]): any; + + /** + * Unsure, maybe alias for `preferences`? + */ + options(...args: any[]): any; + + /** + * Unsure, maybe leaked from `@hapi/lab/coverage/initialize` + */ + trace(...args: any[]): any; + untrace(...args: any[]): any; + } +} + +declare const Joi: Joi.Root; +export = Joi; diff --git a/node_modules/joi/lib/index.js b/node_modules/joi/lib/index.js new file mode 100755 index 0000000..8813f51 --- /dev/null +++ b/node_modules/joi/lib/index.js @@ -0,0 +1,283 @@ +'use strict'; + +const Assert = require('@hapi/hoek/lib/assert'); +const Clone = require('@hapi/hoek/lib/clone'); + +const Cache = require('./cache'); +const Common = require('./common'); +const Compile = require('./compile'); +const Errors = require('./errors'); +const Extend = require('./extend'); +const Manifest = require('./manifest'); +const Ref = require('./ref'); +const Template = require('./template'); +const Trace = require('./trace'); + +let Schemas; + + +const internals = { + types: { + alternatives: require('./types/alternatives'), + any: require('./types/any'), + array: require('./types/array'), + boolean: require('./types/boolean'), + date: require('./types/date'), + function: require('./types/function'), + link: require('./types/link'), + number: require('./types/number'), + object: require('./types/object'), + string: require('./types/string'), + symbol: require('./types/symbol') + }, + aliases: { + alt: 'alternatives', + bool: 'boolean', + func: 'function' + } +}; + + +if (Buffer) { // $lab:coverage:ignore$ + internals.types.binary = require('./types/binary'); +} + + +internals.root = function () { + + const root = { + _types: new Set(Object.keys(internals.types)) + }; + + // Types + + for (const type of root._types) { + root[type] = function (...args) { + + Assert(!args.length || ['alternatives', 'link', 'object'].includes(type), 'The', type, 'type does not allow arguments'); + return internals.generate(this, internals.types[type], args); + }; + } + + // Shortcuts + + for (const method of ['allow', 'custom', 'disallow', 'equal', 'exist', 'forbidden', 'invalid', 'not', 'only', 'optional', 'options', 'prefs', 'preferences', 'required', 'strip', 'valid', 'when']) { + root[method] = function (...args) { + + return this.any()[method](...args); + }; + } + + // Methods + + Object.assign(root, internals.methods); + + // Aliases + + for (const alias in internals.aliases) { + const target = internals.aliases[alias]; + root[alias] = root[target]; + } + + root.x = root.expression; + + // Trace + + if (Trace.setup) { // $lab:coverage:ignore$ + Trace.setup(root); + } + + return root; +}; + + +internals.methods = { + + ValidationError: Errors.ValidationError, + version: Common.version, + cache: Cache.provider, + + assert(value, schema, ...args /* [message], [options] */) { + + internals.assert(value, schema, true, args); + }, + + attempt(value, schema, ...args /* [message], [options] */) { + + return internals.assert(value, schema, false, args); + }, + + build(desc) { + + Assert(typeof Manifest.build === 'function', 'Manifest functionality disabled'); + return Manifest.build(this, desc); + }, + + checkPreferences(prefs) { + + Common.checkPreferences(prefs); + }, + + compile(schema, options) { + + return Compile.compile(this, schema, options); + }, + + defaults(modifier) { + + Assert(typeof modifier === 'function', 'modifier must be a function'); + + const joi = Object.assign({}, this); + for (const type of joi._types) { + const schema = modifier(joi[type]()); + Assert(Common.isSchema(schema), 'modifier must return a valid schema object'); + + joi[type] = function (...args) { + + return internals.generate(this, schema, args); + }; + } + + return joi; + }, + + expression(...args) { + + return new Template(...args); + }, + + extend(...extensions) { + + Common.verifyFlat(extensions, 'extend'); + + Schemas = Schemas || require('./schemas'); + + Assert(extensions.length, 'You need to provide at least one extension'); + this.assert(extensions, Schemas.extensions); + + const joi = Object.assign({}, this); + joi._types = new Set(joi._types); + + for (let extension of extensions) { + if (typeof extension === 'function') { + extension = extension(joi); + } + + this.assert(extension, Schemas.extension); + + const expanded = internals.expandExtension(extension, joi); + for (const item of expanded) { + Assert(joi[item.type] === undefined || joi._types.has(item.type), 'Cannot override name', item.type); + + const base = item.base || this.any(); + const schema = Extend.type(base, item); + + joi._types.add(item.type); + joi[item.type] = function (...args) { + + return internals.generate(this, schema, args); + }; + } + } + + return joi; + }, + + isError: Errors.ValidationError.isError, + isExpression: Template.isTemplate, + isRef: Ref.isRef, + isSchema: Common.isSchema, + + in(...args) { + + return Ref.in(...args); + }, + + override: Common.symbols.override, + + ref(...args) { + + return Ref.create(...args); + }, + + types() { + + const types = {}; + for (const type of this._types) { + types[type] = this[type](); + } + + for (const target in internals.aliases) { + types[target] = this[target](); + } + + return types; + } +}; + + +// Helpers + +internals.assert = function (value, schema, annotate, args /* [message], [options] */) { + + const message = args[0] instanceof Error || typeof args[0] === 'string' ? args[0] : null; + const options = message ? args[1] : args[0]; + const result = schema.validate(value, Common.preferences({ errors: { stack: true } }, options || {})); + + let error = result.error; + if (!error) { + return result.value; + } + + if (message instanceof Error) { + throw message; + } + + const display = annotate && typeof error.annotate === 'function' ? error.annotate() : error.message; + + if (error instanceof Errors.ValidationError === false) { + error = Clone(error); + } + + error.message = message ? `${message} ${display}` : display; + throw error; +}; + + +internals.generate = function (root, schema, args) { + + Assert(root, 'Must be invoked on a Joi instance.'); + + schema.$_root = root; + + if (!schema._definition.args || + !args.length) { + + return schema; + } + + return schema._definition.args(schema, ...args); +}; + + +internals.expandExtension = function (extension, joi) { + + if (typeof extension.type === 'string') { + return [extension]; + } + + const extended = []; + for (const type of joi._types) { + if (extension.type.test(type)) { + const item = Object.assign({}, extension); + item.type = type; + item.base = joi[type](); + extended.push(item); + } + } + + return extended; +}; + + +module.exports = internals.root(); diff --git a/node_modules/joi/lib/manifest.js b/node_modules/joi/lib/manifest.js new file mode 100755 index 0000000..8fed3c9 --- /dev/null +++ b/node_modules/joi/lib/manifest.js @@ -0,0 +1,476 @@ +'use strict'; + +const Assert = require('@hapi/hoek/lib/assert'); +const Clone = require('@hapi/hoek/lib/clone'); + +const Common = require('./common'); +const Messages = require('./messages'); +const Ref = require('./ref'); +const Template = require('./template'); + +let Schemas; + + +const internals = {}; + + +exports.describe = function (schema) { + + const def = schema._definition; + + // Type + + const desc = { + type: schema.type, + flags: {}, + rules: [] + }; + + // Flags + + for (const flag in schema._flags) { + if (flag[0] !== '_') { + desc.flags[flag] = internals.describe(schema._flags[flag]); + } + } + + if (!Object.keys(desc.flags).length) { + delete desc.flags; + } + + // Preferences + + if (schema._preferences) { + desc.preferences = Clone(schema._preferences, { shallow: ['messages'] }); + delete desc.preferences[Common.symbols.prefs]; + if (desc.preferences.messages) { + desc.preferences.messages = Messages.decompile(desc.preferences.messages); + } + } + + // Allow / Invalid + + if (schema._valids) { + desc.allow = schema._valids.describe(); + } + + if (schema._invalids) { + desc.invalid = schema._invalids.describe(); + } + + // Rules + + for (const rule of schema._rules) { + const ruleDef = def.rules[rule.name]; + if (ruleDef.manifest === false) { // Defaults to true + continue; + } + + const item = { name: rule.name }; + + for (const custom in def.modifiers) { + if (rule[custom] !== undefined) { + item[custom] = internals.describe(rule[custom]); + } + } + + if (rule.args) { + item.args = {}; + for (const key in rule.args) { + const arg = rule.args[key]; + if (key === 'options' && + !Object.keys(arg).length) { + + continue; + } + + item.args[key] = internals.describe(arg, { assign: key }); + } + + if (!Object.keys(item.args).length) { + delete item.args; + } + } + + desc.rules.push(item); + } + + if (!desc.rules.length) { + delete desc.rules; + } + + // Terms (must be last to verify no name conflicts) + + for (const term in schema.$_terms) { + if (term[0] === '_') { + continue; + } + + Assert(!desc[term], 'Cannot describe schema due to internal name conflict with', term); + + const items = schema.$_terms[term]; + if (!items) { + continue; + } + + if (items instanceof Map) { + if (items.size) { + desc[term] = [...items.entries()]; + } + + continue; + } + + if (Common.isValues(items)) { + desc[term] = items.describe(); + continue; + } + + Assert(def.terms[term], 'Term', term, 'missing configuration'); + const manifest = def.terms[term].manifest; + const mapped = typeof manifest === 'object'; + if (!items.length && + !mapped) { + + continue; + } + + const normalized = []; + for (const item of items) { + normalized.push(internals.describe(item)); + } + + // Mapped + + if (mapped) { + const { from, to } = manifest.mapped; + desc[term] = {}; + for (const item of normalized) { + desc[term][item[to]] = item[from]; + } + + continue; + } + + // Single + + if (manifest === 'single') { + Assert(normalized.length === 1, 'Term', term, 'contains more than one item'); + desc[term] = normalized[0]; + continue; + } + + // Array + + desc[term] = normalized; + } + + internals.validate(schema.$_root, desc); + return desc; +}; + + +internals.describe = function (item, options = {}) { + + if (Array.isArray(item)) { + return item.map(internals.describe); + } + + if (item === Common.symbols.deepDefault) { + return { special: 'deep' }; + } + + if (typeof item !== 'object' || + item === null) { + + return item; + } + + if (options.assign === 'options') { + return Clone(item); + } + + if (Buffer && Buffer.isBuffer(item)) { // $lab:coverage:ignore$ + return { buffer: item.toString('binary') }; + } + + if (item instanceof Date) { + return item.toISOString(); + } + + if (item instanceof Error) { + return item; + } + + if (item instanceof RegExp) { + if (options.assign === 'regex') { + return item.toString(); + } + + return { regex: item.toString() }; + } + + if (item[Common.symbols.literal]) { + return { function: item.literal }; + } + + if (typeof item.describe === 'function') { + if (options.assign === 'ref') { + return item.describe().ref; + } + + return item.describe(); + } + + const normalized = {}; + for (const key in item) { + const value = item[key]; + if (value === undefined) { + continue; + } + + normalized[key] = internals.describe(value, { assign: key }); + } + + return normalized; +}; + + +exports.build = function (joi, desc) { + + const builder = new internals.Builder(joi); + return builder.parse(desc); +}; + + +internals.Builder = class { + + constructor(joi) { + + this.joi = joi; + } + + parse(desc) { + + internals.validate(this.joi, desc); + + // Type + + let schema = this.joi[desc.type]()._bare(); + const def = schema._definition; + + // Flags + + if (desc.flags) { + for (const flag in desc.flags) { + const setter = def.flags[flag] && def.flags[flag].setter || flag; + Assert(typeof schema[setter] === 'function', 'Invalid flag', flag, 'for type', desc.type); + schema = schema[setter](this.build(desc.flags[flag])); + } + } + + // Preferences + + if (desc.preferences) { + schema = schema.preferences(this.build(desc.preferences)); + } + + // Allow / Invalid + + if (desc.allow) { + schema = schema.allow(...this.build(desc.allow)); + } + + if (desc.invalid) { + schema = schema.invalid(...this.build(desc.invalid)); + } + + // Rules + + if (desc.rules) { + for (const rule of desc.rules) { + Assert(typeof schema[rule.name] === 'function', 'Invalid rule', rule.name, 'for type', desc.type); + + const args = []; + if (rule.args) { + const built = {}; + for (const key in rule.args) { + built[key] = this.build(rule.args[key], { assign: key }); + } + + const keys = Object.keys(built); + const definition = def.rules[rule.name].args; + if (definition) { + Assert(keys.length <= definition.length, 'Invalid number of arguments for', desc.type, rule.name, '(expected up to', definition.length, ', found', keys.length, ')'); + for (const { name } of definition) { + args.push(built[name]); + } + } + else { + Assert(keys.length === 1, 'Invalid number of arguments for', desc.type, rule.name, '(expected up to 1, found', keys.length, ')'); + args.push(built[keys[0]]); + } + } + + // Apply + + schema = schema[rule.name](...args); + + // Ruleset + + const options = {}; + for (const custom in def.modifiers) { + if (rule[custom] !== undefined) { + options[custom] = this.build(rule[custom]); + } + } + + if (Object.keys(options).length) { + schema = schema.rule(options); + } + } + } + + // Terms + + const terms = {}; + for (const key in desc) { + if (['allow', 'flags', 'invalid', 'whens', 'preferences', 'rules', 'type'].includes(key)) { + continue; + } + + Assert(def.terms[key], 'Term', key, 'missing configuration'); + const manifest = def.terms[key].manifest; + + if (manifest === 'schema') { + terms[key] = desc[key].map((item) => this.parse(item)); + continue; + } + + if (manifest === 'values') { + terms[key] = desc[key].map((item) => this.build(item)); + continue; + } + + if (manifest === 'single') { + terms[key] = this.build(desc[key]); + continue; + } + + if (typeof manifest === 'object') { + terms[key] = {}; + for (const name in desc[key]) { + const value = desc[key][name]; + terms[key][name] = this.parse(value); + } + + continue; + } + + terms[key] = this.build(desc[key]); + } + + if (desc.whens) { + terms.whens = desc.whens.map((when) => this.build(when)); + } + + schema = def.manifest.build(schema, terms); + schema.$_temp.ruleset = false; + return schema; + } + + build(desc, options = {}) { + + if (desc === null) { + return null; + } + + if (Array.isArray(desc)) { + return desc.map((item) => this.build(item)); + } + + if (desc instanceof Error) { + return desc; + } + + if (options.assign === 'options') { + return Clone(desc); + } + + if (options.assign === 'regex') { + return internals.regex(desc); + } + + if (options.assign === 'ref') { + return Ref.build(desc); + } + + if (typeof desc !== 'object') { + return desc; + } + + if (Object.keys(desc).length === 1) { + if (desc.buffer) { + Assert(Buffer, 'Buffers are not supported'); + return Buffer && Buffer.from(desc.buffer, 'binary'); // $lab:coverage:ignore$ + } + + if (desc.function) { + return { [Common.symbols.literal]: true, literal: desc.function }; + } + + if (desc.override) { + return Common.symbols.override; + } + + if (desc.ref) { + return Ref.build(desc.ref); + } + + if (desc.regex) { + return internals.regex(desc.regex); + } + + if (desc.special) { + Assert(['deep'].includes(desc.special), 'Unknown special value', desc.special); + return Common.symbols.deepDefault; + } + + if (desc.value) { + return Clone(desc.value); + } + } + + if (desc.type) { + return this.parse(desc); + } + + if (desc.template) { + return Template.build(desc); + } + + const normalized = {}; + for (const key in desc) { + normalized[key] = this.build(desc[key], { assign: key }); + } + + return normalized; + } +}; + + +internals.regex = function (string) { + + const end = string.lastIndexOf('/'); + const exp = string.slice(1, end); + const flags = string.slice(end + 1); + return new RegExp(exp, flags); +}; + + +internals.validate = function (joi, desc) { + + Schemas = Schemas || require('./schemas'); + + joi.assert(desc, Schemas.description); +}; diff --git a/node_modules/joi/lib/messages.js b/node_modules/joi/lib/messages.js new file mode 100755 index 0000000..f719779 --- /dev/null +++ b/node_modules/joi/lib/messages.js @@ -0,0 +1,178 @@ +'use strict'; + +const Assert = require('@hapi/hoek/lib/assert'); +const Clone = require('@hapi/hoek/lib/clone'); + +const Template = require('./template'); + + +const internals = {}; + + +exports.compile = function (messages, target) { + + // Single value string ('plain error message', 'template {error} message') + + if (typeof messages === 'string') { + Assert(!target, 'Cannot set single message string'); + return new Template(messages); + } + + // Single value template + + if (Template.isTemplate(messages)) { + Assert(!target, 'Cannot set single message template'); + return messages; + } + + // By error code { 'number.min': } + + Assert(typeof messages === 'object' && !Array.isArray(messages), 'Invalid message options'); + + target = target ? Clone(target) : {}; + + for (let code in messages) { + const message = messages[code]; + + if (code === 'root' || + Template.isTemplate(message)) { + + target[code] = message; + continue; + } + + if (typeof message === 'string') { + target[code] = new Template(message); + continue; + } + + // By language { english: { 'number.min': } } + + Assert(typeof message === 'object' && !Array.isArray(message), 'Invalid message for', code); + + const language = code; + target[language] = target[language] || {}; + + for (code in message) { + const localized = message[code]; + + if (code === 'root' || + Template.isTemplate(localized)) { + + target[language][code] = localized; + continue; + } + + Assert(typeof localized === 'string', 'Invalid message for', code, 'in', language); + target[language][code] = new Template(localized); + } + } + + return target; +}; + + +exports.decompile = function (messages) { + + // By error code { 'number.min': } + + const target = {}; + for (let code in messages) { + const message = messages[code]; + + if (code === 'root') { + target[code] = message; + continue; + } + + if (Template.isTemplate(message)) { + target[code] = message.describe({ compact: true }); + continue; + } + + // By language { english: { 'number.min': } } + + const language = code; + target[language] = {}; + + for (code in message) { + const localized = message[code]; + + if (code === 'root') { + target[language][code] = localized; + continue; + } + + target[language][code] = localized.describe({ compact: true }); + } + } + + return target; +}; + + +exports.merge = function (base, extended) { + + if (!base) { + return exports.compile(extended); + } + + if (!extended) { + return base; + } + + // Single value string + + if (typeof extended === 'string') { + return new Template(extended); + } + + // Single value template + + if (Template.isTemplate(extended)) { + return extended; + } + + // By error code { 'number.min': } + + const target = Clone(base); + + for (let code in extended) { + const message = extended[code]; + + if (code === 'root' || + Template.isTemplate(message)) { + + target[code] = message; + continue; + } + + if (typeof message === 'string') { + target[code] = new Template(message); + continue; + } + + // By language { english: { 'number.min': } } + + Assert(typeof message === 'object' && !Array.isArray(message), 'Invalid message for', code); + + const language = code; + target[language] = target[language] || {}; + + for (code in message) { + const localized = message[code]; + + if (code === 'root' || + Template.isTemplate(localized)) { + + target[language][code] = localized; + continue; + } + + Assert(typeof localized === 'string', 'Invalid message for', code, 'in', language); + target[language][code] = new Template(localized); + } + } + + return target; +}; diff --git a/node_modules/joi/lib/modify.js b/node_modules/joi/lib/modify.js new file mode 100755 index 0000000..6f14848 --- /dev/null +++ b/node_modules/joi/lib/modify.js @@ -0,0 +1,267 @@ +'use strict'; + +const Assert = require('@hapi/hoek/lib/assert'); + +const Common = require('./common'); +const Ref = require('./ref'); + + +const internals = {}; + + + +exports.Ids = internals.Ids = class { + + constructor() { + + this._byId = new Map(); + this._byKey = new Map(); + this._schemaChain = false; + } + + clone() { + + const clone = new internals.Ids(); + clone._byId = new Map(this._byId); + clone._byKey = new Map(this._byKey); + clone._schemaChain = this._schemaChain; + return clone; + } + + concat(source) { + + if (source._schemaChain) { + this._schemaChain = true; + } + + for (const [id, value] of source._byId.entries()) { + Assert(!this._byKey.has(id), 'Schema id conflicts with existing key:', id); + this._byId.set(id, value); + } + + for (const [key, value] of source._byKey.entries()) { + Assert(!this._byId.has(key), 'Schema key conflicts with existing id:', key); + this._byKey.set(key, value); + } + } + + fork(path, adjuster, root) { + + const chain = this._collect(path); + chain.push({ schema: root }); + const tail = chain.shift(); + let adjusted = { id: tail.id, schema: adjuster(tail.schema) }; + + Assert(Common.isSchema(adjusted.schema), 'adjuster function failed to return a joi schema type'); + + for (const node of chain) { + adjusted = { id: node.id, schema: internals.fork(node.schema, adjusted.id, adjusted.schema) }; + } + + return adjusted.schema; + } + + labels(path, behind = []) { + + const current = path[0]; + const node = this._get(current); + if (!node) { + return [...behind, ...path].join('.'); + } + + const forward = path.slice(1); + behind = [...behind, node.schema._flags.label || current]; + if (!forward.length) { + return behind.join('.'); + } + + return node.schema._ids.labels(forward, behind); + } + + reach(path, behind = []) { + + const current = path[0]; + const node = this._get(current); + Assert(node, 'Schema does not contain path', [...behind, ...path].join('.')); + + const forward = path.slice(1); + if (!forward.length) { + return node.schema; + } + + return node.schema._ids.reach(forward, [...behind, current]); + } + + register(schema, { key } = {}) { + + if (!schema || + !Common.isSchema(schema)) { + + return; + } + + if (schema.$_property('schemaChain') || + schema._ids._schemaChain) { + + this._schemaChain = true; + } + + const id = schema._flags.id; + if (id) { + const existing = this._byId.get(id); + Assert(!existing || existing.schema === schema, 'Cannot add different schemas with the same id:', id); + Assert(!this._byKey.has(id), 'Schema id conflicts with existing key:', id); + + this._byId.set(id, { schema, id }); + } + + if (key) { + Assert(!this._byKey.has(key), 'Schema already contains key:', key); + Assert(!this._byId.has(key), 'Schema key conflicts with existing id:', key); + + this._byKey.set(key, { schema, id: key }); + } + } + + reset() { + + this._byId = new Map(); + this._byKey = new Map(); + this._schemaChain = false; + } + + _collect(path, behind = [], nodes = []) { + + const current = path[0]; + const node = this._get(current); + Assert(node, 'Schema does not contain path', [...behind, ...path].join('.')); + + nodes = [node, ...nodes]; + + const forward = path.slice(1); + if (!forward.length) { + return nodes; + } + + return node.schema._ids._collect(forward, [...behind, current], nodes); + } + + _get(id) { + + return this._byId.get(id) || this._byKey.get(id); + } +}; + + +internals.fork = function (schema, id, replacement) { + + const each = (item, { key }) => { + + if (id === (item._flags.id || key)) { + return replacement; + } + }; + + const obj = exports.schema(schema, { each, ref: false }); + return obj ? obj.$_mutateRebuild() : schema; +}; + + +exports.schema = function (schema, options) { + + let obj; + + for (const name in schema._flags) { + if (name[0] === '_') { + continue; + } + + const result = internals.scan(schema._flags[name], { source: 'flags', name }, options); + if (result !== undefined) { + obj = obj || schema.clone(); + obj._flags[name] = result; + } + } + + for (let i = 0; i < schema._rules.length; ++i) { + const rule = schema._rules[i]; + const result = internals.scan(rule.args, { source: 'rules', name: rule.name }, options); + if (result !== undefined) { + obj = obj || schema.clone(); + const clone = Object.assign({}, rule); + clone.args = result; + obj._rules[i] = clone; + + const existingUnique = obj._singleRules.get(rule.name); + if (existingUnique === rule) { + obj._singleRules.set(rule.name, clone); + } + } + } + + for (const name in schema.$_terms) { + if (name[0] === '_') { + continue; + } + + const result = internals.scan(schema.$_terms[name], { source: 'terms', name }, options); + if (result !== undefined) { + obj = obj || schema.clone(); + obj.$_terms[name] = result; + } + } + + return obj; +}; + + +internals.scan = function (item, source, options, _path, _key) { + + const path = _path || []; + + if (item === null || + typeof item !== 'object') { + + return; + } + + let clone; + + if (Array.isArray(item)) { + for (let i = 0; i < item.length; ++i) { + const key = source.source === 'terms' && source.name === 'keys' && item[i].key; + const result = internals.scan(item[i], source, options, [i, ...path], key); + if (result !== undefined) { + clone = clone || item.slice(); + clone[i] = result; + } + } + + return clone; + } + + if (options.schema !== false && Common.isSchema(item) || + options.ref !== false && Ref.isRef(item)) { + + const result = options.each(item, { ...source, path, key: _key }); + if (result === item) { + return; + } + + return result; + } + + for (const key in item) { + if (key[0] === '_') { + continue; + } + + const result = internals.scan(item[key], source, options, [key, ...path], _key); + if (result !== undefined) { + clone = clone || Object.assign({}, item); + clone[key] = result; + } + } + + return clone; +}; diff --git a/node_modules/joi/lib/ref.js b/node_modules/joi/lib/ref.js new file mode 100755 index 0000000..9f84a7b --- /dev/null +++ b/node_modules/joi/lib/ref.js @@ -0,0 +1,414 @@ +'use strict'; + +const Assert = require('@hapi/hoek/lib/assert'); +const Clone = require('@hapi/hoek/lib/clone'); +const Reach = require('@hapi/hoek/lib/reach'); + +const Common = require('./common'); + +let Template; + + +const internals = { + symbol: Symbol('ref'), // Used to internally identify references (shared with other joi versions) + defaults: { + adjust: null, + in: false, + iterables: null, + map: null, + separator: '.', + type: 'value' + } +}; + + +exports.create = function (key, options = {}) { + + Assert(typeof key === 'string', 'Invalid reference key:', key); + Common.assertOptions(options, ['adjust', 'ancestor', 'in', 'iterables', 'map', 'prefix', 'render', 'separator']); + Assert(!options.prefix || typeof options.prefix === 'object', 'options.prefix must be of type object'); + + const ref = Object.assign({}, internals.defaults, options); + delete ref.prefix; + + const separator = ref.separator; + const context = internals.context(key, separator, options.prefix); + ref.type = context.type; + key = context.key; + + if (ref.type === 'value') { + if (context.root) { + Assert(!separator || key[0] !== separator, 'Cannot specify relative path with root prefix'); + ref.ancestor = 'root'; + if (!key) { + key = null; + } + } + + if (separator && + separator === key) { + + key = null; + ref.ancestor = 0; + } + else { + if (ref.ancestor !== undefined) { + Assert(!separator || !key || key[0] !== separator, 'Cannot combine prefix with ancestor option'); + } + else { + const [ancestor, slice] = internals.ancestor(key, separator); + if (slice) { + key = key.slice(slice); + if (key === '') { + key = null; + } + } + + ref.ancestor = ancestor; + } + } + } + + ref.path = separator ? (key === null ? [] : key.split(separator)) : [key]; + + return new internals.Ref(ref); +}; + + +exports.in = function (key, options = {}) { + + return exports.create(key, { ...options, in: true }); +}; + + +exports.isRef = function (ref) { + + return ref ? !!ref[Common.symbols.ref] : false; +}; + + +internals.Ref = class { + + constructor(options) { + + Assert(typeof options === 'object', 'Invalid reference construction'); + Common.assertOptions(options, [ + 'adjust', 'ancestor', 'in', 'iterables', 'map', 'path', 'render', 'separator', 'type', // Copied + 'depth', 'key', 'root', 'display' // Overridden + ]); + + Assert([false, undefined].includes(options.separator) || typeof options.separator === 'string' && options.separator.length === 1, 'Invalid separator'); + Assert(!options.adjust || typeof options.adjust === 'function', 'options.adjust must be a function'); + Assert(!options.map || Array.isArray(options.map), 'options.map must be an array'); + Assert(!options.map || !options.adjust, 'Cannot set both map and adjust options'); + + Object.assign(this, internals.defaults, options); + + Assert(this.type === 'value' || this.ancestor === undefined, 'Non-value references cannot reference ancestors'); + + if (Array.isArray(this.map)) { + this.map = new Map(this.map); + } + + this.depth = this.path.length; + this.key = this.path.length ? this.path.join(this.separator) : null; + this.root = this.path[0]; + + this.updateDisplay(); + } + + resolve(value, state, prefs, local, options = {}) { + + Assert(!this.in || options.in, 'Invalid in() reference usage'); + + if (this.type === 'global') { + return this._resolve(prefs.context, state, options); + } + + if (this.type === 'local') { + return this._resolve(local, state, options); + } + + if (!this.ancestor) { + return this._resolve(value, state, options); + } + + if (this.ancestor === 'root') { + return this._resolve(state.ancestors[state.ancestors.length - 1], state, options); + } + + Assert(this.ancestor <= state.ancestors.length, 'Invalid reference exceeds the schema root:', this.display); + return this._resolve(state.ancestors[this.ancestor - 1], state, options); + } + + _resolve(target, state, options) { + + let resolved; + + if (this.type === 'value' && + state.mainstay.shadow && + options.shadow !== false) { + + resolved = state.mainstay.shadow.get(this.absolute(state)); + } + + if (resolved === undefined) { + resolved = Reach(target, this.path, { iterables: this.iterables, functions: true }); + } + + if (this.adjust) { + resolved = this.adjust(resolved); + } + + if (this.map) { + const mapped = this.map.get(resolved); + if (mapped !== undefined) { + resolved = mapped; + } + } + + if (state.mainstay) { + state.mainstay.tracer.resolve(state, this, resolved); + } + + return resolved; + } + + toString() { + + return this.display; + } + + absolute(state) { + + return [...state.path.slice(0, -this.ancestor), ...this.path]; + } + + clone() { + + return new internals.Ref(this); + } + + describe() { + + const ref = { path: this.path }; + + if (this.type !== 'value') { + ref.type = this.type; + } + + if (this.separator !== '.') { + ref.separator = this.separator; + } + + if (this.type === 'value' && + this.ancestor !== 1) { + + ref.ancestor = this.ancestor; + } + + if (this.map) { + ref.map = [...this.map]; + } + + for (const key of ['adjust', 'iterables', 'render']) { + if (this[key] !== null && + this[key] !== undefined) { + + ref[key] = this[key]; + } + } + + if (this.in !== false) { + ref.in = true; + } + + return { ref }; + } + + updateDisplay() { + + const key = this.key !== null ? this.key : ''; + if (this.type !== 'value') { + this.display = `ref:${this.type}:${key}`; + return; + } + + if (!this.separator) { + this.display = `ref:${key}`; + return; + } + + if (!this.ancestor) { + this.display = `ref:${this.separator}${key}`; + return; + } + + if (this.ancestor === 'root') { + this.display = `ref:root:${key}`; + return; + } + + if (this.ancestor === 1) { + this.display = `ref:${key || '..'}`; + return; + } + + const lead = new Array(this.ancestor + 1).fill(this.separator).join(''); + this.display = `ref:${lead}${key || ''}`; + } +}; + + +internals.Ref.prototype[Common.symbols.ref] = true; + + +exports.build = function (desc) { + + desc = Object.assign({}, internals.defaults, desc); + if (desc.type === 'value' && + desc.ancestor === undefined) { + + desc.ancestor = 1; + } + + return new internals.Ref(desc); +}; + + +internals.context = function (key, separator, prefix = {}) { + + key = key.trim(); + + if (prefix) { + const globalp = prefix.global === undefined ? '$' : prefix.global; + if (globalp !== separator && + key.startsWith(globalp)) { + + return { key: key.slice(globalp.length), type: 'global' }; + } + + const local = prefix.local === undefined ? '#' : prefix.local; + if (local !== separator && + key.startsWith(local)) { + + return { key: key.slice(local.length), type: 'local' }; + } + + const root = prefix.root === undefined ? '/' : prefix.root; + if (root !== separator && + key.startsWith(root)) { + + return { key: key.slice(root.length), type: 'value', root: true }; + } + } + + return { key, type: 'value' }; +}; + + +internals.ancestor = function (key, separator) { + + if (!separator) { + return [1, 0]; // 'a_b' -> 1 (parent) + } + + if (key[0] !== separator) { // 'a.b' -> 1 (parent) + return [1, 0]; + } + + if (key[1] !== separator) { // '.a.b' -> 0 (self) + return [0, 1]; + } + + let i = 2; + while (key[i] === separator) { + ++i; + } + + return [i - 1, i]; // '...a.b.' -> 2 (grandparent) +}; + + +exports.toSibling = 0; + +exports.toParent = 1; + + +exports.Manager = class { + + constructor() { + + this.refs = []; // 0: [self refs], 1: [parent refs], 2: [grandparent refs], ... + } + + register(source, target) { + + if (!source) { + return; + } + + target = target === undefined ? exports.toParent : target; + + // Array + + if (Array.isArray(source)) { + for (const ref of source) { + this.register(ref, target); + } + + return; + } + + // Schema + + if (Common.isSchema(source)) { + for (const item of source._refs.refs) { + if (item.ancestor - target >= 0) { + this.refs.push({ ancestor: item.ancestor - target, root: item.root }); + } + } + + return; + } + + // Reference + + if (exports.isRef(source) && + source.type === 'value' && + source.ancestor - target >= 0) { + + this.refs.push({ ancestor: source.ancestor - target, root: source.root }); + } + + // Template + + Template = Template || require('./template'); + + if (Template.isTemplate(source)) { + this.register(source.refs(), target); + } + } + + get length() { + + return this.refs.length; + } + + clone() { + + const copy = new exports.Manager(); + copy.refs = Clone(this.refs); + return copy; + } + + reset() { + + this.refs = []; + } + + roots() { + + return this.refs.filter((ref) => !ref.ancestor).map((ref) => ref.root); + } +}; diff --git a/node_modules/joi/lib/schemas.js b/node_modules/joi/lib/schemas.js new file mode 100755 index 0000000..ab56109 --- /dev/null +++ b/node_modules/joi/lib/schemas.js @@ -0,0 +1,301 @@ +'use strict'; + +const Joi = require('./index'); + + +const internals = {}; + + +// Preferences + +internals.wrap = Joi.string() + .min(1) + .max(2) + .allow(false); + + +exports.preferences = Joi.object({ + allowUnknown: Joi.boolean(), + abortEarly: Joi.boolean(), + artifacts: Joi.boolean(), + cache: Joi.boolean(), + context: Joi.object(), + convert: Joi.boolean(), + dateFormat: Joi.valid('date', 'iso', 'string', 'time', 'utc'), + debug: Joi.boolean(), + errors: { + escapeHtml: Joi.boolean(), + label: Joi.valid('path', 'key', false), + language: [ + Joi.string(), + Joi.object().ref() + ], + render: Joi.boolean(), + stack: Joi.boolean(), + wrap: { + label: internals.wrap, + array: internals.wrap + } + }, + externals: Joi.boolean(), + messages: Joi.object(), + noDefaults: Joi.boolean(), + nonEnumerables: Joi.boolean(), + presence: Joi.valid('required', 'optional', 'forbidden'), + skipFunctions: Joi.boolean(), + stripUnknown: Joi.object({ + arrays: Joi.boolean(), + objects: Joi.boolean() + }) + .or('arrays', 'objects') + .allow(true, false), + warnings: Joi.boolean() +}) + .strict(); + + +// Extensions + +internals.nameRx = /^[a-zA-Z0-9]\w*$/; + + +internals.rule = Joi.object({ + alias: Joi.array().items(Joi.string().pattern(internals.nameRx)).single(), + args: Joi.array().items( + Joi.string(), + Joi.object({ + name: Joi.string().pattern(internals.nameRx).required(), + ref: Joi.boolean(), + assert: Joi.alternatives([ + Joi.function(), + Joi.object().schema() + ]) + .conditional('ref', { is: true, then: Joi.required() }), + normalize: Joi.function(), + message: Joi.string().when('assert', { is: Joi.function(), then: Joi.required() }) + }) + ), + convert: Joi.boolean(), + manifest: Joi.boolean(), + method: Joi.function().allow(false), + multi: Joi.boolean(), + validate: Joi.function() +}); + + +exports.extension = Joi.object({ + type: Joi.alternatives([ + Joi.string(), + Joi.object().regex() + ]) + .required(), + args: Joi.function(), + cast: Joi.object().pattern(internals.nameRx, Joi.object({ + from: Joi.function().maxArity(1).required(), + to: Joi.function().minArity(1).maxArity(2).required() + })), + base: Joi.object().schema() + .when('type', { is: Joi.object().regex(), then: Joi.forbidden() }), + coerce: [ + Joi.function().maxArity(3), + Joi.object({ method: Joi.function().maxArity(3).required(), from: Joi.array().items(Joi.string()).single() }) + ], + flags: Joi.object().pattern(internals.nameRx, Joi.object({ + setter: Joi.string(), + default: Joi.any() + })), + manifest: { + build: Joi.function().arity(2) + }, + messages: [Joi.object(), Joi.string()], + modifiers: Joi.object().pattern(internals.nameRx, Joi.function().minArity(1).maxArity(2)), + overrides: Joi.object().pattern(internals.nameRx, Joi.function()), + prepare: Joi.function().maxArity(3), + rebuild: Joi.function().arity(1), + rules: Joi.object().pattern(internals.nameRx, internals.rule), + terms: Joi.object().pattern(internals.nameRx, Joi.object({ + init: Joi.array().allow(null).required(), + manifest: Joi.object().pattern(/.+/, [ + Joi.valid('schema', 'single'), + Joi.object({ + mapped: Joi.object({ + from: Joi.string().required(), + to: Joi.string().required() + }) + .required() + }) + ]) + })), + validate: Joi.function().maxArity(3) +}) + .strict(); + + +exports.extensions = Joi.array().items(Joi.object(), Joi.function().arity(1)).strict(); + + +// Manifest + +internals.desc = { + + buffer: Joi.object({ + buffer: Joi.string() + }), + + func: Joi.object({ + function: Joi.function().required(), + options: { + literal: true + } + }), + + override: Joi.object({ + override: true + }), + + ref: Joi.object({ + ref: Joi.object({ + type: Joi.valid('value', 'global', 'local'), + path: Joi.array().required(), + separator: Joi.string().length(1).allow(false), + ancestor: Joi.number().min(0).integer().allow('root'), + map: Joi.array().items(Joi.array().length(2)).min(1), + adjust: Joi.function(), + iterables: Joi.boolean(), + in: Joi.boolean(), + render: Joi.boolean() + }) + .required() + }), + + regex: Joi.object({ + regex: Joi.string().min(3) + }), + + special: Joi.object({ + special: Joi.valid('deep').required() + }), + + template: Joi.object({ + template: Joi.string().required(), + options: Joi.object() + }), + + value: Joi.object({ + value: Joi.alternatives([Joi.object(), Joi.array()]).required() + }) +}; + + +internals.desc.entity = Joi.alternatives([ + Joi.array().items(Joi.link('...')), + Joi.boolean(), + Joi.function(), + Joi.number(), + Joi.string(), + internals.desc.buffer, + internals.desc.func, + internals.desc.ref, + internals.desc.regex, + internals.desc.special, + internals.desc.template, + internals.desc.value, + Joi.link('/') +]); + + +internals.desc.values = Joi.array() + .items( + null, + Joi.boolean(), + Joi.function(), + Joi.number().allow(Infinity, -Infinity), + Joi.string().allow(''), + Joi.symbol(), + internals.desc.buffer, + internals.desc.func, + internals.desc.override, + internals.desc.ref, + internals.desc.regex, + internals.desc.template, + internals.desc.value + ); + + +internals.desc.messages = Joi.object() + .pattern(/.+/, [ + Joi.string(), + internals.desc.template, + Joi.object().pattern(/.+/, [Joi.string(), internals.desc.template]) + ]); + + +exports.description = Joi.object({ + type: Joi.string().required(), + flags: Joi.object({ + cast: Joi.string(), + default: Joi.any(), + description: Joi.string(), + empty: Joi.link('/'), + failover: internals.desc.entity, + id: Joi.string(), + label: Joi.string(), + only: true, + presence: ['optional', 'required', 'forbidden'], + result: ['raw', 'strip'], + strip: Joi.boolean(), + unit: Joi.string() + }) + .unknown(), + preferences: { + allowUnknown: Joi.boolean(), + abortEarly: Joi.boolean(), + artifacts: Joi.boolean(), + cache: Joi.boolean(), + convert: Joi.boolean(), + dateFormat: ['date', 'iso', 'string', 'time', 'utc'], + errors: { + escapeHtml: Joi.boolean(), + label: ['path', 'key'], + language: [ + Joi.string(), + internals.desc.ref + ], + wrap: { + label: internals.wrap, + array: internals.wrap + } + }, + externals: Joi.boolean(), + messages: internals.desc.messages, + noDefaults: Joi.boolean(), + nonEnumerables: Joi.boolean(), + presence: ['required', 'optional', 'forbidden'], + skipFunctions: Joi.boolean(), + stripUnknown: Joi.object({ + arrays: Joi.boolean(), + objects: Joi.boolean() + }) + .or('arrays', 'objects') + .allow(true, false), + warnings: Joi.boolean() + }, + allow: internals.desc.values, + invalid: internals.desc.values, + rules: Joi.array().min(1).items({ + name: Joi.string().required(), + args: Joi.object().min(1), + keep: Joi.boolean(), + message: [ + Joi.string(), + internals.desc.messages + ], + warn: Joi.boolean() + }), + + // Terms + + keys: Joi.object().pattern(/.*/, Joi.link('/')), + link: internals.desc.ref +}) + .pattern(/^[a-z]\w*$/, Joi.any()); diff --git a/node_modules/joi/lib/state.js b/node_modules/joi/lib/state.js new file mode 100755 index 0000000..8db251b --- /dev/null +++ b/node_modules/joi/lib/state.js @@ -0,0 +1,152 @@ +'use strict'; + +const Clone = require('@hapi/hoek/lib/clone'); +const Reach = require('@hapi/hoek/lib/reach'); + +const Common = require('./common'); + + +const internals = { + value: Symbol('value') +}; + + +module.exports = internals.State = class { + + constructor(path, ancestors, state) { + + this.path = path; + this.ancestors = ancestors; // [parent, ..., root] + + this.mainstay = state.mainstay; + this.schemas = state.schemas; // [current, ..., root] + this.debug = null; + } + + localize(path, ancestors = null, schema = null) { + + const state = new internals.State(path, ancestors, this); + + if (schema && + state.schemas) { + + state.schemas = [internals.schemas(schema), ...state.schemas]; + } + + return state; + } + + nest(schema, debug) { + + const state = new internals.State(this.path, this.ancestors, this); + state.schemas = state.schemas && [internals.schemas(schema), ...state.schemas]; + state.debug = debug; + return state; + } + + shadow(value, reason) { + + this.mainstay.shadow = this.mainstay.shadow || new internals.Shadow(); + this.mainstay.shadow.set(this.path, value, reason); + } + + snapshot() { + + if (this.mainstay.shadow) { + this._snapshot = Clone(this.mainstay.shadow.node(this.path)); + } + } + + restore() { + + if (this.mainstay.shadow) { + this.mainstay.shadow.override(this.path, this._snapshot); + this._snapshot = undefined; + } + } +}; + + +internals.schemas = function (schema) { + + if (Common.isSchema(schema)) { + return { schema }; + } + + return schema; +}; + + +internals.Shadow = class { + + constructor() { + + this._values = null; + } + + set(path, value, reason) { + + if (!path.length) { // No need to store root value + return; + } + + if (reason === 'strip' && + typeof path[path.length - 1] === 'number') { // Cannot store stripped array values (due to shift) + + return; + } + + this._values = this._values || new Map(); + + let node = this._values; + for (let i = 0; i < path.length; ++i) { + const segment = path[i]; + let next = node.get(segment); + if (!next) { + next = new Map(); + node.set(segment, next); + } + + node = next; + } + + node[internals.value] = value; + } + + get(path) { + + const node = this.node(path); + if (node) { + return node[internals.value]; + } + } + + node(path) { + + if (!this._values) { + return; + } + + return Reach(this._values, path, { iterables: true }); + } + + override(path, node) { + + if (!this._values) { + return; + } + + const parents = path.slice(0, -1); + const own = path[path.length - 1]; + const parent = Reach(this._values, parents, { iterables: true }); + + if (node) { + parent.set(own, node); + return; + } + + if (parent) { + parent.delete(own); + } + } +}; diff --git a/node_modules/joi/lib/template.js b/node_modules/joi/lib/template.js new file mode 100755 index 0000000..c21eb70 --- /dev/null +++ b/node_modules/joi/lib/template.js @@ -0,0 +1,427 @@ +'use strict'; + +const Assert = require('@hapi/hoek/lib/assert'); +const Clone = require('@hapi/hoek/lib/clone'); +const EscapeHtml = require('@hapi/hoek/lib/escapeHtml'); +const Formula = require('@sideway/formula'); + +const Common = require('./common'); +const Errors = require('./errors'); +const Ref = require('./ref'); + + +const internals = { + symbol: Symbol('template'), + + opens: new Array(1000).join('\u0000'), + closes: new Array(1000).join('\u0001'), + + dateFormat: { + date: Date.prototype.toDateString, + iso: Date.prototype.toISOString, + string: Date.prototype.toString, + time: Date.prototype.toTimeString, + utc: Date.prototype.toUTCString + } +}; + + +module.exports = exports = internals.Template = class { + + constructor(source, options) { + + Assert(typeof source === 'string', 'Template source must be a string'); + Assert(!source.includes('\u0000') && !source.includes('\u0001'), 'Template source cannot contain reserved control characters'); + + this.source = source; + this.rendered = source; + + this._template = null; + this._settings = Clone(options); + + this._parse(); + } + + _parse() { + + // 'text {raw} {{ref}} \\{{ignore}} {{ignore\\}} {{ignore {{ignore}' + + if (!this.source.includes('{')) { + return; + } + + // Encode escaped \\{{{{{ + + const encoded = internals.encode(this.source); + + // Split on first { in each set + + const parts = internals.split(encoded); + + // Process parts + + let refs = false; + const processed = []; + const head = parts.shift(); + if (head) { + processed.push(head); + } + + for (const part of parts) { + const raw = part[0] !== '{'; + const ender = raw ? '}' : '}}'; + const end = part.indexOf(ender); + if (end === -1 || // Ignore non-matching closing + part[1] === '{') { // Ignore more than two { + + processed.push(`{${internals.decode(part)}`); + continue; + } + + let variable = part.slice(raw ? 0 : 1, end); + const wrapped = variable[0] === ':'; + if (wrapped) { + variable = variable.slice(1); + } + + const dynamic = this._ref(internals.decode(variable), { raw, wrapped }); + processed.push(dynamic); + if (typeof dynamic !== 'string') { + refs = true; + } + + const rest = part.slice(end + ender.length); + if (rest) { + processed.push(internals.decode(rest)); + } + } + + if (!refs) { + this.rendered = processed.join(''); + return; + } + + this._template = processed; + } + + static date(date, prefs) { + + return internals.dateFormat[prefs.dateFormat].call(date); + } + + describe(options = {}) { + + if (!this._settings && + options.compact) { + + return this.source; + } + + const desc = { template: this.source }; + if (this._settings) { + desc.options = this._settings; + } + + return desc; + } + + static build(desc) { + + return new internals.Template(desc.template, desc.options); + } + + isDynamic() { + + return !!this._template; + } + + static isTemplate(template) { + + return template ? !!template[Common.symbols.template] : false; + } + + refs() { + + if (!this._template) { + return; + } + + const refs = []; + for (const part of this._template) { + if (typeof part !== 'string') { + refs.push(...part.refs); + } + } + + return refs; + } + + resolve(value, state, prefs, local) { + + if (this._template && + this._template.length === 1) { + + return this._part(this._template[0], /* context -> [*/ value, state, prefs, local, {} /*] */); + } + + return this.render(value, state, prefs, local); + } + + _part(part, ...args) { + + if (part.ref) { + return part.ref.resolve(...args); + } + + return part.formula.evaluate(args); + } + + render(value, state, prefs, local, options = {}) { + + if (!this.isDynamic()) { + return this.rendered; + } + + const parts = []; + for (const part of this._template) { + if (typeof part === 'string') { + parts.push(part); + } + else { + const rendered = this._part(part, /* context -> [*/ value, state, prefs, local, options /*] */); + const string = internals.stringify(rendered, value, state, prefs, local, options); + if (string !== undefined) { + const result = part.raw || (options.errors && options.errors.escapeHtml) === false ? string : EscapeHtml(string); + parts.push(internals.wrap(result, part.wrapped && prefs.errors.wrap.label)); + } + } + } + + return parts.join(''); + } + + _ref(content, { raw, wrapped }) { + + const refs = []; + const reference = (variable) => { + + const ref = Ref.create(variable, this._settings); + refs.push(ref); + return (context) => ref.resolve(...context); + }; + + try { + var formula = new Formula.Parser(content, { reference, functions: internals.functions, constants: internals.constants }); + } + catch (err) { + err.message = `Invalid template variable "${content}" fails due to: ${err.message}`; + throw err; + } + + if (formula.single) { + if (formula.single.type === 'reference') { + const ref = refs[0]; + return { ref, raw, refs, wrapped: wrapped || ref.type === 'local' && ref.key === 'label' }; + } + + return internals.stringify(formula.single.value); + } + + return { formula, raw, refs }; + } + + toString() { + + return this.source; + } +}; + + +internals.Template.prototype[Common.symbols.template] = true; +internals.Template.prototype.isImmutable = true; // Prevents Hoek from deep cloning schema objects + + +internals.encode = function (string) { + + return string + .replace(/\\(\{+)/g, ($0, $1) => { + + return internals.opens.slice(0, $1.length); + }) + .replace(/\\(\}+)/g, ($0, $1) => { + + return internals.closes.slice(0, $1.length); + }); +}; + + +internals.decode = function (string) { + + return string + .replace(/\u0000/g, '{') + .replace(/\u0001/g, '}'); +}; + + +internals.split = function (string) { + + const parts = []; + let current = ''; + + for (let i = 0; i < string.length; ++i) { + const char = string[i]; + + if (char === '{') { + let next = ''; + while (i + 1 < string.length && + string[i + 1] === '{') { + + next += '{'; + ++i; + } + + parts.push(current); + current = next; + } + else { + current += char; + } + } + + parts.push(current); + return parts; +}; + + +internals.wrap = function (value, ends) { + + if (!ends) { + return value; + } + + if (ends.length === 1) { + return `${ends}${value}${ends}`; + } + + return `${ends[0]}${value}${ends[1]}`; +}; + + +internals.stringify = function (value, original, state, prefs, local, options) { + + const type = typeof value; + + let skipWrap = false; + if (Ref.isRef(value) && + value.render) { + + skipWrap = value.in; + value = value.resolve(original, state, prefs, local, { in: value.in, ...options }); + } + + if (value === null) { + return 'null'; + } + + if (type === 'string') { + return value; + } + + if (type === 'number' || + type === 'function' || + type === 'symbol') { + + return value.toString(); + } + + if (type !== 'object') { + return JSON.stringify(value); + } + + if (value instanceof Date) { + return internals.Template.date(value, prefs); + } + + if (value instanceof Map) { + const pairs = []; + for (const [key, sym] of value.entries()) { + pairs.push(`${key.toString()} -> ${sym.toString()}`); + } + + value = pairs; + } + + if (!Array.isArray(value)) { + return value.toString(); + } + + let partial = ''; + for (const item of value) { + partial = partial + (partial.length ? ', ' : '') + internals.stringify(item, original, state, prefs, local, options); + } + + if (skipWrap) { + return partial; + } + + return internals.wrap(partial, prefs.errors.wrap.array); +}; + + +internals.constants = { + + true: true, + false: false, + null: null, + + second: 1000, + minute: 60 * 1000, + hour: 60 * 60 * 1000, + day: 24 * 60 * 60 * 1000 +}; + + +internals.functions = { + + if(condition, then, otherwise) { + + return condition ? then : otherwise; + }, + + msg(code) { + + const [value, state, prefs, local, options] = this; + const messages = options.messages; + if (!messages) { + return ''; + } + + const template = Errors.template(value, messages[0], code, state, prefs) || Errors.template(value, messages[1], code, state, prefs); + if (!template) { + return ''; + } + + return template.render(value, state, prefs, local, options); + }, + + number(value) { + + if (typeof value === 'number') { + return value; + } + + if (typeof value === 'string') { + return parseFloat(value); + } + + if (typeof value === 'boolean') { + return value ? 1 : 0; + } + + if (value instanceof Date) { + return value.getTime(); + } + + return null; + } +}; diff --git a/node_modules/joi/lib/trace.js b/node_modules/joi/lib/trace.js new file mode 100755 index 0000000..ded4d7e --- /dev/null +++ b/node_modules/joi/lib/trace.js @@ -0,0 +1,346 @@ +'use strict'; + +const DeepEqual = require('@hapi/hoek/lib/deepEqual'); +const Pinpoint = require('@sideway/pinpoint'); + +const Errors = require('./errors'); + + +const internals = { + codes: { + error: 1, + pass: 2, + full: 3 + }, + labels: { + 0: 'never used', + 1: 'always error', + 2: 'always pass' + } +}; + + +exports.setup = function (root) { + + const trace = function () { + + root._tracer = root._tracer || new internals.Tracer(); + return root._tracer; + }; + + root.trace = trace; + root[Symbol.for('@hapi/lab/coverage/initialize')] = trace; + + root.untrace = () => { + + root._tracer = null; + }; +}; + + +exports.location = function (schema) { + + return schema.$_setFlag('_tracerLocation', Pinpoint.location(2)); // base.tracer(), caller +}; + + +internals.Tracer = class { + + constructor() { + + this.name = 'Joi'; + this._schemas = new Map(); + } + + _register(schema) { + + const existing = this._schemas.get(schema); + if (existing) { + return existing.store; + } + + const store = new internals.Store(schema); + const { filename, line } = schema._flags._tracerLocation || Pinpoint.location(5); // internals.tracer(), internals.entry(), exports.entry(), validate(), caller + this._schemas.set(schema, { filename, line, store }); + return store; + } + + _combine(merged, sources) { + + for (const { store } of this._schemas.values()) { + store._combine(merged, sources); + } + } + + report(file) { + + const coverage = []; + + // Process each registered schema + + for (const { filename, line, store } of this._schemas.values()) { + if (file && + file !== filename) { + + continue; + } + + // Process sub schemas of the registered root + + const missing = []; + const skipped = []; + + for (const [schema, log] of store._sources.entries()) { + + // Check if sub schema parent skipped + + if (internals.sub(log.paths, skipped)) { + continue; + } + + // Check if sub schema reached + + if (!log.entry) { + missing.push({ + status: 'never reached', + paths: [...log.paths] + }); + + skipped.push(...log.paths); + continue; + } + + // Check values + + for (const type of ['valid', 'invalid']) { + const set = schema[`_${type}s`]; + if (!set) { + continue; + } + + const values = new Set(set._values); + const refs = new Set(set._refs); + for (const { value, ref } of log[type]) { + values.delete(value); + refs.delete(ref); + } + + if (values.size || + refs.size) { + + missing.push({ + status: [...values, ...[...refs].map((ref) => ref.display)], + rule: `${type}s` + }); + } + } + + // Check rules status + + const rules = schema._rules.map((rule) => rule.name); + for (const type of ['default', 'failover']) { + if (schema._flags[type] !== undefined) { + rules.push(type); + } + } + + for (const name of rules) { + const status = internals.labels[log.rule[name] || 0]; + if (status) { + const report = { rule: name, status }; + if (log.paths.size) { + report.paths = [...log.paths]; + } + + missing.push(report); + } + } + } + + if (missing.length) { + coverage.push({ + filename, + line, + missing, + severity: 'error', + message: `Schema missing tests for ${missing.map(internals.message).join(', ')}` + }); + } + } + + return coverage.length ? coverage : null; + } +}; + + +internals.Store = class { + + constructor(schema) { + + this.active = true; + this._sources = new Map(); // schema -> { paths, entry, rule, valid, invalid } + this._combos = new Map(); // merged -> [sources] + this._scan(schema); + } + + debug(state, source, name, result) { + + state.mainstay.debug && state.mainstay.debug.push({ type: source, name, result, path: state.path }); + } + + entry(schema, state) { + + internals.debug(state, { type: 'entry' }); + + this._record(schema, (log) => { + + log.entry = true; + }); + } + + filter(schema, state, source, value) { + + internals.debug(state, { type: source, ...value }); + + this._record(schema, (log) => { + + log[source].add(value); + }); + } + + log(schema, state, source, name, result) { + + internals.debug(state, { type: source, name, result: result === 'full' ? 'pass' : result }); + + this._record(schema, (log) => { + + log[source][name] = log[source][name] || 0; + log[source][name] |= internals.codes[result]; + }); + } + + resolve(state, ref, to) { + + if (!state.mainstay.debug) { + return; + } + + const log = { type: 'resolve', ref: ref.display, to, path: state.path }; + state.mainstay.debug.push(log); + } + + value(state, by, from, to, name) { + + if (!state.mainstay.debug || + DeepEqual(from, to)) { + + return; + } + + const log = { type: 'value', by, from, to, path: state.path }; + if (name) { + log.name = name; + } + + state.mainstay.debug.push(log); + } + + _record(schema, each) { + + const log = this._sources.get(schema); + if (log) { + each(log); + return; + } + + const sources = this._combos.get(schema); + for (const source of sources) { + this._record(source, each); + } + } + + _scan(schema, _path) { + + const path = _path || []; + + let log = this._sources.get(schema); + if (!log) { + log = { + paths: new Set(), + entry: false, + rule: {}, + valid: new Set(), + invalid: new Set() + }; + + this._sources.set(schema, log); + } + + if (path.length) { + log.paths.add(path); + } + + const each = (sub, source) => { + + const subId = internals.id(sub, source); + this._scan(sub, path.concat(subId)); + }; + + schema.$_modify({ each, ref: false }); + } + + _combine(merged, sources) { + + this._combos.set(merged, sources); + } +}; + + +internals.message = function (item) { + + const path = item.paths ? Errors.path(item.paths[0]) + (item.rule ? ':' : '') : ''; + return `${path}${item.rule || ''} (${item.status})`; +}; + + +internals.id = function (schema, { source, name, path, key }) { + + if (schema._flags.id) { + return schema._flags.id; + } + + if (key) { + return key; + } + + name = `@${name}`; + + if (source === 'terms') { + return [name, path[Math.min(path.length - 1, 1)]]; + } + + return name; +}; + + +internals.sub = function (paths, skipped) { + + for (const path of paths) { + for (const skip of skipped) { + if (DeepEqual(path.slice(0, skip.length), skip)) { + return true; + } + } + } + + return false; +}; + + +internals.debug = function (state, event) { + + if (state.mainstay.debug) { + event.path = state.debug ? [...state.path, state.debug] : state.path; + state.mainstay.debug.push(event); + } +}; diff --git a/node_modules/joi/lib/types/alternatives.js b/node_modules/joi/lib/types/alternatives.js new file mode 100755 index 0000000..940c669 --- /dev/null +++ b/node_modules/joi/lib/types/alternatives.js @@ -0,0 +1,329 @@ +'use strict'; + +const Assert = require('@hapi/hoek/lib/assert'); + +const Any = require('./any'); +const Common = require('../common'); +const Compile = require('../compile'); +const Errors = require('../errors'); +const Ref = require('../ref'); + + +const internals = {}; + + +module.exports = Any.extend({ + + type: 'alternatives', + + flags: { + + match: { default: 'any' } // 'any', 'one', 'all' + }, + + terms: { + + matches: { init: [], register: Ref.toSibling } + }, + + args(schema, ...schemas) { + + if (schemas.length === 1) { + if (Array.isArray(schemas[0])) { + return schema.try(...schemas[0]); + } + } + + return schema.try(...schemas); + }, + + validate(value, helpers) { + + const { schema, error, state, prefs } = helpers; + + // Match all or one + + if (schema._flags.match) { + let hits = 0; + let matched; + + for (let i = 0; i < schema.$_terms.matches.length; ++i) { + const item = schema.$_terms.matches[i]; + const localState = state.nest(item.schema, `match.${i}`); + localState.snapshot(); + + const result = item.schema.$_validate(value, localState, prefs); + if (!result.errors) { + ++hits; + matched = result.value; + } + else { + localState.restore(); + } + } + + if (!hits) { + return { errors: error('alternatives.any') }; + } + + if (schema._flags.match === 'one') { + return hits === 1 ? { value: matched } : { errors: error('alternatives.one') }; + } + + return hits === schema.$_terms.matches.length ? { value } : { errors: error('alternatives.all') }; + } + + // Match any + + const errors = []; + for (let i = 0; i < schema.$_terms.matches.length; ++i) { + const item = schema.$_terms.matches[i]; + + // Try + + if (item.schema) { + const localState = state.nest(item.schema, `match.${i}`); + localState.snapshot(); + + const result = item.schema.$_validate(value, localState, prefs); + if (!result.errors) { + return result; + } + + localState.restore(); + errors.push({ schema: item.schema, reports: result.errors }); + continue; + } + + // Conditional + + const input = item.ref ? item.ref.resolve(value, state, prefs) : value; + const tests = item.is ? [item] : item.switch; + + for (let j = 0; j < tests.length; ++j) { + const test = tests[j]; + const { is, then, otherwise } = test; + + const id = `match.${i}${item.switch ? '.' + j : ''}`; + if (!is.$_match(input, state.nest(is, `${id}.is`), prefs)) { + if (otherwise) { + return otherwise.$_validate(value, state.nest(otherwise, `${id}.otherwise`), prefs); + } + } + else if (then) { + return then.$_validate(value, state.nest(then, `${id}.then`), prefs); + } + } + } + + return internals.errors(errors, helpers); + }, + + rules: { + + conditional: { + method(condition, options) { + + Assert(!this._flags._endedSwitch, 'Unreachable condition'); + Assert(!this._flags.match, 'Cannot combine match mode', this._flags.match, 'with conditional rule'); + Assert(options.break === undefined, 'Cannot use break option with alternatives conditional'); + + const obj = this.clone(); + + const match = Compile.when(obj, condition, options); + const conditions = match.is ? [match] : match.switch; + for (const item of conditions) { + if (item.then && + item.otherwise) { + + obj.$_setFlag('_endedSwitch', true, { clone: false }); + break; + } + } + + obj.$_terms.matches.push(match); + return obj.$_mutateRebuild(); + } + }, + + match: { + method(mode) { + + Assert(['any', 'one', 'all'].includes(mode), 'Invalid alternatives match mode', mode); + + if (mode !== 'any') { + for (const match of this.$_terms.matches) { + Assert(match.schema, 'Cannot combine match mode', mode, 'with conditional rules'); + } + } + + return this.$_setFlag('match', mode); + } + }, + + try: { + method(...schemas) { + + Assert(schemas.length, 'Missing alternative schemas'); + Common.verifyFlat(schemas, 'try'); + + Assert(!this._flags._endedSwitch, 'Unreachable condition'); + + const obj = this.clone(); + for (const schema of schemas) { + obj.$_terms.matches.push({ schema: obj.$_compile(schema) }); + } + + return obj.$_mutateRebuild(); + } + } + }, + + overrides: { + + label(name) { + + const obj = this.$_parent('label', name); + const each = (item, source) => (source.path[0] !== 'is' ? item.label(name) : undefined); + return obj.$_modify({ each, ref: false }); + } + }, + + rebuild(schema) { + + // Flag when an alternative type is an array + + const each = (item) => { + + if (Common.isSchema(item) && + item.type === 'array') { + + schema.$_setFlag('_arrayItems', true, { clone: false }); + } + }; + + schema.$_modify({ each }); + }, + + manifest: { + + build(obj, desc) { + + if (desc.matches) { + for (const match of desc.matches) { + const { schema, ref, is, not, then, otherwise } = match; + if (schema) { + obj = obj.try(schema); + } + else if (ref) { + obj = obj.conditional(ref, { is, then, not, otherwise, switch: match.switch }); + } + else { + obj = obj.conditional(is, { then, otherwise }); + } + } + } + + return obj; + } + }, + + messages: { + 'alternatives.all': '{{#label}} does not match all of the required types', + 'alternatives.any': '{{#label}} does not match any of the allowed types', + 'alternatives.match': '{{#label}} does not match any of the allowed types', + 'alternatives.one': '{{#label}} matches more than one allowed type', + 'alternatives.types': '{{#label}} must be one of {{#types}}' + } +}); + + +// Helpers + +internals.errors = function (failures, { error, state }) { + + // Nothing matched due to type criteria rules + + if (!failures.length) { + return { errors: error('alternatives.any') }; + } + + // Single error + + if (failures.length === 1) { + return { errors: failures[0].reports }; + } + + // Analyze reasons + + const valids = new Set(); + const complex = []; + + for (const { reports, schema } of failures) { + + // Multiple errors (!abortEarly) + + if (reports.length > 1) { + return internals.unmatched(failures, error); + } + + // Custom error + + const report = reports[0]; + if (report instanceof Errors.Report === false) { + return internals.unmatched(failures, error); + } + + // Internal object or array error + + if (report.state.path.length !== state.path.length) { + complex.push({ type: schema.type, report }); + continue; + } + + // Valids + + if (report.code === 'any.only') { + for (const valid of report.local.valids) { + valids.add(valid); + } + + continue; + } + + // Base type + + const [type, code] = report.code.split('.'); + if (code !== 'base') { + complex.push({ type: schema.type, report }); + continue; + } + + valids.add(type); + } + + // All errors are base types or valids + + if (!complex.length) { + return { errors: error('alternatives.types', { types: [...valids] }) }; + } + + // Single complex error + + if (complex.length === 1) { + return { errors: complex[0].report }; + } + + return internals.unmatched(failures, error); +}; + + +internals.unmatched = function (failures, error) { + + const errors = []; + for (const failure of failures) { + errors.push(...failure.reports); + } + + return { errors: error('alternatives.match', Errors.details(errors, { override: false })) }; +}; diff --git a/node_modules/joi/lib/types/any.js b/node_modules/joi/lib/types/any.js new file mode 100755 index 0000000..2b1ad58 --- /dev/null +++ b/node_modules/joi/lib/types/any.js @@ -0,0 +1,174 @@ +'use strict'; + +const Assert = require('@hapi/hoek/lib/assert'); + +const Base = require('../base'); +const Common = require('../common'); +const Messages = require('../messages'); + + +const internals = {}; + + +module.exports = Base.extend({ + + type: 'any', + + flags: { + + only: { default: false } + }, + + terms: { + + alterations: { init: null }, + examples: { init: null }, + externals: { init: null }, + metas: { init: [] }, + notes: { init: [] }, + shared: { init: null }, + tags: { init: [] }, + whens: { init: null } + }, + + rules: { + + custom: { + method(method, description) { + + Assert(typeof method === 'function', 'Method must be a function'); + Assert(description === undefined || description && typeof description === 'string', 'Description must be a non-empty string'); + + return this.$_addRule({ name: 'custom', args: { method, description } }); + }, + validate(value, helpers, { method }) { + + try { + return method(value, helpers); + } + catch (err) { + return helpers.error('any.custom', { error: err }); + } + }, + args: ['method', 'description'], + multi: true + }, + + messages: { + method(messages) { + + return this.prefs({ messages }); + } + }, + + shared: { + method(schema) { + + Assert(Common.isSchema(schema) && schema._flags.id, 'Schema must be a schema with an id'); + + const obj = this.clone(); + obj.$_terms.shared = obj.$_terms.shared || []; + obj.$_terms.shared.push(schema); + obj.$_mutateRegister(schema); + return obj; + } + }, + + warning: { + method(code, local) { + + Assert(code && typeof code === 'string', 'Invalid warning code'); + + return this.$_addRule({ name: 'warning', args: { code, local }, warn: true }); + }, + validate(value, helpers, { code, local }) { + + return helpers.error(code, local); + }, + args: ['code', 'local'], + multi: true + } + }, + + modifiers: { + + keep(rule, enabled = true) { + + rule.keep = enabled; + }, + + message(rule, message) { + + rule.message = Messages.compile(message); + }, + + warn(rule, enabled = true) { + + rule.warn = enabled; + } + }, + + manifest: { + + build(obj, desc) { + + for (const key in desc) { + const values = desc[key]; + + if (['examples', 'externals', 'metas', 'notes', 'tags'].includes(key)) { + for (const value of values) { + obj = obj[key.slice(0, -1)](value); + } + + continue; + } + + if (key === 'alterations') { + const alter = {}; + for (const { target, adjuster } of values) { + alter[target] = adjuster; + } + + obj = obj.alter(alter); + continue; + } + + if (key === 'whens') { + for (const value of values) { + const { ref, is, not, then, otherwise, concat } = value; + if (concat) { + obj = obj.concat(concat); + } + else if (ref) { + obj = obj.when(ref, { is, not, then, otherwise, switch: value.switch, break: value.break }); + } + else { + obj = obj.when(is, { then, otherwise, break: value.break }); + } + } + + continue; + } + + if (key === 'shared') { + for (const value of values) { + obj = obj.shared(value); + } + } + } + + return obj; + } + }, + + messages: { + 'any.custom': '{{#label}} failed custom validation because {{#error.message}}', + 'any.default': '{{#label}} threw an error when running default method', + 'any.failover': '{{#label}} threw an error when running failover method', + 'any.invalid': '{{#label}} contains an invalid value', + 'any.only': '{{#label}} must be {if(#valids.length == 1, "", "one of ")}{{#valids}}', + 'any.ref': '{{#label}} {{#arg}} references {{:#ref}} which {{#reason}}', + 'any.required': '{{#label}} is required', + 'any.unknown': '{{#label}} is not allowed' + } +}); diff --git a/node_modules/joi/lib/types/array.js b/node_modules/joi/lib/types/array.js new file mode 100755 index 0000000..a18d558 --- /dev/null +++ b/node_modules/joi/lib/types/array.js @@ -0,0 +1,775 @@ +'use strict'; + +const Assert = require('@hapi/hoek/lib/assert'); +const DeepEqual = require('@hapi/hoek/lib/deepEqual'); +const Reach = require('@hapi/hoek/lib/reach'); + +const Any = require('./any'); +const Common = require('../common'); +const Compile = require('../compile'); + + +const internals = {}; + + +module.exports = Any.extend({ + + type: 'array', + + flags: { + + single: { default: false }, + sparse: { default: false } + }, + + terms: { + + items: { init: [], manifest: 'schema' }, + ordered: { init: [], manifest: 'schema' }, + + _exclusions: { init: [] }, + _inclusions: { init: [] }, + _requireds: { init: [] } + }, + + coerce: { + from: 'object', + method(value, { schema, state, prefs }) { + + if (!Array.isArray(value)) { + return; + } + + const sort = schema.$_getRule('sort'); + if (!sort) { + return; + } + + return internals.sort(schema, value, sort.args.options, state, prefs); + } + }, + + validate(value, { schema, error }) { + + if (!Array.isArray(value)) { + if (schema._flags.single) { + const single = [value]; + single[Common.symbols.arraySingle] = true; + return { value: single }; + } + + return { errors: error('array.base') }; + } + + if (!schema.$_getRule('items') && + !schema.$_terms.externals) { + + return; + } + + return { value: value.slice() }; // Clone the array so that we don't modify the original + }, + + rules: { + + has: { + method(schema) { + + schema = this.$_compile(schema, { appendPath: true }); + const obj = this.$_addRule({ name: 'has', args: { schema } }); + obj.$_mutateRegister(schema); + return obj; + }, + validate(value, { state, prefs, error }, { schema: has }) { + + const ancestors = [value, ...state.ancestors]; + for (let i = 0; i < value.length; ++i) { + const localState = state.localize([...state.path, i], ancestors, has); + if (has.$_match(value[i], localState, prefs)) { + return value; + } + } + + const patternLabel = has._flags.label; + if (patternLabel) { + return error('array.hasKnown', { patternLabel }); + } + + return error('array.hasUnknown', null); + }, + multi: true + }, + + items: { + method(...schemas) { + + Common.verifyFlat(schemas, 'items'); + + const obj = this.$_addRule('items'); + + for (let i = 0; i < schemas.length; ++i) { + const type = Common.tryWithPath(() => this.$_compile(schemas[i]), i, { append: true }); + obj.$_terms.items.push(type); + } + + return obj.$_mutateRebuild(); + }, + validate(value, { schema, error, state, prefs, errorsArray }) { + + const requireds = schema.$_terms._requireds.slice(); + const ordereds = schema.$_terms.ordered.slice(); + const inclusions = [...schema.$_terms._inclusions, ...requireds]; + + const wasArray = !value[Common.symbols.arraySingle]; + delete value[Common.symbols.arraySingle]; + + const errors = errorsArray(); + + let il = value.length; + for (let i = 0; i < il; ++i) { + const item = value[i]; + + let errored = false; + let isValid = false; + + const key = wasArray ? i : new Number(i); // eslint-disable-line no-new-wrappers + const path = [...state.path, key]; + + // Sparse + + if (!schema._flags.sparse && + item === undefined) { + + errors.push(error('array.sparse', { key, path, pos: i, value: undefined }, state.localize(path))); + if (prefs.abortEarly) { + return errors; + } + + ordereds.shift(); + continue; + } + + // Exclusions + + const ancestors = [value, ...state.ancestors]; + + for (const exclusion of schema.$_terms._exclusions) { + if (!exclusion.$_match(item, state.localize(path, ancestors, exclusion), prefs, { presence: 'ignore' })) { + continue; + } + + errors.push(error('array.excludes', { pos: i, value: item }, state.localize(path))); + if (prefs.abortEarly) { + return errors; + } + + errored = true; + ordereds.shift(); + break; + } + + if (errored) { + continue; + } + + // Ordered + + if (schema.$_terms.ordered.length) { + if (ordereds.length) { + const ordered = ordereds.shift(); + const res = ordered.$_validate(item, state.localize(path, ancestors, ordered), prefs); + if (!res.errors) { + if (ordered._flags.result === 'strip') { + internals.fastSplice(value, i); + --i; + --il; + } + else if (!schema._flags.sparse && res.value === undefined) { + errors.push(error('array.sparse', { key, path, pos: i, value: undefined }, state.localize(path))); + if (prefs.abortEarly) { + return errors; + } + + continue; + } + else { + value[i] = res.value; + } + } + else { + errors.push(...res.errors); + if (prefs.abortEarly) { + return errors; + } + } + + continue; + } + else if (!schema.$_terms.items.length) { + errors.push(error('array.orderedLength', { pos: i, limit: schema.$_terms.ordered.length })); + if (prefs.abortEarly) { + return errors; + } + + break; // No reason to continue since there are no other rules to validate other than array.orderedLength + } + } + + // Requireds + + const requiredChecks = []; + let jl = requireds.length; + for (let j = 0; j < jl; ++j) { + const localState = state.localize(path, ancestors, requireds[j]); + localState.snapshot(); + + const res = requireds[j].$_validate(item, localState, prefs); + requiredChecks[j] = res; + + if (!res.errors) { + value[i] = res.value; + isValid = true; + internals.fastSplice(requireds, j); + --j; + --jl; + + if (!schema._flags.sparse && + res.value === undefined) { + + errors.push(error('array.sparse', { key, path, pos: i, value: undefined }, state.localize(path))); + if (prefs.abortEarly) { + return errors; + } + } + + break; + } + + localState.restore(); + } + + if (isValid) { + continue; + } + + // Inclusions + + const stripUnknown = prefs.stripUnknown && !!prefs.stripUnknown.arrays || false; + + jl = inclusions.length; + for (const inclusion of inclusions) { + + // Avoid re-running requireds that already didn't match in the previous loop + + let res; + const previousCheck = requireds.indexOf(inclusion); + if (previousCheck !== -1) { + res = requiredChecks[previousCheck]; + } + else { + const localState = state.localize(path, ancestors, inclusion); + localState.snapshot(); + + res = inclusion.$_validate(item, localState, prefs); + if (!res.errors) { + if (inclusion._flags.result === 'strip') { + internals.fastSplice(value, i); + --i; + --il; + } + else if (!schema._flags.sparse && + res.value === undefined) { + + errors.push(error('array.sparse', { key, path, pos: i, value: undefined }, state.localize(path))); + errored = true; + } + else { + value[i] = res.value; + } + + isValid = true; + break; + } + + localState.restore(); + } + + // Return the actual error if only one inclusion defined + + if (jl === 1) { + if (stripUnknown) { + internals.fastSplice(value, i); + --i; + --il; + isValid = true; + break; + } + + errors.push(...res.errors); + if (prefs.abortEarly) { + return errors; + } + + errored = true; + break; + } + } + + if (errored) { + continue; + } + + if (schema.$_terms._inclusions.length && + !isValid) { + + if (stripUnknown) { + internals.fastSplice(value, i); + --i; + --il; + continue; + } + + errors.push(error('array.includes', { pos: i, value: item }, state.localize(path))); + if (prefs.abortEarly) { + return errors; + } + } + } + + if (requireds.length) { + internals.fillMissedErrors(schema, errors, requireds, value, state, prefs); + } + + if (ordereds.length) { + internals.fillOrderedErrors(schema, errors, ordereds, value, state, prefs); + } + + return errors.length ? errors : value; + }, + + priority: true, + manifest: false + }, + + length: { + method(limit) { + + return this.$_addRule({ name: 'length', args: { limit }, operator: '=' }); + }, + validate(value, helpers, { limit }, { name, operator, args }) { + + if (Common.compare(value.length, limit, operator)) { + return value; + } + + return helpers.error('array.' + name, { limit: args.limit, value }); + }, + args: [ + { + name: 'limit', + ref: true, + assert: Common.limit, + message: 'must be a positive integer' + } + ] + }, + + max: { + method(limit) { + + return this.$_addRule({ name: 'max', method: 'length', args: { limit }, operator: '<=' }); + } + }, + + min: { + method(limit) { + + return this.$_addRule({ name: 'min', method: 'length', args: { limit }, operator: '>=' }); + } + }, + + ordered: { + method(...schemas) { + + Common.verifyFlat(schemas, 'ordered'); + + const obj = this.$_addRule('items'); + + for (let i = 0; i < schemas.length; ++i) { + const type = Common.tryWithPath(() => this.$_compile(schemas[i]), i, { append: true }); + internals.validateSingle(type, obj); + + obj.$_mutateRegister(type); + obj.$_terms.ordered.push(type); + } + + return obj.$_mutateRebuild(); + } + }, + + single: { + method(enabled) { + + const value = enabled === undefined ? true : !!enabled; + Assert(!value || !this._flags._arrayItems, 'Cannot specify single rule when array has array items'); + + return this.$_setFlag('single', value); + } + }, + + sort: { + method(options = {}) { + + Common.assertOptions(options, ['by', 'order']); + + const settings = { + order: options.order || 'ascending' + }; + + if (options.by) { + settings.by = Compile.ref(options.by, { ancestor: 0 }); + Assert(!settings.by.ancestor, 'Cannot sort by ancestor'); + } + + return this.$_addRule({ name: 'sort', args: { options: settings } }); + }, + validate(value, { error, state, prefs, schema }, { options }) { + + const { value: sorted, errors } = internals.sort(schema, value, options, state, prefs); + if (errors) { + return errors; + } + + for (let i = 0; i < value.length; ++i) { + if (value[i] !== sorted[i]) { + return error('array.sort', { order: options.order, by: options.by ? options.by.key : 'value' }); + } + } + + return value; + }, + convert: true + }, + + sparse: { + method(enabled) { + + const value = enabled === undefined ? true : !!enabled; + + if (this._flags.sparse === value) { + return this; + } + + const obj = value ? this.clone() : this.$_addRule('items'); + return obj.$_setFlag('sparse', value, { clone: false }); + } + }, + + unique: { + method(comparator, options = {}) { + + Assert(!comparator || typeof comparator === 'function' || typeof comparator === 'string', 'comparator must be a function or a string'); + Common.assertOptions(options, ['ignoreUndefined', 'separator']); + + const rule = { name: 'unique', args: { options, comparator } }; + + if (comparator) { + if (typeof comparator === 'string') { + const separator = Common.default(options.separator, '.'); + rule.path = separator ? comparator.split(separator) : [comparator]; + } + else { + rule.comparator = comparator; + } + } + + return this.$_addRule(rule); + }, + validate(value, { state, error, schema }, { comparator: raw, options }, { comparator, path }) { + + const found = { + string: Object.create(null), + number: Object.create(null), + undefined: Object.create(null), + boolean: Object.create(null), + object: new Map(), + function: new Map(), + custom: new Map() + }; + + const compare = comparator || DeepEqual; + const ignoreUndefined = options.ignoreUndefined; + + for (let i = 0; i < value.length; ++i) { + const item = path ? Reach(value[i], path) : value[i]; + const records = comparator ? found.custom : found[typeof item]; + Assert(records, 'Failed to find unique map container for type', typeof item); + + if (records instanceof Map) { + const entries = records.entries(); + let current; + while (!(current = entries.next()).done) { + if (compare(current.value[0], item)) { + const localState = state.localize([...state.path, i], [value, ...state.ancestors]); + const context = { + pos: i, + value: value[i], + dupePos: current.value[1], + dupeValue: value[current.value[1]] + }; + + if (path) { + context.path = raw; + } + + return error('array.unique', context, localState); + } + } + + records.set(item, i); + } + else { + if ((!ignoreUndefined || item !== undefined) && + records[item] !== undefined) { + + const context = { + pos: i, + value: value[i], + dupePos: records[item], + dupeValue: value[records[item]] + }; + + if (path) { + context.path = raw; + } + + const localState = state.localize([...state.path, i], [value, ...state.ancestors]); + return error('array.unique', context, localState); + } + + records[item] = i; + } + } + + return value; + }, + args: ['comparator', 'options'], + multi: true + } + }, + + cast: { + set: { + from: Array.isArray, + to(value, helpers) { + + return new Set(value); + } + } + }, + + rebuild(schema) { + + schema.$_terms._inclusions = []; + schema.$_terms._exclusions = []; + schema.$_terms._requireds = []; + + for (const type of schema.$_terms.items) { + internals.validateSingle(type, schema); + + if (type._flags.presence === 'required') { + schema.$_terms._requireds.push(type); + } + else if (type._flags.presence === 'forbidden') { + schema.$_terms._exclusions.push(type); + } + else { + schema.$_terms._inclusions.push(type); + } + } + + for (const type of schema.$_terms.ordered) { + internals.validateSingle(type, schema); + } + }, + + manifest: { + + build(obj, desc) { + + if (desc.items) { + obj = obj.items(...desc.items); + } + + if (desc.ordered) { + obj = obj.ordered(...desc.ordered); + } + + return obj; + } + }, + + messages: { + 'array.base': '{{#label}} must be an array', + 'array.excludes': '{{#label}} contains an excluded value', + 'array.hasKnown': '{{#label}} does not contain at least one required match for type {:#patternLabel}', + 'array.hasUnknown': '{{#label}} does not contain at least one required match', + 'array.includes': '{{#label}} does not match any of the allowed types', + 'array.includesRequiredBoth': '{{#label}} does not contain {{#knownMisses}} and {{#unknownMisses}} other required value(s)', + 'array.includesRequiredKnowns': '{{#label}} does not contain {{#knownMisses}}', + 'array.includesRequiredUnknowns': '{{#label}} does not contain {{#unknownMisses}} required value(s)', + 'array.length': '{{#label}} must contain {{#limit}} items', + 'array.max': '{{#label}} must contain less than or equal to {{#limit}} items', + 'array.min': '{{#label}} must contain at least {{#limit}} items', + 'array.orderedLength': '{{#label}} must contain at most {{#limit}} items', + 'array.sort': '{{#label}} must be sorted in {#order} order by {{#by}}', + 'array.sort.mismatching': '{{#label}} cannot be sorted due to mismatching types', + 'array.sort.unsupported': '{{#label}} cannot be sorted due to unsupported type {#type}', + 'array.sparse': '{{#label}} must not be a sparse array item', + 'array.unique': '{{#label}} contains a duplicate value' + } +}); + + +// Helpers + +internals.fillMissedErrors = function (schema, errors, requireds, value, state, prefs) { + + const knownMisses = []; + let unknownMisses = 0; + for (const required of requireds) { + const label = required._flags.label; + if (label) { + knownMisses.push(label); + } + else { + ++unknownMisses; + } + } + + if (knownMisses.length) { + if (unknownMisses) { + errors.push(schema.$_createError('array.includesRequiredBoth', value, { knownMisses, unknownMisses }, state, prefs)); + } + else { + errors.push(schema.$_createError('array.includesRequiredKnowns', value, { knownMisses }, state, prefs)); + } + } + else { + errors.push(schema.$_createError('array.includesRequiredUnknowns', value, { unknownMisses }, state, prefs)); + } +}; + + +internals.fillOrderedErrors = function (schema, errors, ordereds, value, state, prefs) { + + const requiredOrdereds = []; + + for (const ordered of ordereds) { + if (ordered._flags.presence === 'required') { + requiredOrdereds.push(ordered); + } + } + + if (requiredOrdereds.length) { + internals.fillMissedErrors(schema, errors, requiredOrdereds, value, state, prefs); + } +}; + + +internals.fastSplice = function (arr, i) { + + let pos = i; + while (pos < arr.length) { + arr[pos++] = arr[pos]; + } + + --arr.length; +}; + + +internals.validateSingle = function (type, obj) { + + if (type.type === 'array' || + type._flags._arrayItems) { + + Assert(!obj._flags.single, 'Cannot specify array item with single rule enabled'); + obj.$_setFlag('_arrayItems', true, { clone: false }); + } +}; + + +internals.sort = function (schema, value, settings, state, prefs) { + + const order = settings.order === 'ascending' ? 1 : -1; + const aFirst = -1 * order; + const bFirst = order; + + const sort = (a, b) => { + + let compare = internals.compare(a, b, aFirst, bFirst); + if (compare !== null) { + return compare; + } + + if (settings.by) { + a = settings.by.resolve(a, state, prefs); + b = settings.by.resolve(b, state, prefs); + } + + compare = internals.compare(a, b, aFirst, bFirst); + if (compare !== null) { + return compare; + } + + const type = typeof a; + if (type !== typeof b) { + throw schema.$_createError('array.sort.mismatching', value, null, state, prefs); + } + + if (type !== 'number' && + type !== 'string') { + + throw schema.$_createError('array.sort.unsupported', value, { type }, state, prefs); + } + + if (type === 'number') { + return (a - b) * order; + } + + return a < b ? aFirst : bFirst; + }; + + try { + return { value: value.slice().sort(sort) }; + } + catch (err) { + return { errors: err }; + } +}; + + +internals.compare = function (a, b, aFirst, bFirst) { + + if (a === b) { + return 0; + } + + if (a === undefined) { + return 1; // Always last regardless of sort order + } + + if (b === undefined) { + return -1; // Always last regardless of sort order + } + + if (a === null) { + return bFirst; + } + + if (b === null) { + return aFirst; + } + + return null; +}; diff --git a/node_modules/joi/lib/types/binary.js b/node_modules/joi/lib/types/binary.js new file mode 100755 index 0000000..9147166 --- /dev/null +++ b/node_modules/joi/lib/types/binary.js @@ -0,0 +1,98 @@ +'use strict'; + +const Assert = require('@hapi/hoek/lib/assert'); + +const Any = require('./any'); +const Common = require('../common'); + + +const internals = {}; + + +module.exports = Any.extend({ + + type: 'binary', + + coerce: { + from: 'string', + method(value, { schema }) { + + try { + return { value: Buffer.from(value, schema._flags.encoding) }; + } + catch (ignoreErr) { } + } + }, + + validate(value, { error }) { + + if (!Buffer.isBuffer(value)) { + return { value, errors: error('binary.base') }; + } + }, + + rules: { + encoding: { + method(encoding) { + + Assert(Buffer.isEncoding(encoding), 'Invalid encoding:', encoding); + + return this.$_setFlag('encoding', encoding); + } + }, + + length: { + method(limit) { + + return this.$_addRule({ name: 'length', method: 'length', args: { limit }, operator: '=' }); + }, + validate(value, helpers, { limit }, { name, operator, args }) { + + if (Common.compare(value.length, limit, operator)) { + return value; + } + + return helpers.error('binary.' + name, { limit: args.limit, value }); + }, + args: [ + { + name: 'limit', + ref: true, + assert: Common.limit, + message: 'must be a positive integer' + } + ] + }, + + max: { + method(limit) { + + return this.$_addRule({ name: 'max', method: 'length', args: { limit }, operator: '<=' }); + } + }, + + min: { + method(limit) { + + return this.$_addRule({ name: 'min', method: 'length', args: { limit }, operator: '>=' }); + } + } + }, + + cast: { + string: { + from: (value) => Buffer.isBuffer(value), + to(value, helpers) { + + return value.toString(); + } + } + }, + + messages: { + 'binary.base': '{{#label}} must be a buffer or a string', + 'binary.length': '{{#label}} must be {{#limit}} bytes', + 'binary.max': '{{#label}} must be less than or equal to {{#limit}} bytes', + 'binary.min': '{{#label}} must be at least {{#limit}} bytes' + } +}); diff --git a/node_modules/joi/lib/types/boolean.js b/node_modules/joi/lib/types/boolean.js new file mode 100755 index 0000000..6865866 --- /dev/null +++ b/node_modules/joi/lib/types/boolean.js @@ -0,0 +1,150 @@ +'use strict'; + +const Assert = require('@hapi/hoek/lib/assert'); + +const Any = require('./any'); +const Common = require('../common'); +const Values = require('../values'); + + +const internals = {}; + + +internals.isBool = function (value) { + + return typeof value === 'boolean'; +}; + + +module.exports = Any.extend({ + + type: 'boolean', + + flags: { + + sensitive: { default: false } + }, + + terms: { + + falsy: { + init: null, + manifest: 'values' + }, + + truthy: { + init: null, + manifest: 'values' + } + }, + + coerce(value, { schema }) { + + if (typeof value === 'boolean') { + return; + } + + if (typeof value === 'string') { + const normalized = schema._flags.sensitive ? value : value.toLowerCase(); + value = normalized === 'true' ? true : (normalized === 'false' ? false : value); + } + + if (typeof value !== 'boolean') { + value = schema.$_terms.truthy && schema.$_terms.truthy.has(value, null, null, !schema._flags.sensitive) || + (schema.$_terms.falsy && schema.$_terms.falsy.has(value, null, null, !schema._flags.sensitive) ? false : value); + } + + return { value }; + }, + + validate(value, { error }) { + + if (typeof value !== 'boolean') { + return { value, errors: error('boolean.base') }; + } + }, + + rules: { + truthy: { + method(...values) { + + Common.verifyFlat(values, 'truthy'); + + const obj = this.clone(); + obj.$_terms.truthy = obj.$_terms.truthy || new Values(); + + for (let i = 0; i < values.length; ++i) { + const value = values[i]; + + Assert(value !== undefined, 'Cannot call truthy with undefined'); + obj.$_terms.truthy.add(value); + } + + return obj; + } + }, + + falsy: { + method(...values) { + + Common.verifyFlat(values, 'falsy'); + + const obj = this.clone(); + obj.$_terms.falsy = obj.$_terms.falsy || new Values(); + + for (let i = 0; i < values.length; ++i) { + const value = values[i]; + + Assert(value !== undefined, 'Cannot call falsy with undefined'); + obj.$_terms.falsy.add(value); + } + + return obj; + } + }, + + sensitive: { + method(enabled = true) { + + return this.$_setFlag('sensitive', enabled); + } + } + }, + + cast: { + number: { + from: internals.isBool, + to(value, helpers) { + + return value ? 1 : 0; + } + }, + string: { + from: internals.isBool, + to(value, helpers) { + + return value ? 'true' : 'false'; + } + } + }, + + manifest: { + + build(obj, desc) { + + if (desc.truthy) { + obj = obj.truthy(...desc.truthy); + } + + if (desc.falsy) { + obj = obj.falsy(...desc.falsy); + } + + return obj; + } + }, + + messages: { + 'boolean.base': '{{#label}} must be a boolean' + } +}); diff --git a/node_modules/joi/lib/types/date.js b/node_modules/joi/lib/types/date.js new file mode 100755 index 0000000..b8206c6 --- /dev/null +++ b/node_modules/joi/lib/types/date.js @@ -0,0 +1,233 @@ +'use strict'; + +const Assert = require('@hapi/hoek/lib/assert'); + +const Any = require('./any'); +const Common = require('../common'); +const Template = require('../template'); + + +const internals = {}; + + +internals.isDate = function (value) { + + return value instanceof Date; +}; + + +module.exports = Any.extend({ + + type: 'date', + + coerce: { + from: ['number', 'string'], + method(value, { schema }) { + + return { value: internals.parse(value, schema._flags.format) || value }; + } + }, + + validate(value, { schema, error, prefs }) { + + if (value instanceof Date && + !isNaN(value.getTime())) { + + return; + } + + const format = schema._flags.format; + + if (!prefs.convert || + !format || + typeof value !== 'string') { + + return { value, errors: error('date.base') }; + } + + return { value, errors: error('date.format', { format }) }; + }, + + rules: { + + compare: { + method: false, + validate(value, helpers, { date }, { name, operator, args }) { + + const to = date === 'now' ? Date.now() : date.getTime(); + if (Common.compare(value.getTime(), to, operator)) { + return value; + } + + return helpers.error('date.' + name, { limit: args.date, value }); + }, + args: [ + { + name: 'date', + ref: true, + normalize: (date) => { + + return date === 'now' ? date : internals.parse(date); + }, + assert: (date) => date !== null, + message: 'must have a valid date format' + } + ] + }, + + format: { + method(format) { + + Assert(['iso', 'javascript', 'unix'].includes(format), 'Unknown date format', format); + + return this.$_setFlag('format', format); + } + }, + + greater: { + method(date) { + + return this.$_addRule({ name: 'greater', method: 'compare', args: { date }, operator: '>' }); + } + }, + + iso: { + method() { + + return this.format('iso'); + } + }, + + less: { + method(date) { + + return this.$_addRule({ name: 'less', method: 'compare', args: { date }, operator: '<' }); + } + }, + + max: { + method(date) { + + return this.$_addRule({ name: 'max', method: 'compare', args: { date }, operator: '<=' }); + } + }, + + min: { + method(date) { + + return this.$_addRule({ name: 'min', method: 'compare', args: { date }, operator: '>=' }); + } + }, + + timestamp: { + method(type = 'javascript') { + + Assert(['javascript', 'unix'].includes(type), '"type" must be one of "javascript, unix"'); + + return this.format(type); + } + } + }, + + cast: { + number: { + from: internals.isDate, + to(value, helpers) { + + return value.getTime(); + } + }, + string: { + from: internals.isDate, + to(value, { prefs }) { + + return Template.date(value, prefs); + } + } + }, + + messages: { + 'date.base': '{{#label}} must be a valid date', + 'date.format': '{{#label}} must be in {msg("date.format." + #format) || #format} format', + 'date.greater': '{{#label}} must be greater than {{:#limit}}', + 'date.less': '{{#label}} must be less than {{:#limit}}', + 'date.max': '{{#label}} must be less than or equal to {{:#limit}}', + 'date.min': '{{#label}} must be greater than or equal to {{:#limit}}', + + // Messages used in date.format + + 'date.format.iso': 'ISO 8601 date', + 'date.format.javascript': 'timestamp or number of milliseconds', + 'date.format.unix': 'timestamp or number of seconds' + } +}); + + +// Helpers + +internals.parse = function (value, format) { + + if (value instanceof Date) { + return value; + } + + if (typeof value !== 'string' && + (isNaN(value) || !isFinite(value))) { + + return null; + } + + if (/^\s*$/.test(value)) { + return null; + } + + // ISO + + if (format === 'iso') { + if (!Common.isIsoDate(value)) { + return null; + } + + return internals.date(value.toString()); + } + + // Normalize number string + + const original = value; + if (typeof value === 'string' && + /^[+-]?\d+(\.\d+)?$/.test(value)) { + + value = parseFloat(value); + } + + // Timestamp + + if (format) { + if (format === 'javascript') { + return internals.date(1 * value); // Casting to number + } + + if (format === 'unix') { + return internals.date(1000 * value); + } + + if (typeof original === 'string') { + return null; + } + } + + // Plain + + return internals.date(value); +}; + + +internals.date = function (value) { + + const date = new Date(value); + if (!isNaN(date.getTime())) { + return date; + } + + return null; +}; diff --git a/node_modules/joi/lib/types/function.js b/node_modules/joi/lib/types/function.js new file mode 100755 index 0000000..eb8792e --- /dev/null +++ b/node_modules/joi/lib/types/function.js @@ -0,0 +1,93 @@ +'use strict'; + +const Assert = require('@hapi/hoek/lib/assert'); + +const Keys = require('./keys'); + + +const internals = {}; + + +module.exports = Keys.extend({ + + type: 'function', + + properties: { + typeof: 'function' + }, + + rules: { + arity: { + method(n) { + + Assert(Number.isSafeInteger(n) && n >= 0, 'n must be a positive integer'); + + return this.$_addRule({ name: 'arity', args: { n } }); + }, + validate(value, helpers, { n }) { + + if (value.length === n) { + return value; + } + + return helpers.error('function.arity', { n }); + } + }, + + class: { + method() { + + return this.$_addRule('class'); + }, + validate(value, helpers) { + + if ((/^\s*class\s/).test(value.toString())) { + return value; + } + + return helpers.error('function.class', { value }); + } + }, + + minArity: { + method(n) { + + Assert(Number.isSafeInteger(n) && n > 0, 'n must be a strict positive integer'); + + return this.$_addRule({ name: 'minArity', args: { n } }); + }, + validate(value, helpers, { n }) { + + if (value.length >= n) { + return value; + } + + return helpers.error('function.minArity', { n }); + } + }, + + maxArity: { + method(n) { + + Assert(Number.isSafeInteger(n) && n >= 0, 'n must be a positive integer'); + + return this.$_addRule({ name: 'maxArity', args: { n } }); + }, + validate(value, helpers, { n }) { + + if (value.length <= n) { + return value; + } + + return helpers.error('function.maxArity', { n }); + } + } + }, + + messages: { + 'function.arity': '{{#label}} must have an arity of {{#n}}', + 'function.class': '{{#label}} must be a class', + 'function.maxArity': '{{#label}} must have an arity lesser or equal to {{#n}}', + 'function.minArity': '{{#label}} must have an arity greater or equal to {{#n}}' + } +}); diff --git a/node_modules/joi/lib/types/keys.js b/node_modules/joi/lib/types/keys.js new file mode 100755 index 0000000..678d660 --- /dev/null +++ b/node_modules/joi/lib/types/keys.js @@ -0,0 +1,1043 @@ +'use strict'; + +const ApplyToDefaults = require('@hapi/hoek/lib/applyToDefaults'); +const Assert = require('@hapi/hoek/lib/assert'); +const Clone = require('@hapi/hoek/lib/clone'); +const Topo = require('@hapi/topo'); + +const Any = require('./any'); +const Common = require('../common'); +const Compile = require('../compile'); +const Errors = require('../errors'); +const Ref = require('../ref'); +const Template = require('../template'); + + +const internals = { + renameDefaults: { + alias: false, // Keep old value in place + multiple: false, // Allow renaming multiple keys into the same target + override: false // Overrides an existing key + } +}; + + +module.exports = Any.extend({ + + type: '_keys', + + properties: { + + typeof: 'object' + }, + + flags: { + + unknown: { default: false } + }, + + terms: { + + dependencies: { init: null }, + keys: { init: null, manifest: { mapped: { from: 'schema', to: 'key' } } }, + patterns: { init: null }, + renames: { init: null } + }, + + args(schema, keys) { + + return schema.keys(keys); + }, + + validate(value, { schema, error, state, prefs }) { + + if (!value || + typeof value !== schema.$_property('typeof') || + Array.isArray(value)) { + + return { value, errors: error('object.base', { type: schema.$_property('typeof') }) }; + } + + // Skip if there are no other rules to test + + if (!schema.$_terms.renames && + !schema.$_terms.dependencies && + !schema.$_terms.keys && // null allows any keys + !schema.$_terms.patterns && + !schema.$_terms.externals) { + + return; + } + + // Shallow clone value + + value = internals.clone(value, prefs); + const errors = []; + + // Rename keys + + if (schema.$_terms.renames && + !internals.rename(schema, value, state, prefs, errors)) { + + return { value, errors }; + } + + // Anything allowed + + if (!schema.$_terms.keys && // null allows any keys + !schema.$_terms.patterns && + !schema.$_terms.dependencies) { + + return { value, errors }; + } + + // Defined keys + + const unprocessed = new Set(Object.keys(value)); + + if (schema.$_terms.keys) { + const ancestors = [value, ...state.ancestors]; + + for (const child of schema.$_terms.keys) { + const key = child.key; + const item = value[key]; + + unprocessed.delete(key); + + const localState = state.localize([...state.path, key], ancestors, child); + const result = child.schema.$_validate(item, localState, prefs); + + if (result.errors) { + if (prefs.abortEarly) { + return { value, errors: result.errors }; + } + + errors.push(...result.errors); + } + else if (child.schema._flags.result === 'strip' || + result.value === undefined && item !== undefined) { + + delete value[key]; + } + else if (result.value !== undefined) { + value[key] = result.value; + } + } + } + + // Unknown keys + + if (unprocessed.size || + schema._flags._hasPatternMatch) { + + const early = internals.unknown(schema, value, unprocessed, errors, state, prefs); + if (early) { + return early; + } + } + + // Validate dependencies + + if (schema.$_terms.dependencies) { + for (const dep of schema.$_terms.dependencies) { + if (dep.key && + dep.key.resolve(value, state, prefs, null, { shadow: false }) === undefined) { + + continue; + } + + const failed = internals.dependencies[dep.rel](schema, dep, value, state, prefs); + if (failed) { + const report = schema.$_createError(failed.code, value, failed.context, state, prefs); + if (prefs.abortEarly) { + return { value, errors: report }; + } + + errors.push(report); + } + } + } + + return { value, errors }; + }, + + rules: { + + and: { + method(...peers /*, [options] */) { + + Common.verifyFlat(peers, 'and'); + + return internals.dependency(this, 'and', null, peers); + } + }, + + append: { + method(schema) { + + if (schema === null || + schema === undefined || + Object.keys(schema).length === 0) { + + return this; + } + + return this.keys(schema); + } + }, + + assert: { + method(subject, schema, message) { + + if (!Template.isTemplate(subject)) { + subject = Compile.ref(subject); + } + + Assert(message === undefined || typeof message === 'string', 'Message must be a string'); + + schema = this.$_compile(schema, { appendPath: true }); + + const obj = this.$_addRule({ name: 'assert', args: { subject, schema, message } }); + obj.$_mutateRegister(subject); + obj.$_mutateRegister(schema); + return obj; + }, + validate(value, { error, prefs, state }, { subject, schema, message }) { + + const about = subject.resolve(value, state, prefs); + const path = Ref.isRef(subject) ? subject.absolute(state) : []; + if (schema.$_match(about, state.localize(path, [value, ...state.ancestors], schema), prefs)) { + return value; + } + + return error('object.assert', { subject, message }); + }, + args: ['subject', 'schema', 'message'], + multi: true + }, + + instance: { + method(constructor, name) { + + Assert(typeof constructor === 'function', 'constructor must be a function'); + + name = name || constructor.name; + + return this.$_addRule({ name: 'instance', args: { constructor, name } }); + }, + validate(value, helpers, { constructor, name }) { + + if (value instanceof constructor) { + return value; + } + + return helpers.error('object.instance', { type: name, value }); + }, + args: ['constructor', 'name'] + }, + + keys: { + method(schema) { + + Assert(schema === undefined || typeof schema === 'object', 'Object schema must be a valid object'); + Assert(!Common.isSchema(schema), 'Object schema cannot be a joi schema'); + + const obj = this.clone(); + + if (!schema) { // Allow all + obj.$_terms.keys = null; + } + else if (!Object.keys(schema).length) { // Allow none + obj.$_terms.keys = new internals.Keys(); + } + else { + obj.$_terms.keys = obj.$_terms.keys ? obj.$_terms.keys.filter((child) => !schema.hasOwnProperty(child.key)) : new internals.Keys(); + for (const key in schema) { + Common.tryWithPath(() => obj.$_terms.keys.push({ key, schema: this.$_compile(schema[key]) }), key); + } + } + + return obj.$_mutateRebuild(); + } + }, + + length: { + method(limit) { + + return this.$_addRule({ name: 'length', args: { limit }, operator: '=' }); + }, + validate(value, helpers, { limit }, { name, operator, args }) { + + if (Common.compare(Object.keys(value).length, limit, operator)) { + return value; + } + + return helpers.error('object.' + name, { limit: args.limit, value }); + }, + args: [ + { + name: 'limit', + ref: true, + assert: Common.limit, + message: 'must be a positive integer' + } + ] + }, + + max: { + method(limit) { + + return this.$_addRule({ name: 'max', method: 'length', args: { limit }, operator: '<=' }); + } + }, + + min: { + method(limit) { + + return this.$_addRule({ name: 'min', method: 'length', args: { limit }, operator: '>=' }); + } + }, + + nand: { + method(...peers /*, [options] */) { + + Common.verifyFlat(peers, 'nand'); + + return internals.dependency(this, 'nand', null, peers); + } + }, + + or: { + method(...peers /*, [options] */) { + + Common.verifyFlat(peers, 'or'); + + return internals.dependency(this, 'or', null, peers); + } + }, + + oxor: { + method(...peers /*, [options] */) { + + return internals.dependency(this, 'oxor', null, peers); + } + }, + + pattern: { + method(pattern, schema, options = {}) { + + const isRegExp = pattern instanceof RegExp; + if (!isRegExp) { + pattern = this.$_compile(pattern, { appendPath: true }); + } + + Assert(schema !== undefined, 'Invalid rule'); + Common.assertOptions(options, ['fallthrough', 'matches']); + + if (isRegExp) { + Assert(!pattern.flags.includes('g') && !pattern.flags.includes('y'), 'pattern should not use global or sticky mode'); + } + + schema = this.$_compile(schema, { appendPath: true }); + + const obj = this.clone(); + obj.$_terms.patterns = obj.$_terms.patterns || []; + const config = { [isRegExp ? 'regex' : 'schema']: pattern, rule: schema }; + if (options.matches) { + config.matches = this.$_compile(options.matches); + if (config.matches.type !== 'array') { + config.matches = config.matches.$_root.array().items(config.matches); + } + + obj.$_mutateRegister(config.matches); + obj.$_setFlag('_hasPatternMatch', true, { clone: false }); + } + + if (options.fallthrough) { + config.fallthrough = true; + } + + obj.$_terms.patterns.push(config); + obj.$_mutateRegister(schema); + return obj; + } + }, + + ref: { + method() { + + return this.$_addRule('ref'); + }, + validate(value, helpers) { + + if (Ref.isRef(value)) { + return value; + } + + return helpers.error('object.refType', { value }); + } + }, + + regex: { + method() { + + return this.$_addRule('regex'); + }, + validate(value, helpers) { + + if (value instanceof RegExp) { + return value; + } + + return helpers.error('object.regex', { value }); + } + }, + + rename: { + method(from, to, options = {}) { + + Assert(typeof from === 'string' || from instanceof RegExp, 'Rename missing the from argument'); + Assert(typeof to === 'string' || to instanceof Template, 'Invalid rename to argument'); + Assert(to !== from, 'Cannot rename key to same name:', from); + + Common.assertOptions(options, ['alias', 'ignoreUndefined', 'override', 'multiple']); + + const obj = this.clone(); + + obj.$_terms.renames = obj.$_terms.renames || []; + for (const rename of obj.$_terms.renames) { + Assert(rename.from !== from, 'Cannot rename the same key multiple times'); + } + + if (to instanceof Template) { + obj.$_mutateRegister(to); + } + + obj.$_terms.renames.push({ + from, + to, + options: ApplyToDefaults(internals.renameDefaults, options) + }); + + return obj; + } + }, + + schema: { + method(type = 'any') { + + return this.$_addRule({ name: 'schema', args: { type } }); + }, + validate(value, helpers, { type }) { + + if (Common.isSchema(value) && + (type === 'any' || value.type === type)) { + + return value; + } + + return helpers.error('object.schema', { type }); + } + }, + + unknown: { + method(allow) { + + return this.$_setFlag('unknown', allow !== false); + } + }, + + with: { + method(key, peers, options = {}) { + + return internals.dependency(this, 'with', key, peers, options); + } + }, + + without: { + method(key, peers, options = {}) { + + return internals.dependency(this, 'without', key, peers, options); + } + }, + + xor: { + method(...peers /*, [options] */) { + + Common.verifyFlat(peers, 'xor'); + + return internals.dependency(this, 'xor', null, peers); + } + } + }, + + overrides: { + + default(value, options) { + + if (value === undefined) { + value = Common.symbols.deepDefault; + } + + return this.$_parent('default', value, options); + } + }, + + rebuild(schema) { + + if (schema.$_terms.keys) { + const topo = new Topo.Sorter(); + for (const child of schema.$_terms.keys) { + Common.tryWithPath(() => topo.add(child, { after: child.schema.$_rootReferences(), group: child.key }), child.key); + } + + schema.$_terms.keys = new internals.Keys(...topo.nodes); + } + }, + + manifest: { + + build(obj, desc) { + + if (desc.keys) { + obj = obj.keys(desc.keys); + } + + if (desc.dependencies) { + for (const { rel, key = null, peers, options } of desc.dependencies) { + obj = internals.dependency(obj, rel, key, peers, options); + } + } + + if (desc.patterns) { + for (const { regex, schema, rule, fallthrough, matches } of desc.patterns) { + obj = obj.pattern(regex || schema, rule, { fallthrough, matches }); + } + } + + if (desc.renames) { + for (const { from, to, options } of desc.renames) { + obj = obj.rename(from, to, options); + } + } + + return obj; + } + }, + + messages: { + 'object.and': '{{#label}} contains {{#presentWithLabels}} without its required peers {{#missingWithLabels}}', + 'object.assert': '{{#label}} is invalid because {if(#subject.key, `"` + #subject.key + `" failed to ` + (#message || "pass the assertion test"), #message || "the assertion failed")}', + 'object.base': '{{#label}} must be of type {{#type}}', + 'object.instance': '{{#label}} must be an instance of {{:#type}}', + 'object.length': '{{#label}} must have {{#limit}} key{if(#limit == 1, "", "s")}', + 'object.max': '{{#label}} must have less than or equal to {{#limit}} key{if(#limit == 1, "", "s")}', + 'object.min': '{{#label}} must have at least {{#limit}} key{if(#limit == 1, "", "s")}', + 'object.missing': '{{#label}} must contain at least one of {{#peersWithLabels}}', + 'object.nand': '{{:#mainWithLabel}} must not exist simultaneously with {{#peersWithLabels}}', + 'object.oxor': '{{#label}} contains a conflict between optional exclusive peers {{#peersWithLabels}}', + 'object.pattern.match': '{{#label}} keys failed to match pattern requirements', + 'object.refType': '{{#label}} must be a Joi reference', + 'object.regex': '{{#label}} must be a RegExp object', + 'object.rename.multiple': '{{#label}} cannot rename {{:#from}} because multiple renames are disabled and another key was already renamed to {{:#to}}', + 'object.rename.override': '{{#label}} cannot rename {{:#from}} because override is disabled and target {{:#to}} exists', + 'object.schema': '{{#label}} must be a Joi schema of {{#type}} type', + 'object.unknown': '{{#label}} is not allowed', + 'object.with': '{{:#mainWithLabel}} missing required peer {{:#peerWithLabel}}', + 'object.without': '{{:#mainWithLabel}} conflict with forbidden peer {{:#peerWithLabel}}', + 'object.xor': '{{#label}} contains a conflict between exclusive peers {{#peersWithLabels}}' + } +}); + + +// Helpers + +internals.clone = function (value, prefs) { + + // Object + + if (typeof value === 'object') { + if (prefs.nonEnumerables) { + return Clone(value, { shallow: true }); + } + + const clone = Object.create(Object.getPrototypeOf(value)); + Object.assign(clone, value); + return clone; + } + + // Function + + const clone = function (...args) { + + return value.apply(this, args); + }; + + clone.prototype = Clone(value.prototype); + Object.defineProperty(clone, 'name', { value: value.name, writable: false }); + Object.defineProperty(clone, 'length', { value: value.length, writable: false }); + Object.assign(clone, value); + return clone; +}; + + +internals.dependency = function (schema, rel, key, peers, options) { + + Assert(key === null || typeof key === 'string', rel, 'key must be a strings'); + + // Extract options from peers array + + if (!options) { + options = peers.length > 1 && typeof peers[peers.length - 1] === 'object' ? peers.pop() : {}; + } + + Common.assertOptions(options, ['separator']); + + peers = [].concat(peers); + + // Cast peer paths + + const separator = Common.default(options.separator, '.'); + const paths = []; + for (const peer of peers) { + Assert(typeof peer === 'string', rel, 'peers must be a string or a reference'); + paths.push(Compile.ref(peer, { separator, ancestor: 0, prefix: false })); + } + + // Cast key + + if (key !== null) { + key = Compile.ref(key, { separator, ancestor: 0, prefix: false }); + } + + // Add rule + + const obj = schema.clone(); + obj.$_terms.dependencies = obj.$_terms.dependencies || []; + obj.$_terms.dependencies.push(new internals.Dependency(rel, key, paths, peers)); + return obj; +}; + + +internals.dependencies = { + + and(schema, dep, value, state, prefs) { + + const missing = []; + const present = []; + const count = dep.peers.length; + for (const peer of dep.peers) { + if (peer.resolve(value, state, prefs, null, { shadow: false }) === undefined) { + missing.push(peer.key); + } + else { + present.push(peer.key); + } + } + + if (missing.length !== count && + present.length !== count) { + + return { + code: 'object.and', + context: { + present, + presentWithLabels: internals.keysToLabels(schema, present), + missing, + missingWithLabels: internals.keysToLabels(schema, missing) + } + }; + } + }, + + nand(schema, dep, value, state, prefs) { + + const present = []; + for (const peer of dep.peers) { + if (peer.resolve(value, state, prefs, null, { shadow: false }) !== undefined) { + present.push(peer.key); + } + } + + if (present.length !== dep.peers.length) { + return; + } + + const main = dep.paths[0]; + const values = dep.paths.slice(1); + return { + code: 'object.nand', + context: { + main, + mainWithLabel: internals.keysToLabels(schema, main), + peers: values, + peersWithLabels: internals.keysToLabels(schema, values) + } + }; + }, + + or(schema, dep, value, state, prefs) { + + for (const peer of dep.peers) { + if (peer.resolve(value, state, prefs, null, { shadow: false }) !== undefined) { + return; + } + } + + return { + code: 'object.missing', + context: { + peers: dep.paths, + peersWithLabels: internals.keysToLabels(schema, dep.paths) + } + }; + }, + + oxor(schema, dep, value, state, prefs) { + + const present = []; + for (const peer of dep.peers) { + if (peer.resolve(value, state, prefs, null, { shadow: false }) !== undefined) { + present.push(peer.key); + } + } + + if (!present.length || + present.length === 1) { + + return; + } + + const context = { peers: dep.paths, peersWithLabels: internals.keysToLabels(schema, dep.paths) }; + context.present = present; + context.presentWithLabels = internals.keysToLabels(schema, present); + return { code: 'object.oxor', context }; + }, + + with(schema, dep, value, state, prefs) { + + for (const peer of dep.peers) { + if (peer.resolve(value, state, prefs, null, { shadow: false }) === undefined) { + return { + code: 'object.with', + context: { + main: dep.key.key, + mainWithLabel: internals.keysToLabels(schema, dep.key.key), + peer: peer.key, + peerWithLabel: internals.keysToLabels(schema, peer.key) + } + }; + } + } + }, + + without(schema, dep, value, state, prefs) { + + for (const peer of dep.peers) { + if (peer.resolve(value, state, prefs, null, { shadow: false }) !== undefined) { + return { + code: 'object.without', + context: { + main: dep.key.key, + mainWithLabel: internals.keysToLabels(schema, dep.key.key), + peer: peer.key, + peerWithLabel: internals.keysToLabels(schema, peer.key) + } + }; + } + } + }, + + xor(schema, dep, value, state, prefs) { + + const present = []; + for (const peer of dep.peers) { + if (peer.resolve(value, state, prefs, null, { shadow: false }) !== undefined) { + present.push(peer.key); + } + } + + if (present.length === 1) { + return; + } + + const context = { peers: dep.paths, peersWithLabels: internals.keysToLabels(schema, dep.paths) }; + if (present.length === 0) { + return { code: 'object.missing', context }; + } + + context.present = present; + context.presentWithLabels = internals.keysToLabels(schema, present); + return { code: 'object.xor', context }; + } +}; + + +internals.keysToLabels = function (schema, keys) { + + if (Array.isArray(keys)) { + return keys.map((key) => schema.$_mapLabels(key)); + } + + return schema.$_mapLabels(keys); +}; + + +internals.rename = function (schema, value, state, prefs, errors) { + + const renamed = {}; + for (const rename of schema.$_terms.renames) { + const matches = []; + const pattern = typeof rename.from !== 'string'; + + if (!pattern) { + if (Object.prototype.hasOwnProperty.call(value, rename.from) && + (value[rename.from] !== undefined || !rename.options.ignoreUndefined)) { + + matches.push(rename); + } + } + else { + for (const from in value) { + if (value[from] === undefined && + rename.options.ignoreUndefined) { + + continue; + } + + if (from === rename.to) { + continue; + } + + const match = rename.from.exec(from); + if (!match) { + continue; + } + + matches.push({ from, to: rename.to, match }); + } + } + + for (const match of matches) { + const from = match.from; + let to = match.to; + if (to instanceof Template) { + to = to.render(value, state, prefs, match.match); + } + + if (from === to) { + continue; + } + + if (!rename.options.multiple && + renamed[to]) { + + errors.push(schema.$_createError('object.rename.multiple', value, { from, to, pattern }, state, prefs)); + if (prefs.abortEarly) { + return false; + } + } + + if (Object.prototype.hasOwnProperty.call(value, to) && + !rename.options.override && + !renamed[to]) { + + errors.push(schema.$_createError('object.rename.override', value, { from, to, pattern }, state, prefs)); + if (prefs.abortEarly) { + return false; + } + } + + if (value[from] === undefined) { + delete value[to]; + } + else { + value[to] = value[from]; + } + + renamed[to] = true; + + if (!rename.options.alias) { + delete value[from]; + } + } + } + + return true; +}; + + +internals.unknown = function (schema, value, unprocessed, errors, state, prefs) { + + if (schema.$_terms.patterns) { + let hasMatches = false; + const matches = schema.$_terms.patterns.map((pattern) => { + + if (pattern.matches) { + hasMatches = true; + return []; + } + }); + + const ancestors = [value, ...state.ancestors]; + + for (const key of unprocessed) { + const item = value[key]; + const path = [...state.path, key]; + + for (let i = 0; i < schema.$_terms.patterns.length; ++i) { + const pattern = schema.$_terms.patterns[i]; + if (pattern.regex) { + const match = pattern.regex.test(key); + state.mainstay.tracer.debug(state, 'rule', `pattern.${i}`, match ? 'pass' : 'error'); + if (!match) { + continue; + } + } + else { + if (!pattern.schema.$_match(key, state.nest(pattern.schema, `pattern.${i}`), prefs)) { + continue; + } + } + + unprocessed.delete(key); + + const localState = state.localize(path, ancestors, { schema: pattern.rule, key }); + const result = pattern.rule.$_validate(item, localState, prefs); + if (result.errors) { + if (prefs.abortEarly) { + return { value, errors: result.errors }; + } + + errors.push(...result.errors); + } + + if (pattern.matches) { + matches[i].push(key); + } + + value[key] = result.value; + if (!pattern.fallthrough) { + break; + } + } + } + + // Validate pattern matches rules + + if (hasMatches) { + for (let i = 0; i < matches.length; ++i) { + const match = matches[i]; + if (!match) { + continue; + } + + const stpm = schema.$_terms.patterns[i].matches; + const localState = state.localize(state.path, ancestors, stpm); + const result = stpm.$_validate(match, localState, prefs); + if (result.errors) { + const details = Errors.details(result.errors, { override: false }); + details.matches = match; + const report = schema.$_createError('object.pattern.match', value, details, state, prefs); + if (prefs.abortEarly) { + return { value, errors: report }; + } + + errors.push(report); + } + } + } + } + + if (!unprocessed.size || + !schema.$_terms.keys && !schema.$_terms.patterns) { // If no keys or patterns specified, unknown keys allowed + + return; + } + + if (prefs.stripUnknown && !schema._flags.unknown || + prefs.skipFunctions) { + + const stripUnknown = prefs.stripUnknown ? (prefs.stripUnknown === true ? true : !!prefs.stripUnknown.objects) : false; + + for (const key of unprocessed) { + if (stripUnknown) { + delete value[key]; + unprocessed.delete(key); + } + else if (typeof value[key] === 'function') { + unprocessed.delete(key); + } + } + } + + const forbidUnknown = !Common.default(schema._flags.unknown, prefs.allowUnknown); + if (forbidUnknown) { + for (const unprocessedKey of unprocessed) { + const localState = state.localize([...state.path, unprocessedKey], []); + const report = schema.$_createError('object.unknown', value[unprocessedKey], { child: unprocessedKey }, localState, prefs, { flags: false }); + if (prefs.abortEarly) { + return { value, errors: report }; + } + + errors.push(report); + } + } +}; + + +internals.Dependency = class { + + constructor(rel, key, peers, paths) { + + this.rel = rel; + this.key = key; + this.peers = peers; + this.paths = paths; + } + + describe() { + + const desc = { + rel: this.rel, + peers: this.paths + }; + + if (this.key !== null) { + desc.key = this.key.key; + } + + if (this.peers[0].separator !== '.') { + desc.options = { separator: this.peers[0].separator }; + } + + return desc; + } +}; + + +internals.Keys = class extends Array { + + concat(source) { + + const result = this.slice(); + + const keys = new Map(); + for (let i = 0; i < result.length; ++i) { + keys.set(result[i].key, i); + } + + for (const item of source) { + const key = item.key; + const pos = keys.get(key); + if (pos !== undefined) { + result[pos] = { key, schema: result[pos].schema.concat(item.schema) }; + } + else { + result.push(item); + } + } + + return result; + } +}; diff --git a/node_modules/joi/lib/types/link.js b/node_modules/joi/lib/types/link.js new file mode 100755 index 0000000..d99d002 --- /dev/null +++ b/node_modules/joi/lib/types/link.js @@ -0,0 +1,168 @@ +'use strict'; + +const Assert = require('@hapi/hoek/lib/assert'); + +const Any = require('./any'); +const Common = require('../common'); +const Compile = require('../compile'); +const Errors = require('../errors'); + + +const internals = {}; + + +module.exports = Any.extend({ + + type: 'link', + + properties: { + schemaChain: true + }, + + terms: { + + link: { init: null, manifest: 'single', register: false } + }, + + args(schema, ref) { + + return schema.ref(ref); + }, + + validate(value, { schema, state, prefs }) { + + Assert(schema.$_terms.link, 'Uninitialized link schema'); + + const linked = internals.generate(schema, value, state, prefs); + const ref = schema.$_terms.link[0].ref; + return linked.$_validate(value, state.nest(linked, `link:${ref.display}:${linked.type}`), prefs); + }, + + generate(schema, value, state, prefs) { + + return internals.generate(schema, value, state, prefs); + }, + + rules: { + + ref: { + method(ref) { + + Assert(!this.$_terms.link, 'Cannot reinitialize schema'); + + ref = Compile.ref(ref); + + Assert(ref.type === 'value' || ref.type === 'local', 'Invalid reference type:', ref.type); + Assert(ref.type === 'local' || ref.ancestor === 'root' || ref.ancestor > 0, 'Link cannot reference itself'); + + const obj = this.clone(); + obj.$_terms.link = [{ ref }]; + return obj; + } + }, + + relative: { + method(enabled = true) { + + return this.$_setFlag('relative', enabled); + } + } + }, + + overrides: { + + concat(source) { + + Assert(this.$_terms.link, 'Uninitialized link schema'); + Assert(Common.isSchema(source), 'Invalid schema object'); + Assert(source.type !== 'link', 'Cannot merge type link with another link'); + + const obj = this.clone(); + + if (!obj.$_terms.whens) { + obj.$_terms.whens = []; + } + + obj.$_terms.whens.push({ concat: source }); + return obj.$_mutateRebuild(); + } + }, + + manifest: { + + build(obj, desc) { + + Assert(desc.link, 'Invalid link description missing link'); + return obj.ref(desc.link); + } + } +}); + + +// Helpers + +internals.generate = function (schema, value, state, prefs) { + + let linked = state.mainstay.links.get(schema); + if (linked) { + return linked._generate(value, state, prefs).schema; + } + + const ref = schema.$_terms.link[0].ref; + const { perspective, path } = internals.perspective(ref, state); + internals.assert(perspective, 'which is outside of schema boundaries', ref, schema, state, prefs); + + try { + linked = path.length ? perspective.$_reach(path) : perspective; + } + catch (ignoreErr) { + internals.assert(false, 'to non-existing schema', ref, schema, state, prefs); + } + + internals.assert(linked.type !== 'link', 'which is another link', ref, schema, state, prefs); + + if (!schema._flags.relative) { + state.mainstay.links.set(schema, linked); + } + + return linked._generate(value, state, prefs).schema; +}; + + +internals.perspective = function (ref, state) { + + if (ref.type === 'local') { + for (const { schema, key } of state.schemas) { // From parent to root + const id = schema._flags.id || key; + if (id === ref.path[0]) { + return { perspective: schema, path: ref.path.slice(1) }; + } + + if (schema.$_terms.shared) { + for (const shared of schema.$_terms.shared) { + if (shared._flags.id === ref.path[0]) { + return { perspective: shared, path: ref.path.slice(1) }; + } + } + } + } + + return { perspective: null, path: null }; + } + + if (ref.ancestor === 'root') { + return { perspective: state.schemas[state.schemas.length - 1].schema, path: ref.path }; + } + + return { perspective: state.schemas[ref.ancestor] && state.schemas[ref.ancestor].schema, path: ref.path }; +}; + + +internals.assert = function (condition, message, ref, schema, state, prefs) { + + if (condition) { // Manual check to avoid generating error message on success + return; + } + + Assert(false, `"${Errors.label(schema._flags, state, prefs)}" contains link reference "${ref.display}" ${message}`); +}; diff --git a/node_modules/joi/lib/types/number.js b/node_modules/joi/lib/types/number.js new file mode 100755 index 0000000..191db47 --- /dev/null +++ b/node_modules/joi/lib/types/number.js @@ -0,0 +1,335 @@ +'use strict'; + +const Assert = require('@hapi/hoek/lib/assert'); + +const Any = require('./any'); +const Common = require('../common'); + + +const internals = { + numberRx: /^\s*[+-]?(?:(?:\d+(?:\.\d*)?)|(?:\.\d+))(?:e([+-]?\d+))?\s*$/i, + precisionRx: /(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/ +}; + + +module.exports = Any.extend({ + + type: 'number', + + flags: { + + unsafe: { default: false } + }, + + coerce: { + from: 'string', + method(value, { schema, error }) { + + const matches = value.match(internals.numberRx); + if (!matches) { + return; + } + + value = value.trim(); + const result = { value: parseFloat(value) }; + + if (result.value === 0) { + result.value = 0; // -0 + } + + if (!schema._flags.unsafe) { + if (value.match(/e/i)) { + const constructed = internals.normalizeExponent(`${result.value / Math.pow(10, matches[1])}e${matches[1]}`); + if (constructed !== internals.normalizeExponent(value)) { + result.errors = error('number.unsafe'); + return result; + } + } + else { + const string = result.value.toString(); + if (string.match(/e/i)) { + return result; + } + + if (string !== internals.normalizeDecimal(value)) { + result.errors = error('number.unsafe'); + return result; + } + } + } + + return result; + } + }, + + validate(value, { schema, error, prefs }) { + + if (value === Infinity || + value === -Infinity) { + + return { value, errors: error('number.infinity') }; + } + + if (!Common.isNumber(value)) { + return { value, errors: error('number.base') }; + } + + const result = { value }; + + if (prefs.convert) { + const rule = schema.$_getRule('precision'); + if (rule) { + const precision = Math.pow(10, rule.args.limit); // This is conceptually equivalent to using toFixed but it should be much faster + result.value = Math.round(result.value * precision) / precision; + } + } + + if (result.value === 0) { + result.value = 0; // -0 + } + + if (!schema._flags.unsafe && + (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER)) { + + result.errors = error('number.unsafe'); + } + + return result; + }, + + rules: { + + compare: { + method: false, + validate(value, helpers, { limit }, { name, operator, args }) { + + if (Common.compare(value, limit, operator)) { + return value; + } + + return helpers.error('number.' + name, { limit: args.limit, value }); + }, + args: [ + { + name: 'limit', + ref: true, + assert: Common.isNumber, + message: 'must be a number' + } + ] + }, + + greater: { + method(limit) { + + return this.$_addRule({ name: 'greater', method: 'compare', args: { limit }, operator: '>' }); + } + }, + + integer: { + method() { + + return this.$_addRule('integer'); + }, + validate(value, helpers) { + + if (Math.trunc(value) - value === 0) { + return value; + } + + return helpers.error('number.integer'); + } + }, + + less: { + method(limit) { + + return this.$_addRule({ name: 'less', method: 'compare', args: { limit }, operator: '<' }); + } + }, + + max: { + method(limit) { + + return this.$_addRule({ name: 'max', method: 'compare', args: { limit }, operator: '<=' }); + } + }, + + min: { + method(limit) { + + return this.$_addRule({ name: 'min', method: 'compare', args: { limit }, operator: '>=' }); + } + }, + + multiple: { + method(base) { + + return this.$_addRule({ name: 'multiple', args: { base } }); + }, + validate(value, helpers, { base }, options) { + + if (value % base === 0) { + return value; + } + + return helpers.error('number.multiple', { multiple: options.args.base, value }); + }, + args: [ + { + name: 'base', + ref: true, + assert: (value) => typeof value === 'number' && isFinite(value) && value > 0, + message: 'must be a positive number' + } + ], + multi: true + }, + + negative: { + method() { + + return this.sign('negative'); + } + }, + + port: { + method() { + + return this.$_addRule('port'); + }, + validate(value, helpers) { + + if (Number.isSafeInteger(value) && + value >= 0 && + value <= 65535) { + + return value; + } + + return helpers.error('number.port'); + } + }, + + positive: { + method() { + + return this.sign('positive'); + } + }, + + precision: { + method(limit) { + + Assert(Number.isSafeInteger(limit), 'limit must be an integer'); + + return this.$_addRule({ name: 'precision', args: { limit } }); + }, + validate(value, helpers, { limit }) { + + const places = value.toString().match(internals.precisionRx); + const decimals = Math.max((places[1] ? places[1].length : 0) - (places[2] ? parseInt(places[2], 10) : 0), 0); + if (decimals <= limit) { + return value; + } + + return helpers.error('number.precision', { limit, value }); + }, + convert: true + }, + + sign: { + method(sign) { + + Assert(['negative', 'positive'].includes(sign), 'Invalid sign', sign); + + return this.$_addRule({ name: 'sign', args: { sign } }); + }, + validate(value, helpers, { sign }) { + + if (sign === 'negative' && value < 0 || + sign === 'positive' && value > 0) { + + return value; + } + + return helpers.error(`number.${sign}`); + } + }, + + unsafe: { + method(enabled = true) { + + Assert(typeof enabled === 'boolean', 'enabled must be a boolean'); + + return this.$_setFlag('unsafe', enabled); + } + } + }, + + cast: { + string: { + from: (value) => typeof value === 'number', + to(value, helpers) { + + return value.toString(); + } + } + }, + + messages: { + 'number.base': '{{#label}} must be a number', + 'number.greater': '{{#label}} must be greater than {{#limit}}', + 'number.infinity': '{{#label}} cannot be infinity', + 'number.integer': '{{#label}} must be an integer', + 'number.less': '{{#label}} must be less than {{#limit}}', + 'number.max': '{{#label}} must be less than or equal to {{#limit}}', + 'number.min': '{{#label}} must be greater than or equal to {{#limit}}', + 'number.multiple': '{{#label}} must be a multiple of {{#multiple}}', + 'number.negative': '{{#label}} must be a negative number', + 'number.port': '{{#label}} must be a valid port', + 'number.positive': '{{#label}} must be a positive number', + 'number.precision': '{{#label}} must have no more than {{#limit}} decimal places', + 'number.unsafe': '{{#label}} must be a safe number' + } +}); + + +// Helpers + +internals.normalizeExponent = function (str) { + + return str + .replace(/E/, 'e') + .replace(/\.(\d*[1-9])?0+e/, '.$1e') + .replace(/\.e/, 'e') + .replace(/e\+/, 'e') + .replace(/^\+/, '') + .replace(/^(-?)0+([1-9])/, '$1$2'); +}; + + +internals.normalizeDecimal = function (str) { + + str = str + // Remove leading plus signs + .replace(/^\+/, '') + // Remove trailing zeros if there is a decimal point and unecessary decimal points + .replace(/\.0*$/, '') + // Add a integer 0 if the numbers starts with a decimal point + .replace(/^(-?)\.([^\.]*)$/, '$10.$2') + // Remove leading zeros + .replace(/^(-?)0+([0-9])/, '$1$2'); + + if (str.includes('.') && + str.endsWith('0')) { + + str = str.replace(/0+$/, ''); + } + + if (str === '-0') { + return '0'; + } + + return str; +}; diff --git a/node_modules/joi/lib/types/object.js b/node_modules/joi/lib/types/object.js new file mode 100755 index 0000000..57046fd --- /dev/null +++ b/node_modules/joi/lib/types/object.js @@ -0,0 +1,22 @@ +'use strict'; + +const Keys = require('./keys'); + + +const internals = {}; + + +module.exports = Keys.extend({ + + type: 'object', + + cast: { + map: { + from: (value) => value && typeof value === 'object', + to(value, helpers) { + + return new Map(Object.entries(value)); + } + } + } +}); diff --git a/node_modules/joi/lib/types/string.js b/node_modules/joi/lib/types/string.js new file mode 100755 index 0000000..103ce3c --- /dev/null +++ b/node_modules/joi/lib/types/string.js @@ -0,0 +1,820 @@ +'use strict'; + +const Assert = require('@hapi/hoek/lib/assert'); +const Domain = require('@sideway/address/lib/domain'); +const Email = require('@sideway/address/lib/email'); +const Ip = require('@sideway/address/lib/ip'); +const EscapeRegex = require('@hapi/hoek/lib/escapeRegex'); +const Tlds = require('@sideway/address/lib/tlds'); +const Uri = require('@sideway/address/lib/uri'); + +const Any = require('./any'); +const Common = require('../common'); + + +const internals = { + tlds: Tlds instanceof Set ? { tlds: { allow: Tlds, deny: null } } : false, // $lab:coverage:ignore$ + base64Regex: { + // paddingRequired + true: { + // urlSafe + true: /^(?:[\w\-]{2}[\w\-]{2})*(?:[\w\-]{2}==|[\w\-]{3}=)?$/, + false: /^(?:[A-Za-z0-9+\/]{2}[A-Za-z0-9+\/]{2})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/ + }, + false: { + true: /^(?:[\w\-]{2}[\w\-]{2})*(?:[\w\-]{2}(==)?|[\w\-]{3}=?)?$/, + false: /^(?:[A-Za-z0-9+\/]{2}[A-Za-z0-9+\/]{2})*(?:[A-Za-z0-9+\/]{2}(==)?|[A-Za-z0-9+\/]{3}=?)?$/ + } + }, + dataUriRegex: /^data:[\w+.-]+\/[\w+.-]+;((charset=[\w-]+|base64),)?(.*)$/, + hexRegex: /^[a-f0-9]+$/i, + ipRegex: Ip.regex().regex, + isoDurationRegex: /^P(?!$)(\d+Y)?(\d+M)?(\d+W)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?$/, + + guidBrackets: { + '{': '}', '[': ']', '(': ')', '': '' + }, + guidVersions: { + uuidv1: '1', + uuidv2: '2', + uuidv3: '3', + uuidv4: '4', + uuidv5: '5' + }, + guidSeparators: new Set([undefined, true, false, '-', ':']), + + normalizationForms: ['NFC', 'NFD', 'NFKC', 'NFKD'] +}; + + +module.exports = Any.extend({ + + type: 'string', + + flags: { + + insensitive: { default: false }, + truncate: { default: false } + }, + + terms: { + + replacements: { init: null } + }, + + coerce: { + from: 'string', + method(value, { schema, state, prefs }) { + + const normalize = schema.$_getRule('normalize'); + if (normalize) { + value = value.normalize(normalize.args.form); + } + + const casing = schema.$_getRule('case'); + if (casing) { + value = casing.args.direction === 'upper' ? value.toLocaleUpperCase() : value.toLocaleLowerCase(); + } + + const trim = schema.$_getRule('trim'); + if (trim && + trim.args.enabled) { + + value = value.trim(); + } + + if (schema.$_terms.replacements) { + for (const replacement of schema.$_terms.replacements) { + value = value.replace(replacement.pattern, replacement.replacement); + } + } + + const hex = schema.$_getRule('hex'); + if (hex && + hex.args.options.byteAligned && + value.length % 2 !== 0) { + + value = `0${value}`; + } + + if (schema.$_getRule('isoDate')) { + const iso = internals.isoDate(value); + if (iso) { + value = iso; + } + } + + if (schema._flags.truncate) { + const rule = schema.$_getRule('max'); + if (rule) { + let limit = rule.args.limit; + if (Common.isResolvable(limit)) { + limit = limit.resolve(value, state, prefs); + if (!Common.limit(limit)) { + return { value, errors: schema.$_createError('any.ref', limit, { ref: rule.args.limit, arg: 'limit', reason: 'must be a positive integer' }, state, prefs) }; + } + } + + value = value.slice(0, limit); + } + } + + return { value }; + } + }, + + validate(value, { error }) { + + if (typeof value !== 'string') { + return { value, errors: error('string.base') }; + } + + if (value === '') { + return { value, errors: error('string.empty') }; + } + }, + + rules: { + + alphanum: { + method() { + + return this.$_addRule('alphanum'); + }, + validate(value, helpers) { + + if (/^[a-zA-Z0-9]+$/.test(value)) { + return value; + } + + return helpers.error('string.alphanum'); + } + }, + + base64: { + method(options = {}) { + + Common.assertOptions(options, ['paddingRequired', 'urlSafe']); + + options = { urlSafe: false, paddingRequired: true, ...options }; + Assert(typeof options.paddingRequired === 'boolean', 'paddingRequired must be boolean'); + Assert(typeof options.urlSafe === 'boolean', 'urlSafe must be boolean'); + + return this.$_addRule({ name: 'base64', args: { options } }); + }, + validate(value, helpers, { options }) { + + const regex = internals.base64Regex[options.paddingRequired][options.urlSafe]; + if (regex.test(value)) { + return value; + } + + return helpers.error('string.base64'); + } + }, + + case: { + method(direction) { + + Assert(['lower', 'upper'].includes(direction), 'Invalid case:', direction); + + return this.$_addRule({ name: 'case', args: { direction } }); + }, + validate(value, helpers, { direction }) { + + if (direction === 'lower' && value === value.toLocaleLowerCase() || + direction === 'upper' && value === value.toLocaleUpperCase()) { + + return value; + } + + return helpers.error(`string.${direction}case`); + }, + convert: true + }, + + creditCard: { + method() { + + return this.$_addRule('creditCard'); + }, + validate(value, helpers) { + + let i = value.length; + let sum = 0; + let mul = 1; + + while (i--) { + const char = value.charAt(i) * mul; + sum = sum + (char - (char > 9) * 9); + mul = mul ^ 3; + } + + if (sum > 0 && + sum % 10 === 0) { + + return value; + } + + return helpers.error('string.creditCard'); + } + }, + + dataUri: { + method(options = {}) { + + Common.assertOptions(options, ['paddingRequired']); + + options = { paddingRequired: true, ...options }; + Assert(typeof options.paddingRequired === 'boolean', 'paddingRequired must be boolean'); + + return this.$_addRule({ name: 'dataUri', args: { options } }); + }, + validate(value, helpers, { options }) { + + const matches = value.match(internals.dataUriRegex); + + if (matches) { + if (!matches[2]) { + return value; + } + + if (matches[2] !== 'base64') { + return value; + } + + const base64regex = internals.base64Regex[options.paddingRequired].false; + if (base64regex.test(matches[3])) { + return value; + } + } + + return helpers.error('string.dataUri'); + } + }, + + domain: { + method(options) { + + if (options) { + Common.assertOptions(options, ['allowUnicode', 'maxDomainSegments', 'minDomainSegments', 'tlds']); + } + + const address = internals.addressOptions(options); + return this.$_addRule({ name: 'domain', args: { options }, address }); + }, + validate(value, helpers, args, { address }) { + + if (Domain.isValid(value, address)) { + return value; + } + + return helpers.error('string.domain'); + } + }, + + email: { + method(options = {}) { + + Common.assertOptions(options, ['allowUnicode', 'ignoreLength', 'maxDomainSegments', 'minDomainSegments', 'multiple', 'separator', 'tlds']); + Assert(options.multiple === undefined || typeof options.multiple === 'boolean', 'multiple option must be an boolean'); + + const address = internals.addressOptions(options); + const regex = new RegExp(`\\s*[${options.separator ? EscapeRegex(options.separator) : ','}]\\s*`); + + return this.$_addRule({ name: 'email', args: { options }, regex, address }); + }, + validate(value, helpers, { options }, { regex, address }) { + + const emails = options.multiple ? value.split(regex) : [value]; + const invalids = []; + for (const email of emails) { + if (!Email.isValid(email, address)) { + invalids.push(email); + } + } + + if (!invalids.length) { + return value; + } + + return helpers.error('string.email', { value, invalids }); + } + }, + + guid: { + alias: 'uuid', + method(options = {}) { + + Common.assertOptions(options, ['version', 'separator']); + + let versionNumbers = ''; + + if (options.version) { + const versions = [].concat(options.version); + + Assert(versions.length >= 1, 'version must have at least 1 valid version specified'); + const set = new Set(); + + for (let i = 0; i < versions.length; ++i) { + const version = versions[i]; + Assert(typeof version === 'string', 'version at position ' + i + ' must be a string'); + const versionNumber = internals.guidVersions[version.toLowerCase()]; + Assert(versionNumber, 'version at position ' + i + ' must be one of ' + Object.keys(internals.guidVersions).join(', ')); + Assert(!set.has(versionNumber), 'version at position ' + i + ' must not be a duplicate'); + + versionNumbers += versionNumber; + set.add(versionNumber); + } + } + + Assert(internals.guidSeparators.has(options.separator), 'separator must be one of true, false, "-", or ":"'); + const separator = options.separator === undefined ? '[:-]?' : + options.separator === true ? '[:-]' : + options.separator === false ? '[]?' : `\\${options.separator}`; + + const regex = new RegExp(`^([\\[{\\(]?)[0-9A-F]{8}(${separator})[0-9A-F]{4}\\2?[${versionNumbers || '0-9A-F'}][0-9A-F]{3}\\2?[${versionNumbers ? '89AB' : '0-9A-F'}][0-9A-F]{3}\\2?[0-9A-F]{12}([\\]}\\)]?)$`, 'i'); + + return this.$_addRule({ name: 'guid', args: { options }, regex }); + }, + validate(value, helpers, args, { regex }) { + + const results = regex.exec(value); + + if (!results) { + return helpers.error('string.guid'); + } + + // Matching braces + + if (internals.guidBrackets[results[1]] !== results[results.length - 1]) { + return helpers.error('string.guid'); + } + + return value; + } + }, + + hex: { + method(options = {}) { + + Common.assertOptions(options, ['byteAligned']); + + options = { byteAligned: false, ...options }; + Assert(typeof options.byteAligned === 'boolean', 'byteAligned must be boolean'); + + return this.$_addRule({ name: 'hex', args: { options } }); + }, + validate(value, helpers, { options }) { + + if (!internals.hexRegex.test(value)) { + return helpers.error('string.hex'); + } + + if (options.byteAligned && + value.length % 2 !== 0) { + + return helpers.error('string.hexAlign'); + } + + return value; + } + }, + + hostname: { + method() { + + return this.$_addRule('hostname'); + }, + validate(value, helpers) { + + if (Domain.isValid(value, { minDomainSegments: 1 }) || + internals.ipRegex.test(value)) { + + return value; + } + + return helpers.error('string.hostname'); + } + }, + + insensitive: { + method() { + + return this.$_setFlag('insensitive', true); + } + }, + + ip: { + method(options = {}) { + + Common.assertOptions(options, ['cidr', 'version']); + + const { cidr, versions, regex } = Ip.regex(options); + const version = options.version ? versions : undefined; + return this.$_addRule({ name: 'ip', args: { options: { cidr, version } }, regex }); + }, + validate(value, helpers, { options }, { regex }) { + + if (regex.test(value)) { + return value; + } + + if (options.version) { + return helpers.error('string.ipVersion', { value, cidr: options.cidr, version: options.version }); + } + + return helpers.error('string.ip', { value, cidr: options.cidr }); + } + }, + + isoDate: { + method() { + + return this.$_addRule('isoDate'); + }, + validate(value, { error }) { + + if (internals.isoDate(value)) { + return value; + } + + return error('string.isoDate'); + } + }, + + isoDuration: { + method() { + + return this.$_addRule('isoDuration'); + }, + validate(value, helpers) { + + if (internals.isoDurationRegex.test(value)) { + return value; + } + + return helpers.error('string.isoDuration'); + } + }, + + length: { + method(limit, encoding) { + + return internals.length(this, 'length', limit, '=', encoding); + }, + validate(value, helpers, { limit, encoding }, { name, operator, args }) { + + const length = encoding ? Buffer && Buffer.byteLength(value, encoding) : value.length; // $lab:coverage:ignore$ + if (Common.compare(length, limit, operator)) { + return value; + } + + return helpers.error('string.' + name, { limit: args.limit, value, encoding }); + }, + args: [ + { + name: 'limit', + ref: true, + assert: Common.limit, + message: 'must be a positive integer' + }, + 'encoding' + ] + }, + + lowercase: { + method() { + + return this.case('lower'); + } + }, + + max: { + method(limit, encoding) { + + return internals.length(this, 'max', limit, '<=', encoding); + }, + args: ['limit', 'encoding'] + }, + + min: { + method(limit, encoding) { + + return internals.length(this, 'min', limit, '>=', encoding); + }, + args: ['limit', 'encoding'] + }, + + normalize: { + method(form = 'NFC') { + + Assert(internals.normalizationForms.includes(form), 'normalization form must be one of ' + internals.normalizationForms.join(', ')); + + return this.$_addRule({ name: 'normalize', args: { form } }); + }, + validate(value, { error }, { form }) { + + if (value === value.normalize(form)) { + return value; + } + + return error('string.normalize', { value, form }); + }, + convert: true + }, + + pattern: { + alias: 'regex', + method(regex, options = {}) { + + Assert(regex instanceof RegExp, 'regex must be a RegExp'); + Assert(!regex.flags.includes('g') && !regex.flags.includes('y'), 'regex should not use global or sticky mode'); + + if (typeof options === 'string') { + options = { name: options }; + } + + Common.assertOptions(options, ['invert', 'name']); + + const errorCode = ['string.pattern', options.invert ? '.invert' : '', options.name ? '.name' : '.base'].join(''); + return this.$_addRule({ name: 'pattern', args: { regex, options }, errorCode }); + }, + validate(value, helpers, { regex, options }, { errorCode }) { + + const patternMatch = regex.test(value); + + if (patternMatch ^ options.invert) { + return value; + } + + return helpers.error(errorCode, { name: options.name, regex, value }); + }, + args: ['regex', 'options'], + multi: true + }, + + replace: { + method(pattern, replacement) { + + if (typeof pattern === 'string') { + pattern = new RegExp(EscapeRegex(pattern), 'g'); + } + + Assert(pattern instanceof RegExp, 'pattern must be a RegExp'); + Assert(typeof replacement === 'string', 'replacement must be a String'); + + const obj = this.clone(); + + if (!obj.$_terms.replacements) { + obj.$_terms.replacements = []; + } + + obj.$_terms.replacements.push({ pattern, replacement }); + return obj; + } + }, + + token: { + method() { + + return this.$_addRule('token'); + }, + validate(value, helpers) { + + if (/^\w+$/.test(value)) { + return value; + } + + return helpers.error('string.token'); + } + }, + + trim: { + method(enabled = true) { + + Assert(typeof enabled === 'boolean', 'enabled must be a boolean'); + + return this.$_addRule({ name: 'trim', args: { enabled } }); + }, + validate(value, helpers, { enabled }) { + + if (!enabled || + value === value.trim()) { + + return value; + } + + return helpers.error('string.trim'); + }, + convert: true + }, + + truncate: { + method(enabled = true) { + + Assert(typeof enabled === 'boolean', 'enabled must be a boolean'); + + return this.$_setFlag('truncate', enabled); + } + }, + + uppercase: { + method() { + + return this.case('upper'); + } + }, + + uri: { + method(options = {}) { + + Common.assertOptions(options, ['allowRelative', 'allowQuerySquareBrackets', 'domain', 'relativeOnly', 'scheme']); + + if (options.domain) { + Common.assertOptions(options.domain, ['allowUnicode', 'maxDomainSegments', 'minDomainSegments', 'tlds']); + } + + const { regex, scheme } = Uri.regex(options); + const domain = options.domain ? internals.addressOptions(options.domain) : null; + return this.$_addRule({ name: 'uri', args: { options }, regex, domain, scheme }); + }, + validate(value, helpers, { options }, { regex, domain, scheme }) { + + if (['http:/', 'https:/'].includes(value)) { // scheme:/ is technically valid but makes no sense + return helpers.error('string.uri'); + } + + const match = regex.exec(value); + if (match) { + if (domain) { + const matched = match[1] || match[2]; + if (!Domain.isValid(matched, domain)) { + return helpers.error('string.domain', { value: matched }); + } + } + + return value; + } + + if (options.relativeOnly) { + return helpers.error('string.uriRelativeOnly'); + } + + if (options.scheme) { + return helpers.error('string.uriCustomScheme', { scheme, value }); + } + + return helpers.error('string.uri'); + } + } + }, + + manifest: { + + build(obj, desc) { + + if (desc.replacements) { + for (const { pattern, replacement } of desc.replacements) { + obj = obj.replace(pattern, replacement); + } + } + + return obj; + } + }, + + messages: { + 'string.alphanum': '{{#label}} must only contain alpha-numeric characters', + 'string.base': '{{#label}} must be a string', + 'string.base64': '{{#label}} must be a valid base64 string', + 'string.creditCard': '{{#label}} must be a credit card', + 'string.dataUri': '{{#label}} must be a valid dataUri string', + 'string.domain': '{{#label}} must contain a valid domain name', + 'string.email': '{{#label}} must be a valid email', + 'string.empty': '{{#label}} is not allowed to be empty', + 'string.guid': '{{#label}} must be a valid GUID', + 'string.hex': '{{#label}} must only contain hexadecimal characters', + 'string.hexAlign': '{{#label}} hex decoded representation must be byte aligned', + 'string.hostname': '{{#label}} must be a valid hostname', + 'string.ip': '{{#label}} must be a valid ip address with a {{#cidr}} CIDR', + 'string.ipVersion': '{{#label}} must be a valid ip address of one of the following versions {{#version}} with a {{#cidr}} CIDR', + 'string.isoDate': '{{#label}} must be in iso format', + 'string.isoDuration': '{{#label}} must be a valid ISO 8601 duration', + 'string.length': '{{#label}} length must be {{#limit}} characters long', + 'string.lowercase': '{{#label}} must only contain lowercase characters', + 'string.max': '{{#label}} length must be less than or equal to {{#limit}} characters long', + 'string.min': '{{#label}} length must be at least {{#limit}} characters long', + 'string.normalize': '{{#label}} must be unicode normalized in the {{#form}} form', + 'string.token': '{{#label}} must only contain alpha-numeric and underscore characters', + 'string.pattern.base': '{{#label}} with value {:[.]} fails to match the required pattern: {{#regex}}', + 'string.pattern.name': '{{#label}} with value {:[.]} fails to match the {{#name}} pattern', + 'string.pattern.invert.base': '{{#label}} with value {:[.]} matches the inverted pattern: {{#regex}}', + 'string.pattern.invert.name': '{{#label}} with value {:[.]} matches the inverted {{#name}} pattern', + 'string.trim': '{{#label}} must not have leading or trailing whitespace', + 'string.uri': '{{#label}} must be a valid uri', + 'string.uriCustomScheme': '{{#label}} must be a valid uri with a scheme matching the {{#scheme}} pattern', + 'string.uriRelativeOnly': '{{#label}} must be a valid relative uri', + 'string.uppercase': '{{#label}} must only contain uppercase characters' + } +}); + + +// Helpers + +internals.addressOptions = function (options) { + + if (!options) { + return options; + } + + // minDomainSegments + + Assert(options.minDomainSegments === undefined || + Number.isSafeInteger(options.minDomainSegments) && options.minDomainSegments > 0, 'minDomainSegments must be a positive integer'); + + // maxDomainSegments + + Assert(options.maxDomainSegments === undefined || + Number.isSafeInteger(options.maxDomainSegments) && options.maxDomainSegments > 0, 'maxDomainSegments must be a positive integer'); + + // tlds + + if (options.tlds === false) { + return options; + } + + if (options.tlds === true || + options.tlds === undefined) { + + Assert(internals.tlds, 'Built-in TLD list disabled'); + return Object.assign({}, options, internals.tlds); + } + + Assert(typeof options.tlds === 'object', 'tlds must be true, false, or an object'); + + const deny = options.tlds.deny; + if (deny) { + if (Array.isArray(deny)) { + options = Object.assign({}, options, { tlds: { deny: new Set(deny) } }); + } + + Assert(options.tlds.deny instanceof Set, 'tlds.deny must be an array, Set, or boolean'); + Assert(!options.tlds.allow, 'Cannot specify both tlds.allow and tlds.deny lists'); + internals.validateTlds(options.tlds.deny, 'tlds.deny'); + return options; + } + + const allow = options.tlds.allow; + if (!allow) { + return options; + } + + if (allow === true) { + Assert(internals.tlds, 'Built-in TLD list disabled'); + return Object.assign({}, options, internals.tlds); + } + + if (Array.isArray(allow)) { + options = Object.assign({}, options, { tlds: { allow: new Set(allow) } }); + } + + Assert(options.tlds.allow instanceof Set, 'tlds.allow must be an array, Set, or boolean'); + internals.validateTlds(options.tlds.allow, 'tlds.allow'); + return options; +}; + + +internals.validateTlds = function (set, source) { + + for (const tld of set) { + Assert(Domain.isValid(tld, { minDomainSegments: 1, maxDomainSegments: 1 }), `${source} must contain valid top level domain names`); + } +}; + + +internals.isoDate = function (value) { + + if (!Common.isIsoDate(value)) { + return null; + } + + if (/.*T.*[+-]\d\d$/.test(value)) { // Add missing trailing zeros to timeshift + value += '00'; + } + + const date = new Date(value); + if (isNaN(date.getTime())) { + return null; + } + + return date.toISOString(); +}; + + +internals.length = function (schema, name, limit, operator, encoding) { + + Assert(!encoding || Buffer && Buffer.isEncoding(encoding), 'Invalid encoding:', encoding); // $lab:coverage:ignore$ + + return schema.$_addRule({ name, method: 'length', args: { limit, encoding }, operator }); +}; diff --git a/node_modules/joi/lib/types/symbol.js b/node_modules/joi/lib/types/symbol.js new file mode 100755 index 0000000..eafe9ae --- /dev/null +++ b/node_modules/joi/lib/types/symbol.js @@ -0,0 +1,102 @@ +'use strict'; + +const Assert = require('@hapi/hoek/lib/assert'); + +const Any = require('./any'); + + +const internals = {}; + + +internals.Map = class extends Map { + + slice() { + + return new internals.Map(this); + } +}; + + +module.exports = Any.extend({ + + type: 'symbol', + + terms: { + + map: { init: new internals.Map() } + }, + + coerce: { + method(value, { schema, error }) { + + const lookup = schema.$_terms.map.get(value); + if (lookup) { + value = lookup; + } + + if (!schema._flags.only || + typeof value === 'symbol') { + + return { value }; + } + + return { value, errors: error('symbol.map', { map: schema.$_terms.map }) }; + } + }, + + validate(value, { error }) { + + if (typeof value !== 'symbol') { + return { value, errors: error('symbol.base') }; + } + }, + + rules: { + map: { + method(iterable) { + + if (iterable && + !iterable[Symbol.iterator] && + typeof iterable === 'object') { + + iterable = Object.entries(iterable); + } + + Assert(iterable && iterable[Symbol.iterator], 'Iterable must be an iterable or object'); + + const obj = this.clone(); + + const symbols = []; + for (const entry of iterable) { + Assert(entry && entry[Symbol.iterator], 'Entry must be an iterable'); + const [key, value] = entry; + + Assert(typeof key !== 'object' && typeof key !== 'function' && typeof key !== 'symbol', 'Key must not be of type object, function, or Symbol'); + Assert(typeof value === 'symbol', 'Value must be a Symbol'); + + obj.$_terms.map.set(key, value); + symbols.push(value); + } + + return obj.valid(...symbols); + } + } + }, + + manifest: { + + build(obj, desc) { + + if (desc.map) { + obj = obj.map(desc.map); + } + + return obj; + } + }, + + messages: { + 'symbol.base': '{{#label}} must be a symbol', + 'symbol.map': '{{#label}} must be one of {{#map}}' + } +}); diff --git a/node_modules/joi/lib/validator.js b/node_modules/joi/lib/validator.js new file mode 100755 index 0000000..c7fe231 --- /dev/null +++ b/node_modules/joi/lib/validator.js @@ -0,0 +1,650 @@ +'use strict'; + +const Assert = require('@hapi/hoek/lib/assert'); +const Clone = require('@hapi/hoek/lib/clone'); +const Ignore = require('@hapi/hoek/lib/ignore'); +const Reach = require('@hapi/hoek/lib/reach'); + +const Common = require('./common'); +const Errors = require('./errors'); +const State = require('./state'); + + +const internals = { + result: Symbol('result') +}; + + +exports.entry = function (value, schema, prefs) { + + let settings = Common.defaults; + if (prefs) { + Assert(prefs.warnings === undefined, 'Cannot override warnings preference in synchronous validation'); + Assert(prefs.artifacts === undefined, 'Cannot override artifacts preference in synchronous validation'); + settings = Common.preferences(Common.defaults, prefs); + } + + const result = internals.entry(value, schema, settings); + Assert(!result.mainstay.externals.length, 'Schema with external rules must use validateAsync()'); + const outcome = { value: result.value }; + + if (result.error) { + outcome.error = result.error; + } + + if (result.mainstay.warnings.length) { + outcome.warning = Errors.details(result.mainstay.warnings); + } + + if (result.mainstay.debug) { + outcome.debug = result.mainstay.debug; + } + + if (result.mainstay.artifacts) { + outcome.artifacts = result.mainstay.artifacts; + } + + return outcome; +}; + + +exports.entryAsync = async function (value, schema, prefs) { + + let settings = Common.defaults; + if (prefs) { + settings = Common.preferences(Common.defaults, prefs); + } + + const result = internals.entry(value, schema, settings); + const mainstay = result.mainstay; + if (result.error) { + if (mainstay.debug) { + result.error.debug = mainstay.debug; + } + + throw result.error; + } + + if (mainstay.externals.length) { + let root = result.value; + for (const { method, path, label } of mainstay.externals) { + let node = root; + let key; + let parent; + + if (path.length) { + key = path[path.length - 1]; + parent = Reach(root, path.slice(0, -1)); + node = parent[key]; + } + + try { + const output = await method(node, { prefs }); + if (output === undefined || + output === node) { + + continue; + } + + if (parent) { + parent[key] = output; + } + else { + root = output; + } + } + catch (err) { + err.message += ` (${label})`; // Change message to include path + throw err; + } + } + + result.value = root; + } + + if (!settings.warnings && + !settings.debug && + !settings.artifacts) { + + return result.value; + } + + const outcome = { value: result.value }; + if (mainstay.warnings.length) { + outcome.warning = Errors.details(mainstay.warnings); + } + + if (mainstay.debug) { + outcome.debug = mainstay.debug; + } + + if (mainstay.artifacts) { + outcome.artifacts = mainstay.artifacts; + } + + return outcome; +}; + + +internals.entry = function (value, schema, prefs) { + + // Prepare state + + const { tracer, cleanup } = internals.tracer(schema, prefs); + const debug = prefs.debug ? [] : null; + const links = schema._ids._schemaChain ? new Map() : null; + const mainstay = { externals: [], warnings: [], tracer, debug, links }; + const schemas = schema._ids._schemaChain ? [{ schema }] : null; + const state = new State([], [], { mainstay, schemas }); + + // Validate value + + const result = exports.validate(value, schema, state, prefs); + + // Process value and errors + + if (cleanup) { + schema.$_root.untrace(); + } + + const error = Errors.process(result.errors, value, prefs); + return { value: result.value, error, mainstay }; +}; + + +internals.tracer = function (schema, prefs) { + + if (schema.$_root._tracer) { + return { tracer: schema.$_root._tracer._register(schema) }; + } + + if (prefs.debug) { + Assert(schema.$_root.trace, 'Debug mode not supported'); + return { tracer: schema.$_root.trace()._register(schema), cleanup: true }; + } + + return { tracer: internals.ignore }; +}; + + +exports.validate = function (value, schema, state, prefs, overrides = {}) { + + if (schema.$_terms.whens) { + schema = schema._generate(value, state, prefs).schema; + } + + // Setup state and settings + + if (schema._preferences) { + prefs = internals.prefs(schema, prefs); + } + + // Cache + + if (schema._cache && + prefs.cache) { + + const result = schema._cache.get(value); + state.mainstay.tracer.debug(state, 'validate', 'cached', !!result); + if (result) { + return result; + } + } + + // Helpers + + const createError = (code, local, localState) => schema.$_createError(code, value, local, localState || state, prefs); + const helpers = { + original: value, + prefs, + schema, + state, + error: createError, + errorsArray: internals.errorsArray, + warn: (code, local, localState) => state.mainstay.warnings.push(createError(code, local, localState)), + message: (messages, local) => schema.$_createError('custom', value, local, state, prefs, { messages }) + }; + + // Prepare + + state.mainstay.tracer.entry(schema, state); + + const def = schema._definition; + if (def.prepare && + value !== undefined && + prefs.convert) { + + const prepared = def.prepare(value, helpers); + if (prepared) { + state.mainstay.tracer.value(state, 'prepare', value, prepared.value); + if (prepared.errors) { + return internals.finalize(prepared.value, [].concat(prepared.errors), helpers); // Prepare error always aborts early + } + + value = prepared.value; + } + } + + // Type coercion + + if (def.coerce && + value !== undefined && + prefs.convert && + (!def.coerce.from || def.coerce.from.includes(typeof value))) { + + const coerced = def.coerce.method(value, helpers); + if (coerced) { + state.mainstay.tracer.value(state, 'coerced', value, coerced.value); + if (coerced.errors) { + return internals.finalize(coerced.value, [].concat(coerced.errors), helpers); // Coerce error always aborts early + } + + value = coerced.value; + } + } + + // Empty value + + const empty = schema._flags.empty; + if (empty && + empty.$_match(internals.trim(value, schema), state.nest(empty), Common.defaults)) { + + state.mainstay.tracer.value(state, 'empty', value, undefined); + value = undefined; + } + + // Presence requirements (required, optional, forbidden) + + const presence = overrides.presence || schema._flags.presence || (schema._flags._endedSwitch ? null : prefs.presence); + if (value === undefined) { + if (presence === 'forbidden') { + return internals.finalize(value, null, helpers); + } + + if (presence === 'required') { + return internals.finalize(value, [schema.$_createError('any.required', value, null, state, prefs)], helpers); + } + + if (presence === 'optional') { + if (schema._flags.default !== Common.symbols.deepDefault) { + return internals.finalize(value, null, helpers); + } + + state.mainstay.tracer.value(state, 'default', value, {}); + value = {}; + } + } + else if (presence === 'forbidden') { + return internals.finalize(value, [schema.$_createError('any.unknown', value, null, state, prefs)], helpers); + } + + // Allowed values + + const errors = []; + + if (schema._valids) { + const match = schema._valids.get(value, state, prefs, schema._flags.insensitive); + if (match) { + if (prefs.convert) { + state.mainstay.tracer.value(state, 'valids', value, match.value); + value = match.value; + } + + state.mainstay.tracer.filter(schema, state, 'valid', match); + return internals.finalize(value, null, helpers); + } + + if (schema._flags.only) { + const report = schema.$_createError('any.only', value, { valids: schema._valids.values({ display: true }) }, state, prefs); + if (prefs.abortEarly) { + return internals.finalize(value, [report], helpers); + } + + errors.push(report); + } + } + + // Denied values + + if (schema._invalids) { + const match = schema._invalids.get(value, state, prefs, schema._flags.insensitive); + if (match) { + state.mainstay.tracer.filter(schema, state, 'invalid', match); + const report = schema.$_createError('any.invalid', value, { invalids: schema._invalids.values({ display: true }) }, state, prefs); + if (prefs.abortEarly) { + return internals.finalize(value, [report], helpers); + } + + errors.push(report); + } + } + + // Base type + + if (def.validate) { + const base = def.validate(value, helpers); + if (base) { + state.mainstay.tracer.value(state, 'base', value, base.value); + value = base.value; + + if (base.errors) { + if (!Array.isArray(base.errors)) { + errors.push(base.errors); + return internals.finalize(value, errors, helpers); // Base error always aborts early + } + + if (base.errors.length) { + errors.push(...base.errors); + return internals.finalize(value, errors, helpers); // Base error always aborts early + } + } + } + } + + // Validate tests + + if (!schema._rules.length) { + return internals.finalize(value, errors, helpers); + } + + return internals.rules(value, errors, helpers); +}; + + +internals.rules = function (value, errors, helpers) { + + const { schema, state, prefs } = helpers; + + for (const rule of schema._rules) { + const definition = schema._definition.rules[rule.method]; + + // Skip rules that are also applied in coerce step + + if (definition.convert && + prefs.convert) { + + state.mainstay.tracer.log(schema, state, 'rule', rule.name, 'full'); + continue; + } + + // Resolve references + + let ret; + let args = rule.args; + if (rule._resolve.length) { + args = Object.assign({}, args); // Shallow copy + for (const key of rule._resolve) { + const resolver = definition.argsByName.get(key); + + const resolved = args[key].resolve(value, state, prefs); + const normalized = resolver.normalize ? resolver.normalize(resolved) : resolved; + + const invalid = Common.validateArg(normalized, null, resolver); + if (invalid) { + ret = schema.$_createError('any.ref', resolved, { arg: key, ref: args[key], reason: invalid }, state, prefs); + break; + } + + args[key] = normalized; + } + } + + // Test rule + + ret = ret || definition.validate(value, helpers, args, rule); // Use ret if already set to reference error + + const result = internals.rule(ret, rule); + if (result.errors) { + state.mainstay.tracer.log(schema, state, 'rule', rule.name, 'error'); + + if (rule.warn) { + state.mainstay.warnings.push(...result.errors); + continue; + } + + if (prefs.abortEarly) { + return internals.finalize(value, result.errors, helpers); + } + + errors.push(...result.errors); + } + else { + state.mainstay.tracer.log(schema, state, 'rule', rule.name, 'pass'); + state.mainstay.tracer.value(state, 'rule', value, result.value, rule.name); + value = result.value; + } + } + + return internals.finalize(value, errors, helpers); +}; + + +internals.rule = function (ret, rule) { + + if (ret instanceof Errors.Report) { + internals.error(ret, rule); + return { errors: [ret], value: null }; + } + + if (Array.isArray(ret) && + ret[Common.symbols.errors]) { + + ret.forEach((report) => internals.error(report, rule)); + return { errors: ret, value: null }; + } + + return { errors: null, value: ret }; +}; + + +internals.error = function (report, rule) { + + if (rule.message) { + report._setTemplate(rule.message); + } + + return report; +}; + + +internals.finalize = function (value, errors, helpers) { + + errors = errors || []; + const { schema, state, prefs } = helpers; + + // Failover value + + if (errors.length) { + const failover = internals.default('failover', undefined, errors, helpers); + if (failover !== undefined) { + state.mainstay.tracer.value(state, 'failover', value, failover); + value = failover; + errors = []; + } + } + + // Error override + + if (errors.length && + schema._flags.error) { + + if (typeof schema._flags.error === 'function') { + errors = schema._flags.error(errors); + if (!Array.isArray(errors)) { + errors = [errors]; + } + + for (const error of errors) { + Assert(error instanceof Error || error instanceof Errors.Report, 'error() must return an Error object'); + } + } + else { + errors = [schema._flags.error]; + } + } + + // Default + + if (value === undefined) { + const defaulted = internals.default('default', value, errors, helpers); + state.mainstay.tracer.value(state, 'default', value, defaulted); + value = defaulted; + } + + // Cast + + if (schema._flags.cast && + value !== undefined) { + + const caster = schema._definition.cast[schema._flags.cast]; + if (caster.from(value)) { + const casted = caster.to(value, helpers); + state.mainstay.tracer.value(state, 'cast', value, casted, schema._flags.cast); + value = casted; + } + } + + // Externals + + if (schema.$_terms.externals && + prefs.externals && + prefs._externals !== false) { // Disabled for matching + + for (const { method } of schema.$_terms.externals) { + state.mainstay.externals.push({ method, path: state.path, label: Errors.label(schema._flags, state, prefs) }); + } + } + + // Result + + const result = { value, errors: errors.length ? errors : null }; + + if (schema._flags.result) { + result.value = schema._flags.result === 'strip' ? undefined : /* raw */ helpers.original; + state.mainstay.tracer.value(state, schema._flags.result, value, result.value); + state.shadow(value, schema._flags.result); + } + + // Cache + + if (schema._cache && + prefs.cache !== false && + !schema._refs.length) { + + schema._cache.set(helpers.original, result); + } + + // Artifacts + + if (value !== undefined && + !result.errors && + schema._flags.artifact !== undefined) { + + state.mainstay.artifacts = state.mainstay.artifacts || new Map(); + if (!state.mainstay.artifacts.has(schema._flags.artifact)) { + state.mainstay.artifacts.set(schema._flags.artifact, []); + } + + state.mainstay.artifacts.get(schema._flags.artifact).push(state.path); + } + + return result; +}; + + +internals.prefs = function (schema, prefs) { + + const isDefaultOptions = prefs === Common.defaults; + if (isDefaultOptions && + schema._preferences[Common.symbols.prefs]) { + + return schema._preferences[Common.symbols.prefs]; + } + + prefs = Common.preferences(prefs, schema._preferences); + if (isDefaultOptions) { + schema._preferences[Common.symbols.prefs] = prefs; + } + + return prefs; +}; + + +internals.default = function (flag, value, errors, helpers) { + + const { schema, state, prefs } = helpers; + const source = schema._flags[flag]; + if (prefs.noDefaults || + source === undefined) { + + return value; + } + + state.mainstay.tracer.log(schema, state, 'rule', flag, 'full'); + + if (!source) { + return source; + } + + if (typeof source === 'function') { + const args = source.length ? [Clone(state.ancestors[0]), helpers] : []; + + try { + return source(...args); + } + catch (err) { + errors.push(schema.$_createError(`any.${flag}`, null, { error: err }, state, prefs)); + return; + } + } + + if (typeof source !== 'object') { + return source; + } + + if (source[Common.symbols.literal]) { + return source.literal; + } + + if (Common.isResolvable(source)) { + return source.resolve(value, state, prefs); + } + + return Clone(source); +}; + + +internals.trim = function (value, schema) { + + if (typeof value !== 'string') { + return value; + } + + const trim = schema.$_getRule('trim'); + if (!trim || + !trim.args.enabled) { + + return value; + } + + return value.trim(); +}; + + +internals.ignore = { + active: false, + debug: Ignore, + entry: Ignore, + filter: Ignore, + log: Ignore, + resolve: Ignore, + value: Ignore +}; + + +internals.errorsArray = function () { + + const errors = []; + errors[Common.symbols.errors] = true; + return errors; +}; diff --git a/node_modules/joi/lib/values.js b/node_modules/joi/lib/values.js new file mode 100755 index 0000000..bfdb90b --- /dev/null +++ b/node_modules/joi/lib/values.js @@ -0,0 +1,263 @@ +'use strict'; + +const Assert = require('@hapi/hoek/lib/assert'); +const DeepEqual = require('@hapi/hoek/lib/deepEqual'); + +const Common = require('./common'); + + +const internals = {}; + + +module.exports = internals.Values = class { + + constructor(values, refs) { + + this._values = new Set(values); + this._refs = new Set(refs); + this._lowercase = internals.lowercases(values); + + this._override = false; + } + + get length() { + + return this._values.size + this._refs.size; + } + + add(value, refs) { + + // Reference + + if (Common.isResolvable(value)) { + if (!this._refs.has(value)) { + this._refs.add(value); + + if (refs) { // Skipped in a merge + refs.register(value); + } + } + + return; + } + + // Value + + if (!this.has(value, null, null, false)) { + this._values.add(value); + + if (typeof value === 'string') { + this._lowercase.set(value.toLowerCase(), value); + } + } + } + + static merge(target, source, remove) { + + target = target || new internals.Values(); + + if (source) { + if (source._override) { + return source.clone(); + } + + for (const item of [...source._values, ...source._refs]) { + target.add(item); + } + } + + if (remove) { + for (const item of [...remove._values, ...remove._refs]) { + target.remove(item); + } + } + + return target.length ? target : null; + } + + remove(value) { + + // Reference + + if (Common.isResolvable(value)) { + this._refs.delete(value); + return; + } + + // Value + + this._values.delete(value); + + if (typeof value === 'string') { + this._lowercase.delete(value.toLowerCase()); + } + } + + has(value, state, prefs, insensitive) { + + return !!this.get(value, state, prefs, insensitive); + } + + get(value, state, prefs, insensitive) { + + if (!this.length) { + return false; + } + + // Simple match + + if (this._values.has(value)) { + return { value }; + } + + // Case insensitive string match + + if (typeof value === 'string' && + value && + insensitive) { + + const found = this._lowercase.get(value.toLowerCase()); + if (found) { + return { value: found }; + } + } + + if (!this._refs.size && + typeof value !== 'object') { + + return false; + } + + // Objects + + if (typeof value === 'object') { + for (const item of this._values) { + if (DeepEqual(item, value)) { + return { value: item }; + } + } + } + + // References + + if (state) { + for (const ref of this._refs) { + const resolved = ref.resolve(value, state, prefs, null, { in: true }); + if (resolved === undefined) { + continue; + } + + const items = !ref.in || typeof resolved !== 'object' + ? [resolved] + : Array.isArray(resolved) ? resolved : Object.keys(resolved); + + for (const item of items) { + if (typeof item !== typeof value) { + continue; + } + + if (insensitive && + value && + typeof value === 'string') { + + if (item.toLowerCase() === value.toLowerCase()) { + return { value: item, ref }; + } + } + else { + if (DeepEqual(item, value)) { + return { value: item, ref }; + } + } + } + } + } + + return false; + } + + override() { + + this._override = true; + } + + values(options) { + + if (options && + options.display) { + + const values = []; + + for (const item of [...this._values, ...this._refs]) { + if (item !== undefined) { + values.push(item); + } + } + + return values; + } + + return Array.from([...this._values, ...this._refs]); + } + + clone() { + + const set = new internals.Values(this._values, this._refs); + set._override = this._override; + return set; + } + + concat(source) { + + Assert(!source._override, 'Cannot concat override set of values'); + + const set = new internals.Values([...this._values, ...source._values], [...this._refs, ...source._refs]); + set._override = this._override; + return set; + } + + describe() { + + const normalized = []; + + if (this._override) { + normalized.push({ override: true }); + } + + for (const value of this._values.values()) { + normalized.push(value && typeof value === 'object' ? { value } : value); + } + + for (const value of this._refs.values()) { + normalized.push(value.describe()); + } + + return normalized; + } +}; + + +internals.Values.prototype[Common.symbols.values] = true; + + +// Aliases + +internals.Values.prototype.slice = internals.Values.prototype.clone; + + +// Helpers + +internals.lowercases = function (from) { + + const map = new Map(); + + if (from) { + for (const value of from) { + if (typeof value === 'string') { + map.set(value.toLowerCase(), value); + } + } + } + + return map; +}; diff --git a/node_modules/joi/package.json b/node_modules/joi/package.json new file mode 100755 index 0000000..d1f529e --- /dev/null +++ b/node_modules/joi/package.json @@ -0,0 +1,69 @@ +{ + "_from": "joi@^17.1.1", + "_id": "joi@17.3.0", + "_inBundle": false, + "_integrity": "sha512-Qh5gdU6niuYbUIUV5ejbsMiiFmBdw8Kcp8Buj2JntszCkCfxJ9Cz76OtHxOZMPXrt5810iDIXs+n1nNVoquHgg==", + "_location": "/joi", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "joi@^17.1.1", + "name": "joi", + "escapedName": "joi", + "rawSpec": "^17.1.1", + "saveSpec": null, + "fetchSpec": "^17.1.1" + }, + "_requiredBy": [ + "/wait-on" + ], + "_resolved": "https://registry.npmjs.org/joi/-/joi-17.3.0.tgz", + "_shasum": "f1be4a6ce29bc1716665819ac361dfa139fff5d2", + "_spec": "joi@^17.1.1", + "_where": "/home/wyrihaximus/Projects/WyriHaximus/github-action-helm3/node_modules/wait-on", + "browser": "dist/joi-browser.min.js", + "bugs": { + "url": "https://github.com/sideway/joi/issues" + }, + "bundleDependencies": false, + "dependencies": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.0", + "@sideway/formula": "^3.0.0", + "@sideway/pinpoint": "^2.0.0" + }, + "deprecated": false, + "description": "Object schema validation", + "devDependencies": { + "@hapi/bourne": "2.x.x", + "@hapi/code": "8.x.x", + "@hapi/joi-legacy-test": "npm:@hapi/joi@15.x.x", + "@hapi/lab": "24.x.x", + "typescript": "4.0.x" + }, + "files": [ + "lib/**/*", + "dist/*" + ], + "homepage": "https://github.com/sideway/joi#readme", + "keywords": [ + "schema", + "validation" + ], + "license": "BSD-3-Clause", + "main": "lib/index.js", + "name": "joi", + "repository": { + "type": "git", + "url": "git://github.com/sideway/joi.git" + }, + "scripts": { + "prepublishOnly": "cd browser && npm install && npm run build", + "test": "lab -t 100 -a @hapi/code -L -Y", + "test-cov-html": "lab -r html -o coverage.html -a @hapi/code" + }, + "types": "lib/index.d.ts", + "version": "17.3.0" +} diff --git a/node_modules/jsonfile/CHANGELOG.md b/node_modules/jsonfile/CHANGELOG.md new file mode 100644 index 0000000..7718857 --- /dev/null +++ b/node_modules/jsonfile/CHANGELOG.md @@ -0,0 +1,145 @@ +4.0.0 / 2017-07-12 +------------------ + +- **BREAKING:** Remove global `spaces` option. +- **BREAKING:** Drop support for Node 0.10, 0.12, and io.js. +- Remove undocumented `passParsingErrors` option. +- Added `EOL` override option to `writeFile` when using `spaces`. [#89] + +3.0.1 / 2017-07-05 +------------------ + +- Fixed bug in `writeFile` when there was a serialization error & no callback was passed. In previous versions, an empty file would be written; now no file is written. + +3.0.0 / 2017-04-25 +------------------ + +- Changed behavior of `throws` option for `readFileSync`; now does not throw filesystem errors when `throws` is `false` + +2.4.0 / 2016-09-15 +------------------ +### Changed +- added optional support for `graceful-fs` [#62] + +2.3.1 / 2016-05-13 +------------------ +- fix to support BOM. [#45][#45] + +2.3.0 / 2016-04-16 +------------------ +- add `throws` to `readFile()`. See [#39][#39] +- add support for any arbitrary `fs` module. Useful with [mock-fs](https://www.npmjs.com/package/mock-fs) + +2.2.3 / 2015-10-14 +------------------ +- include file name in parse error. See: https://github.com/jprichardson/node-jsonfile/pull/34 + +2.2.2 / 2015-09-16 +------------------ +- split out tests into separate files +- fixed `throws` when set to `true` in `readFileSync()`. See: https://github.com/jprichardson/node-jsonfile/pull/33 + +2.2.1 / 2015-06-25 +------------------ +- fixed regression when passing in string as encoding for options in `writeFile()` and `writeFileSync()`. See: https://github.com/jprichardson/node-jsonfile/issues/28 + +2.2.0 / 2015-06-25 +------------------ +- added `options.spaces` to `writeFile()` and `writeFileSync()` + +2.1.2 / 2015-06-22 +------------------ +- fixed if passed `readFileSync(file, 'utf8')`. See: https://github.com/jprichardson/node-jsonfile/issues/25 + +2.1.1 / 2015-06-19 +------------------ +- fixed regressions if `null` is passed for options. See: https://github.com/jprichardson/node-jsonfile/issues/24 + +2.1.0 / 2015-06-19 +------------------ +- cleanup: JavaScript Standard Style, rename files, dropped terst for assert +- methods now support JSON revivers/replacers + +2.0.1 / 2015-05-24 +------------------ +- update license attribute https://github.com/jprichardson/node-jsonfile/pull/21 + +2.0.0 / 2014-07-28 +------------------ +* added `\n` to end of file on write. [#14](https://github.com/jprichardson/node-jsonfile/pull/14) +* added `options.throws` to `readFileSync()` +* dropped support for Node v0.8 + +1.2.0 / 2014-06-29 +------------------ +* removed semicolons +* bugfix: passed `options` to `fs.readFile` and `fs.readFileSync`. This technically changes behavior, but +changes it according to docs. [#12][#12] + +1.1.1 / 2013-11-11 +------------------ +* fixed catching of callback bug (ffissore / #5) + +1.1.0 / 2013-10-11 +------------------ +* added `options` param to methods, (seanodell / #4) + +1.0.1 / 2013-09-05 +------------------ +* removed `homepage` field from package.json to remove NPM warning + +1.0.0 / 2013-06-28 +------------------ +* added `.npmignore`, #1 +* changed spacing default from `4` to `2` to follow Node conventions + +0.0.1 / 2012-09-10 +------------------ +* Initial release. + +[#89]: https://github.com/jprichardson/node-jsonfile/pull/89 +[#45]: https://github.com/jprichardson/node-jsonfile/issues/45 "Reading of UTF8-encoded (w/ BOM) files fails" +[#44]: https://github.com/jprichardson/node-jsonfile/issues/44 "Extra characters in written file" +[#43]: https://github.com/jprichardson/node-jsonfile/issues/43 "Prettyfy json when written to file" +[#42]: https://github.com/jprichardson/node-jsonfile/pull/42 "Moved fs.readFileSync within the try/catch" +[#41]: https://github.com/jprichardson/node-jsonfile/issues/41 "Linux: Hidden file not working" +[#40]: https://github.com/jprichardson/node-jsonfile/issues/40 "autocreate folder doesn't work from Path-value" +[#39]: https://github.com/jprichardson/node-jsonfile/pull/39 "Add `throws` option for readFile (async)" +[#38]: https://github.com/jprichardson/node-jsonfile/pull/38 "Update README.md writeFile[Sync] signature" +[#37]: https://github.com/jprichardson/node-jsonfile/pull/37 "support append file" +[#36]: https://github.com/jprichardson/node-jsonfile/pull/36 "Add typescript definition file." +[#35]: https://github.com/jprichardson/node-jsonfile/pull/35 "Add typescript definition file." +[#34]: https://github.com/jprichardson/node-jsonfile/pull/34 "readFile JSON parse error includes filename" +[#33]: https://github.com/jprichardson/node-jsonfile/pull/33 "fix throw->throws typo in readFileSync()" +[#32]: https://github.com/jprichardson/node-jsonfile/issues/32 "readFile & readFileSync can possible have strip-comments as an option?" +[#31]: https://github.com/jprichardson/node-jsonfile/pull/31 "[Modify] Support string include is unicode escape string" +[#30]: https://github.com/jprichardson/node-jsonfile/issues/30 "How to use Jsonfile package in Meteor.js App?" +[#29]: https://github.com/jprichardson/node-jsonfile/issues/29 "writefile callback if no error?" +[#28]: https://github.com/jprichardson/node-jsonfile/issues/28 "writeFile options argument broken " +[#27]: https://github.com/jprichardson/node-jsonfile/pull/27 "Use svg instead of png to get better image quality" +[#26]: https://github.com/jprichardson/node-jsonfile/issues/26 "Breaking change to fs-extra" +[#25]: https://github.com/jprichardson/node-jsonfile/issues/25 "support string encoding param for read methods" +[#24]: https://github.com/jprichardson/node-jsonfile/issues/24 "readFile: Passing in null options with a callback throws an error" +[#23]: https://github.com/jprichardson/node-jsonfile/pull/23 "Add appendFile and appendFileSync" +[#22]: https://github.com/jprichardson/node-jsonfile/issues/22 "Default value for spaces in readme.md is outdated" +[#21]: https://github.com/jprichardson/node-jsonfile/pull/21 "Update license attribute" +[#20]: https://github.com/jprichardson/node-jsonfile/issues/20 "Add simple caching functionallity" +[#19]: https://github.com/jprichardson/node-jsonfile/pull/19 "Add appendFileSync method" +[#18]: https://github.com/jprichardson/node-jsonfile/issues/18 "Add updateFile and updateFileSync methods" +[#17]: https://github.com/jprichardson/node-jsonfile/issues/17 "seem read & write sync has sequentially problem" +[#16]: https://github.com/jprichardson/node-jsonfile/pull/16 "export spaces defaulted to null" +[#15]: https://github.com/jprichardson/node-jsonfile/issues/15 "`jsonfile.spaces` should default to `null`" +[#14]: https://github.com/jprichardson/node-jsonfile/pull/14 "Add EOL at EOF" +[#13]: https://github.com/jprichardson/node-jsonfile/issues/13 "Add a final newline" +[#12]: https://github.com/jprichardson/node-jsonfile/issues/12 "readFile doesn't accept options" +[#11]: https://github.com/jprichardson/node-jsonfile/pull/11 "Added try,catch to readFileSync" +[#10]: https://github.com/jprichardson/node-jsonfile/issues/10 "No output or error from writeFile" +[#9]: https://github.com/jprichardson/node-jsonfile/pull/9 "Change 'js' to 'jf' in example." +[#8]: https://github.com/jprichardson/node-jsonfile/pull/8 "Updated forgotten module.exports to me." +[#7]: https://github.com/jprichardson/node-jsonfile/pull/7 "Add file name in error message" +[#6]: https://github.com/jprichardson/node-jsonfile/pull/6 "Use graceful-fs when possible" +[#5]: https://github.com/jprichardson/node-jsonfile/pull/5 "Jsonfile doesn't behave nicely when used inside a test suite." +[#4]: https://github.com/jprichardson/node-jsonfile/pull/4 "Added options parameter to writeFile and writeFileSync" +[#3]: https://github.com/jprichardson/node-jsonfile/issues/3 "test2" +[#2]: https://github.com/jprichardson/node-jsonfile/issues/2 "homepage field must be a string url. Deleted." +[#1]: https://github.com/jprichardson/node-jsonfile/pull/1 "adding an `.npmignore` file" diff --git a/node_modules/jsonfile/LICENSE b/node_modules/jsonfile/LICENSE new file mode 100644 index 0000000..cb7e807 --- /dev/null +++ b/node_modules/jsonfile/LICENSE @@ -0,0 +1,15 @@ +(The MIT License) + +Copyright (c) 2012-2015, JP Richardson + +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/jsonfile/README.md b/node_modules/jsonfile/README.md new file mode 100644 index 0000000..721685c --- /dev/null +++ b/node_modules/jsonfile/README.md @@ -0,0 +1,168 @@ +Node.js - jsonfile +================ + +Easily read/write JSON files. + +[![npm Package](https://img.shields.io/npm/v/jsonfile.svg?style=flat-square)](https://www.npmjs.org/package/jsonfile) +[![build status](https://secure.travis-ci.org/jprichardson/node-jsonfile.svg)](http://travis-ci.org/jprichardson/node-jsonfile) +[![windows Build status](https://img.shields.io/appveyor/ci/jprichardson/node-jsonfile/master.svg?label=windows%20build)](https://ci.appveyor.com/project/jprichardson/node-jsonfile/branch/master) + +Standard JavaScript + +Why? +---- + +Writing `JSON.stringify()` and then `fs.writeFile()` and `JSON.parse()` with `fs.readFile()` enclosed in `try/catch` blocks became annoying. + + + +Installation +------------ + + npm install --save jsonfile + + + +API +--- + +### readFile(filename, [options], callback) + +`options` (`object`, default `undefined`): Pass in any `fs.readFile` options or set `reviver` for a [JSON reviver](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse). + - `throws` (`boolean`, default: `true`). If `JSON.parse` throws an error, pass this error to the callback. + If `false`, returns `null` for the object. + + +```js +var jsonfile = require('jsonfile') +var file = '/tmp/data.json' +jsonfile.readFile(file, function(err, obj) { + console.dir(obj) +}) +``` + + +### readFileSync(filename, [options]) + +`options` (`object`, default `undefined`): Pass in any `fs.readFileSync` options or set `reviver` for a [JSON reviver](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse). +- `throws` (`boolean`, default: `true`). If an error is encountered reading or parsing the file, throw the error. If `false`, returns `null` for the object. + +```js +var jsonfile = require('jsonfile') +var file = '/tmp/data.json' + +console.dir(jsonfile.readFileSync(file)) +``` + + +### writeFile(filename, obj, [options], callback) + +`options`: Pass in any `fs.writeFile` options or set `replacer` for a [JSON replacer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify). Can also pass in `spaces` and override `EOL` string. + + +```js +var jsonfile = require('jsonfile') + +var file = '/tmp/data.json' +var obj = {name: 'JP'} + +jsonfile.writeFile(file, obj, function (err) { + console.error(err) +}) +``` + +**formatting with spaces:** + +```js +var jsonfile = require('jsonfile') + +var file = '/tmp/data.json' +var obj = {name: 'JP'} + +jsonfile.writeFile(file, obj, {spaces: 2}, function(err) { + console.error(err) +}) +``` + +**overriding EOL:** + +```js +var jsonfile = require('jsonfile') + +var file = '/tmp/data.json' +var obj = {name: 'JP'} + +jsonfile.writeFile(file, obj, {spaces: 2, EOL: '\r\n'}, function(err) { + console.error(err) +}) +``` + +**appending to an existing JSON file:** + +You can use `fs.writeFile` option `{flag: 'a'}` to achieve this. + +```js +var jsonfile = require('jsonfile') + +var file = '/tmp/mayAlreadyExistedData.json' +var obj = {name: 'JP'} + +jsonfile.writeFile(file, obj, {flag: 'a'}, function (err) { + console.error(err) +}) +``` + +### writeFileSync(filename, obj, [options]) + +`options`: Pass in any `fs.writeFileSync` options or set `replacer` for a [JSON replacer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify). Can also pass in `spaces` and override `EOL` string. + +```js +var jsonfile = require('jsonfile') + +var file = '/tmp/data.json' +var obj = {name: 'JP'} + +jsonfile.writeFileSync(file, obj) +``` + +**formatting with spaces:** + +```js +var jsonfile = require('jsonfile') + +var file = '/tmp/data.json' +var obj = {name: 'JP'} + +jsonfile.writeFileSync(file, obj, {spaces: 2}) +``` + +**overriding EOL:** + +```js +var jsonfile = require('jsonfile') + +var file = '/tmp/data.json' +var obj = {name: 'JP'} + +jsonfile.writeFileSync(file, obj, {spaces: 2, EOL: '\r\n'}) +``` + +**appending to an existing JSON file:** + +You can use `fs.writeFileSync` option `{flag: 'a'}` to achieve this. + +```js +var jsonfile = require('jsonfile') + +var file = '/tmp/mayAlreadyExistedData.json' +var obj = {name: 'JP'} + +jsonfile.writeFileSync(file, obj, {flag: 'a'}) +``` + +License +------- + +(MIT License) + +Copyright 2012-2016, JP Richardson diff --git a/node_modules/jsonfile/index.js b/node_modules/jsonfile/index.js new file mode 100644 index 0000000..d1e5827 --- /dev/null +++ b/node_modules/jsonfile/index.js @@ -0,0 +1,134 @@ +var _fs +try { + _fs = require('graceful-fs') +} catch (_) { + _fs = require('fs') +} + +function readFile (file, options, callback) { + if (callback == null) { + callback = options + options = {} + } + + if (typeof options === 'string') { + options = {encoding: options} + } + + options = options || {} + var fs = options.fs || _fs + + var shouldThrow = true + if ('throws' in options) { + shouldThrow = options.throws + } + + fs.readFile(file, options, function (err, data) { + if (err) return callback(err) + + data = stripBom(data) + + var obj + try { + obj = JSON.parse(data, options ? options.reviver : null) + } catch (err2) { + if (shouldThrow) { + err2.message = file + ': ' + err2.message + return callback(err2) + } else { + return callback(null, null) + } + } + + callback(null, obj) + }) +} + +function readFileSync (file, options) { + options = options || {} + if (typeof options === 'string') { + options = {encoding: options} + } + + var fs = options.fs || _fs + + var shouldThrow = true + if ('throws' in options) { + shouldThrow = options.throws + } + + try { + var content = fs.readFileSync(file, options) + content = stripBom(content) + return JSON.parse(content, options.reviver) + } catch (err) { + if (shouldThrow) { + err.message = file + ': ' + err.message + throw err + } else { + return null + } + } +} + +function stringify (obj, options) { + var spaces + var EOL = '\n' + if (typeof options === 'object' && options !== null) { + if (options.spaces) { + spaces = options.spaces + } + if (options.EOL) { + EOL = options.EOL + } + } + + var str = JSON.stringify(obj, options ? options.replacer : null, spaces) + + return str.replace(/\n/g, EOL) + EOL +} + +function writeFile (file, obj, options, callback) { + if (callback == null) { + callback = options + options = {} + } + options = options || {} + var fs = options.fs || _fs + + var str = '' + try { + str = stringify(obj, options) + } catch (err) { + // Need to return whether a callback was passed or not + if (callback) callback(err, null) + return + } + + fs.writeFile(file, str, options, callback) +} + +function writeFileSync (file, obj, options) { + options = options || {} + var fs = options.fs || _fs + + var str = stringify(obj, options) + // not sure if fs.writeFileSync returns anything, but just in case + return fs.writeFileSync(file, str, options) +} + +function stripBom (content) { + // we do this because JSON.parse would convert it to a utf8 string if encoding wasn't specified + if (Buffer.isBuffer(content)) content = content.toString('utf8') + content = content.replace(/^\uFEFF/, '') + return content +} + +var jsonfile = { + readFile: readFile, + readFileSync: readFileSync, + writeFile: writeFile, + writeFileSync: writeFileSync +} + +module.exports = jsonfile diff --git a/node_modules/jsonfile/package.json b/node_modules/jsonfile/package.json new file mode 100644 index 0000000..691a04c --- /dev/null +++ b/node_modules/jsonfile/package.json @@ -0,0 +1,71 @@ +{ + "_from": "jsonfile@^4.0.0", + "_id": "jsonfile@4.0.0", + "_inBundle": false, + "_integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "_location": "/jsonfile", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "jsonfile@^4.0.0", + "name": "jsonfile", + "escapedName": "jsonfile", + "rawSpec": "^4.0.0", + "saveSpec": null, + "fetchSpec": "^4.0.0" + }, + "_requiredBy": [ + "/fs-extra" + ], + "_resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "_shasum": "8771aae0799b64076b76640fca058f9c10e33ecb", + "_spec": "jsonfile@^4.0.0", + "_where": "/home/wyrihaximus/Projects/WyriHaximus/github-action-helm3/node_modules/fs-extra", + "author": { + "name": "JP Richardson", + "email": "jprichardson@gmail.com" + }, + "bugs": { + "url": "https://github.com/jprichardson/node-jsonfile/issues" + }, + "bundleDependencies": false, + "dependencies": { + "graceful-fs": "^4.1.6" + }, + "deprecated": false, + "description": "Easily read/write JSON files.", + "devDependencies": { + "mocha": "2.x", + "rimraf": "^2.4.0", + "standard": "^10.0.3" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jprichardson/node-jsonfile#readme", + "keywords": [ + "read", + "write", + "file", + "json", + "fs", + "fs-extra" + ], + "license": "MIT", + "main": "index.js", + "name": "jsonfile", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + }, + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/jprichardson/node-jsonfile.git" + }, + "scripts": { + "lint": "standard", + "test": "npm run lint && npm run unit", + "unit": "mocha" + }, + "version": "4.0.0" +} diff --git a/node_modules/lodash/LICENSE b/node_modules/lodash/LICENSE new file mode 100644 index 0000000..77c42f1 --- /dev/null +++ b/node_modules/lodash/LICENSE @@ -0,0 +1,47 @@ +Copyright OpenJS Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +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. + +==== + +Copyright and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. diff --git a/node_modules/lodash/README.md b/node_modules/lodash/README.md new file mode 100644 index 0000000..e1c9950 --- /dev/null +++ b/node_modules/lodash/README.md @@ -0,0 +1,39 @@ +# lodash v4.17.20 + +The [Lodash](https://lodash.com/) library exported as [Node.js](https://nodejs.org/) modules. + +## Installation + +Using npm: +```shell +$ npm i -g npm +$ npm i --save lodash +``` + +In Node.js: +```js +// Load the full build. +var _ = require('lodash'); +// Load the core build. +var _ = require('lodash/core'); +// Load the FP build for immutable auto-curried iteratee-first data-last methods. +var fp = require('lodash/fp'); + +// Load method categories. +var array = require('lodash/array'); +var object = require('lodash/fp/object'); + +// Cherry-pick methods for smaller browserify/rollup/webpack bundles. +var at = require('lodash/at'); +var curryN = require('lodash/fp/curryN'); +``` + +See the [package source](https://github.com/lodash/lodash/tree/4.17.20-npm) for more details. + +**Note:**
+Install [n_](https://www.npmjs.com/package/n_) for Lodash use in the Node.js < 6 REPL. + +## Support + +Tested in Chrome 74-75, Firefox 66-67, IE 11, Edge 18, Safari 11-12, & Node.js 8-12.
+Automated [browser](https://saucelabs.com/u/lodash) & [CI](https://travis-ci.org/lodash/lodash/) test runs are available. diff --git a/node_modules/lodash/_DataView.js b/node_modules/lodash/_DataView.js new file mode 100644 index 0000000..ac2d57c --- /dev/null +++ b/node_modules/lodash/_DataView.js @@ -0,0 +1,7 @@ +var getNative = require('./_getNative'), + root = require('./_root'); + +/* Built-in method references that are verified to be native. */ +var DataView = getNative(root, 'DataView'); + +module.exports = DataView; diff --git a/node_modules/lodash/_Hash.js b/node_modules/lodash/_Hash.js new file mode 100644 index 0000000..b504fe3 --- /dev/null +++ b/node_modules/lodash/_Hash.js @@ -0,0 +1,32 @@ +var hashClear = require('./_hashClear'), + hashDelete = require('./_hashDelete'), + hashGet = require('./_hashGet'), + hashHas = require('./_hashHas'), + hashSet = require('./_hashSet'); + +/** + * Creates a hash object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function Hash(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +// Add methods to `Hash`. +Hash.prototype.clear = hashClear; +Hash.prototype['delete'] = hashDelete; +Hash.prototype.get = hashGet; +Hash.prototype.has = hashHas; +Hash.prototype.set = hashSet; + +module.exports = Hash; diff --git a/node_modules/lodash/_LazyWrapper.js b/node_modules/lodash/_LazyWrapper.js new file mode 100644 index 0000000..81786c7 --- /dev/null +++ b/node_modules/lodash/_LazyWrapper.js @@ -0,0 +1,28 @@ +var baseCreate = require('./_baseCreate'), + baseLodash = require('./_baseLodash'); + +/** Used as references for the maximum length and index of an array. */ +var MAX_ARRAY_LENGTH = 4294967295; + +/** + * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation. + * + * @private + * @constructor + * @param {*} value The value to wrap. + */ +function LazyWrapper(value) { + this.__wrapped__ = value; + this.__actions__ = []; + this.__dir__ = 1; + this.__filtered__ = false; + this.__iteratees__ = []; + this.__takeCount__ = MAX_ARRAY_LENGTH; + this.__views__ = []; +} + +// Ensure `LazyWrapper` is an instance of `baseLodash`. +LazyWrapper.prototype = baseCreate(baseLodash.prototype); +LazyWrapper.prototype.constructor = LazyWrapper; + +module.exports = LazyWrapper; diff --git a/node_modules/lodash/_ListCache.js b/node_modules/lodash/_ListCache.js new file mode 100644 index 0000000..26895c3 --- /dev/null +++ b/node_modules/lodash/_ListCache.js @@ -0,0 +1,32 @@ +var listCacheClear = require('./_listCacheClear'), + listCacheDelete = require('./_listCacheDelete'), + listCacheGet = require('./_listCacheGet'), + listCacheHas = require('./_listCacheHas'), + listCacheSet = require('./_listCacheSet'); + +/** + * Creates an list cache object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function ListCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +// Add methods to `ListCache`. +ListCache.prototype.clear = listCacheClear; +ListCache.prototype['delete'] = listCacheDelete; +ListCache.prototype.get = listCacheGet; +ListCache.prototype.has = listCacheHas; +ListCache.prototype.set = listCacheSet; + +module.exports = ListCache; diff --git a/node_modules/lodash/_LodashWrapper.js b/node_modules/lodash/_LodashWrapper.js new file mode 100644 index 0000000..c1e4d9d --- /dev/null +++ b/node_modules/lodash/_LodashWrapper.js @@ -0,0 +1,22 @@ +var baseCreate = require('./_baseCreate'), + baseLodash = require('./_baseLodash'); + +/** + * The base constructor for creating `lodash` wrapper objects. + * + * @private + * @param {*} value The value to wrap. + * @param {boolean} [chainAll] Enable explicit method chain sequences. + */ +function LodashWrapper(value, chainAll) { + this.__wrapped__ = value; + this.__actions__ = []; + this.__chain__ = !!chainAll; + this.__index__ = 0; + this.__values__ = undefined; +} + +LodashWrapper.prototype = baseCreate(baseLodash.prototype); +LodashWrapper.prototype.constructor = LodashWrapper; + +module.exports = LodashWrapper; diff --git a/node_modules/lodash/_Map.js b/node_modules/lodash/_Map.js new file mode 100644 index 0000000..b73f29a --- /dev/null +++ b/node_modules/lodash/_Map.js @@ -0,0 +1,7 @@ +var getNative = require('./_getNative'), + root = require('./_root'); + +/* Built-in method references that are verified to be native. */ +var Map = getNative(root, 'Map'); + +module.exports = Map; diff --git a/node_modules/lodash/_MapCache.js b/node_modules/lodash/_MapCache.js new file mode 100644 index 0000000..4a4eea7 --- /dev/null +++ b/node_modules/lodash/_MapCache.js @@ -0,0 +1,32 @@ +var mapCacheClear = require('./_mapCacheClear'), + mapCacheDelete = require('./_mapCacheDelete'), + mapCacheGet = require('./_mapCacheGet'), + mapCacheHas = require('./_mapCacheHas'), + mapCacheSet = require('./_mapCacheSet'); + +/** + * Creates a map cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function MapCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +// Add methods to `MapCache`. +MapCache.prototype.clear = mapCacheClear; +MapCache.prototype['delete'] = mapCacheDelete; +MapCache.prototype.get = mapCacheGet; +MapCache.prototype.has = mapCacheHas; +MapCache.prototype.set = mapCacheSet; + +module.exports = MapCache; diff --git a/node_modules/lodash/_Promise.js b/node_modules/lodash/_Promise.js new file mode 100644 index 0000000..247b9e1 --- /dev/null +++ b/node_modules/lodash/_Promise.js @@ -0,0 +1,7 @@ +var getNative = require('./_getNative'), + root = require('./_root'); + +/* Built-in method references that are verified to be native. */ +var Promise = getNative(root, 'Promise'); + +module.exports = Promise; diff --git a/node_modules/lodash/_Set.js b/node_modules/lodash/_Set.js new file mode 100644 index 0000000..b3c8dcb --- /dev/null +++ b/node_modules/lodash/_Set.js @@ -0,0 +1,7 @@ +var getNative = require('./_getNative'), + root = require('./_root'); + +/* Built-in method references that are verified to be native. */ +var Set = getNative(root, 'Set'); + +module.exports = Set; diff --git a/node_modules/lodash/_SetCache.js b/node_modules/lodash/_SetCache.js new file mode 100644 index 0000000..6468b06 --- /dev/null +++ b/node_modules/lodash/_SetCache.js @@ -0,0 +1,27 @@ +var MapCache = require('./_MapCache'), + setCacheAdd = require('./_setCacheAdd'), + setCacheHas = require('./_setCacheHas'); + +/** + * + * Creates an array cache object to store unique values. + * + * @private + * @constructor + * @param {Array} [values] The values to cache. + */ +function SetCache(values) { + var index = -1, + length = values == null ? 0 : values.length; + + this.__data__ = new MapCache; + while (++index < length) { + this.add(values[index]); + } +} + +// Add methods to `SetCache`. +SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; +SetCache.prototype.has = setCacheHas; + +module.exports = SetCache; diff --git a/node_modules/lodash/_Stack.js b/node_modules/lodash/_Stack.js new file mode 100644 index 0000000..80b2cf1 --- /dev/null +++ b/node_modules/lodash/_Stack.js @@ -0,0 +1,27 @@ +var ListCache = require('./_ListCache'), + stackClear = require('./_stackClear'), + stackDelete = require('./_stackDelete'), + stackGet = require('./_stackGet'), + stackHas = require('./_stackHas'), + stackSet = require('./_stackSet'); + +/** + * Creates a stack cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function Stack(entries) { + var data = this.__data__ = new ListCache(entries); + this.size = data.size; +} + +// Add methods to `Stack`. +Stack.prototype.clear = stackClear; +Stack.prototype['delete'] = stackDelete; +Stack.prototype.get = stackGet; +Stack.prototype.has = stackHas; +Stack.prototype.set = stackSet; + +module.exports = Stack; diff --git a/node_modules/lodash/_Symbol.js b/node_modules/lodash/_Symbol.js new file mode 100644 index 0000000..a013f7c --- /dev/null +++ b/node_modules/lodash/_Symbol.js @@ -0,0 +1,6 @@ +var root = require('./_root'); + +/** Built-in value references. */ +var Symbol = root.Symbol; + +module.exports = Symbol; diff --git a/node_modules/lodash/_Uint8Array.js b/node_modules/lodash/_Uint8Array.js new file mode 100644 index 0000000..2fb30e1 --- /dev/null +++ b/node_modules/lodash/_Uint8Array.js @@ -0,0 +1,6 @@ +var root = require('./_root'); + +/** Built-in value references. */ +var Uint8Array = root.Uint8Array; + +module.exports = Uint8Array; diff --git a/node_modules/lodash/_WeakMap.js b/node_modules/lodash/_WeakMap.js new file mode 100644 index 0000000..567f86c --- /dev/null +++ b/node_modules/lodash/_WeakMap.js @@ -0,0 +1,7 @@ +var getNative = require('./_getNative'), + root = require('./_root'); + +/* Built-in method references that are verified to be native. */ +var WeakMap = getNative(root, 'WeakMap'); + +module.exports = WeakMap; diff --git a/node_modules/lodash/_apply.js b/node_modules/lodash/_apply.js new file mode 100644 index 0000000..36436dd --- /dev/null +++ b/node_modules/lodash/_apply.js @@ -0,0 +1,21 @@ +/** + * A faster alternative to `Function#apply`, this function invokes `func` + * with the `this` binding of `thisArg` and the arguments of `args`. + * + * @private + * @param {Function} func The function to invoke. + * @param {*} thisArg The `this` binding of `func`. + * @param {Array} args The arguments to invoke `func` with. + * @returns {*} Returns the result of `func`. + */ +function apply(func, thisArg, args) { + switch (args.length) { + case 0: return func.call(thisArg); + case 1: return func.call(thisArg, args[0]); + case 2: return func.call(thisArg, args[0], args[1]); + case 3: return func.call(thisArg, args[0], args[1], args[2]); + } + return func.apply(thisArg, args); +} + +module.exports = apply; diff --git a/node_modules/lodash/_arrayAggregator.js b/node_modules/lodash/_arrayAggregator.js new file mode 100644 index 0000000..d96c3ca --- /dev/null +++ b/node_modules/lodash/_arrayAggregator.js @@ -0,0 +1,22 @@ +/** + * A specialized version of `baseAggregator` for arrays. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} setter The function to set `accumulator` values. + * @param {Function} iteratee The iteratee to transform keys. + * @param {Object} accumulator The initial aggregated object. + * @returns {Function} Returns `accumulator`. + */ +function arrayAggregator(array, setter, iteratee, accumulator) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + var value = array[index]; + setter(accumulator, value, iteratee(value), array); + } + return accumulator; +} + +module.exports = arrayAggregator; diff --git a/node_modules/lodash/_arrayEach.js b/node_modules/lodash/_arrayEach.js new file mode 100644 index 0000000..2c5f579 --- /dev/null +++ b/node_modules/lodash/_arrayEach.js @@ -0,0 +1,22 @@ +/** + * A specialized version of `_.forEach` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns `array`. + */ +function arrayEach(array, iteratee) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (iteratee(array[index], index, array) === false) { + break; + } + } + return array; +} + +module.exports = arrayEach; diff --git a/node_modules/lodash/_arrayEachRight.js b/node_modules/lodash/_arrayEachRight.js new file mode 100644 index 0000000..976ca5c --- /dev/null +++ b/node_modules/lodash/_arrayEachRight.js @@ -0,0 +1,21 @@ +/** + * A specialized version of `_.forEachRight` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns `array`. + */ +function arrayEachRight(array, iteratee) { + var length = array == null ? 0 : array.length; + + while (length--) { + if (iteratee(array[length], length, array) === false) { + break; + } + } + return array; +} + +module.exports = arrayEachRight; diff --git a/node_modules/lodash/_arrayEvery.js b/node_modules/lodash/_arrayEvery.js new file mode 100644 index 0000000..e26a918 --- /dev/null +++ b/node_modules/lodash/_arrayEvery.js @@ -0,0 +1,23 @@ +/** + * A specialized version of `_.every` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if all elements pass the predicate check, + * else `false`. + */ +function arrayEvery(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (!predicate(array[index], index, array)) { + return false; + } + } + return true; +} + +module.exports = arrayEvery; diff --git a/node_modules/lodash/_arrayFilter.js b/node_modules/lodash/_arrayFilter.js new file mode 100644 index 0000000..75ea254 --- /dev/null +++ b/node_modules/lodash/_arrayFilter.js @@ -0,0 +1,25 @@ +/** + * A specialized version of `_.filter` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + */ +function arrayFilter(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length, + resIndex = 0, + result = []; + + while (++index < length) { + var value = array[index]; + if (predicate(value, index, array)) { + result[resIndex++] = value; + } + } + return result; +} + +module.exports = arrayFilter; diff --git a/node_modules/lodash/_arrayIncludes.js b/node_modules/lodash/_arrayIncludes.js new file mode 100644 index 0000000..3737a6d --- /dev/null +++ b/node_modules/lodash/_arrayIncludes.js @@ -0,0 +1,17 @@ +var baseIndexOf = require('./_baseIndexOf'); + +/** + * A specialized version of `_.includes` for arrays without support for + * specifying an index to search from. + * + * @private + * @param {Array} [array] The array to inspect. + * @param {*} target The value to search for. + * @returns {boolean} Returns `true` if `target` is found, else `false`. + */ +function arrayIncludes(array, value) { + var length = array == null ? 0 : array.length; + return !!length && baseIndexOf(array, value, 0) > -1; +} + +module.exports = arrayIncludes; diff --git a/node_modules/lodash/_arrayIncludesWith.js b/node_modules/lodash/_arrayIncludesWith.js new file mode 100644 index 0000000..235fd97 --- /dev/null +++ b/node_modules/lodash/_arrayIncludesWith.js @@ -0,0 +1,22 @@ +/** + * This function is like `arrayIncludes` except that it accepts a comparator. + * + * @private + * @param {Array} [array] The array to inspect. + * @param {*} target The value to search for. + * @param {Function} comparator The comparator invoked per element. + * @returns {boolean} Returns `true` if `target` is found, else `false`. + */ +function arrayIncludesWith(array, value, comparator) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (comparator(value, array[index])) { + return true; + } + } + return false; +} + +module.exports = arrayIncludesWith; diff --git a/node_modules/lodash/_arrayLikeKeys.js b/node_modules/lodash/_arrayLikeKeys.js new file mode 100644 index 0000000..b2ec9ce --- /dev/null +++ b/node_modules/lodash/_arrayLikeKeys.js @@ -0,0 +1,49 @@ +var baseTimes = require('./_baseTimes'), + isArguments = require('./isArguments'), + isArray = require('./isArray'), + isBuffer = require('./isBuffer'), + isIndex = require('./_isIndex'), + isTypedArray = require('./isTypedArray'); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Creates an array of the enumerable property names of the array-like `value`. + * + * @private + * @param {*} value The value to query. + * @param {boolean} inherited Specify returning inherited property names. + * @returns {Array} Returns the array of property names. + */ +function arrayLikeKeys(value, inherited) { + var isArr = isArray(value), + isArg = !isArr && isArguments(value), + isBuff = !isArr && !isArg && isBuffer(value), + isType = !isArr && !isArg && !isBuff && isTypedArray(value), + skipIndexes = isArr || isArg || isBuff || isType, + result = skipIndexes ? baseTimes(value.length, String) : [], + length = result.length; + + for (var key in value) { + if ((inherited || hasOwnProperty.call(value, key)) && + !(skipIndexes && ( + // Safari 9 has enumerable `arguments.length` in strict mode. + key == 'length' || + // Node.js 0.10 has enumerable non-index properties on buffers. + (isBuff && (key == 'offset' || key == 'parent')) || + // PhantomJS 2 has enumerable non-index properties on typed arrays. + (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || + // Skip index properties. + isIndex(key, length) + ))) { + result.push(key); + } + } + return result; +} + +module.exports = arrayLikeKeys; diff --git a/node_modules/lodash/_arrayMap.js b/node_modules/lodash/_arrayMap.js new file mode 100644 index 0000000..22b2246 --- /dev/null +++ b/node_modules/lodash/_arrayMap.js @@ -0,0 +1,21 @@ +/** + * A specialized version of `_.map` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ +function arrayMap(array, iteratee) { + var index = -1, + length = array == null ? 0 : array.length, + result = Array(length); + + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; +} + +module.exports = arrayMap; diff --git a/node_modules/lodash/_arrayPush.js b/node_modules/lodash/_arrayPush.js new file mode 100644 index 0000000..7d742b3 --- /dev/null +++ b/node_modules/lodash/_arrayPush.js @@ -0,0 +1,20 @@ +/** + * Appends the elements of `values` to `array`. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to append. + * @returns {Array} Returns `array`. + */ +function arrayPush(array, values) { + var index = -1, + length = values.length, + offset = array.length; + + while (++index < length) { + array[offset + index] = values[index]; + } + return array; +} + +module.exports = arrayPush; diff --git a/node_modules/lodash/_arrayReduce.js b/node_modules/lodash/_arrayReduce.js new file mode 100644 index 0000000..de8b79b --- /dev/null +++ b/node_modules/lodash/_arrayReduce.js @@ -0,0 +1,26 @@ +/** + * A specialized version of `_.reduce` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {*} [accumulator] The initial value. + * @param {boolean} [initAccum] Specify using the first element of `array` as + * the initial value. + * @returns {*} Returns the accumulated value. + */ +function arrayReduce(array, iteratee, accumulator, initAccum) { + var index = -1, + length = array == null ? 0 : array.length; + + if (initAccum && length) { + accumulator = array[++index]; + } + while (++index < length) { + accumulator = iteratee(accumulator, array[index], index, array); + } + return accumulator; +} + +module.exports = arrayReduce; diff --git a/node_modules/lodash/_arrayReduceRight.js b/node_modules/lodash/_arrayReduceRight.js new file mode 100644 index 0000000..22d8976 --- /dev/null +++ b/node_modules/lodash/_arrayReduceRight.js @@ -0,0 +1,24 @@ +/** + * A specialized version of `_.reduceRight` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {*} [accumulator] The initial value. + * @param {boolean} [initAccum] Specify using the last element of `array` as + * the initial value. + * @returns {*} Returns the accumulated value. + */ +function arrayReduceRight(array, iteratee, accumulator, initAccum) { + var length = array == null ? 0 : array.length; + if (initAccum && length) { + accumulator = array[--length]; + } + while (length--) { + accumulator = iteratee(accumulator, array[length], length, array); + } + return accumulator; +} + +module.exports = arrayReduceRight; diff --git a/node_modules/lodash/_arraySample.js b/node_modules/lodash/_arraySample.js new file mode 100644 index 0000000..fcab010 --- /dev/null +++ b/node_modules/lodash/_arraySample.js @@ -0,0 +1,15 @@ +var baseRandom = require('./_baseRandom'); + +/** + * A specialized version of `_.sample` for arrays. + * + * @private + * @param {Array} array The array to sample. + * @returns {*} Returns the random element. + */ +function arraySample(array) { + var length = array.length; + return length ? array[baseRandom(0, length - 1)] : undefined; +} + +module.exports = arraySample; diff --git a/node_modules/lodash/_arraySampleSize.js b/node_modules/lodash/_arraySampleSize.js new file mode 100644 index 0000000..8c7e364 --- /dev/null +++ b/node_modules/lodash/_arraySampleSize.js @@ -0,0 +1,17 @@ +var baseClamp = require('./_baseClamp'), + copyArray = require('./_copyArray'), + shuffleSelf = require('./_shuffleSelf'); + +/** + * A specialized version of `_.sampleSize` for arrays. + * + * @private + * @param {Array} array The array to sample. + * @param {number} n The number of elements to sample. + * @returns {Array} Returns the random elements. + */ +function arraySampleSize(array, n) { + return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length)); +} + +module.exports = arraySampleSize; diff --git a/node_modules/lodash/_arrayShuffle.js b/node_modules/lodash/_arrayShuffle.js new file mode 100644 index 0000000..46313a3 --- /dev/null +++ b/node_modules/lodash/_arrayShuffle.js @@ -0,0 +1,15 @@ +var copyArray = require('./_copyArray'), + shuffleSelf = require('./_shuffleSelf'); + +/** + * A specialized version of `_.shuffle` for arrays. + * + * @private + * @param {Array} array The array to shuffle. + * @returns {Array} Returns the new shuffled array. + */ +function arrayShuffle(array) { + return shuffleSelf(copyArray(array)); +} + +module.exports = arrayShuffle; diff --git a/node_modules/lodash/_arraySome.js b/node_modules/lodash/_arraySome.js new file mode 100644 index 0000000..6fd02fd --- /dev/null +++ b/node_modules/lodash/_arraySome.js @@ -0,0 +1,23 @@ +/** + * A specialized version of `_.some` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ +function arraySome(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (predicate(array[index], index, array)) { + return true; + } + } + return false; +} + +module.exports = arraySome; diff --git a/node_modules/lodash/_asciiSize.js b/node_modules/lodash/_asciiSize.js new file mode 100644 index 0000000..11d29c3 --- /dev/null +++ b/node_modules/lodash/_asciiSize.js @@ -0,0 +1,12 @@ +var baseProperty = require('./_baseProperty'); + +/** + * Gets the size of an ASCII `string`. + * + * @private + * @param {string} string The string inspect. + * @returns {number} Returns the string size. + */ +var asciiSize = baseProperty('length'); + +module.exports = asciiSize; diff --git a/node_modules/lodash/_asciiToArray.js b/node_modules/lodash/_asciiToArray.js new file mode 100644 index 0000000..8e3dd5b --- /dev/null +++ b/node_modules/lodash/_asciiToArray.js @@ -0,0 +1,12 @@ +/** + * Converts an ASCII `string` to an array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the converted array. + */ +function asciiToArray(string) { + return string.split(''); +} + +module.exports = asciiToArray; diff --git a/node_modules/lodash/_asciiWords.js b/node_modules/lodash/_asciiWords.js new file mode 100644 index 0000000..d765f0f --- /dev/null +++ b/node_modules/lodash/_asciiWords.js @@ -0,0 +1,15 @@ +/** Used to match words composed of alphanumeric characters. */ +var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g; + +/** + * Splits an ASCII `string` into an array of its words. + * + * @private + * @param {string} The string to inspect. + * @returns {Array} Returns the words of `string`. + */ +function asciiWords(string) { + return string.match(reAsciiWord) || []; +} + +module.exports = asciiWords; diff --git a/node_modules/lodash/_assignMergeValue.js b/node_modules/lodash/_assignMergeValue.js new file mode 100644 index 0000000..cb1185e --- /dev/null +++ b/node_modules/lodash/_assignMergeValue.js @@ -0,0 +1,20 @@ +var baseAssignValue = require('./_baseAssignValue'), + eq = require('./eq'); + +/** + * This function is like `assignValue` except that it doesn't assign + * `undefined` values. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ +function assignMergeValue(object, key, value) { + if ((value !== undefined && !eq(object[key], value)) || + (value === undefined && !(key in object))) { + baseAssignValue(object, key, value); + } +} + +module.exports = assignMergeValue; diff --git a/node_modules/lodash/_assignValue.js b/node_modules/lodash/_assignValue.js new file mode 100644 index 0000000..4083957 --- /dev/null +++ b/node_modules/lodash/_assignValue.js @@ -0,0 +1,28 @@ +var baseAssignValue = require('./_baseAssignValue'), + eq = require('./eq'); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Assigns `value` to `key` of `object` if the existing value is not equivalent + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ +function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || + (value === undefined && !(key in object))) { + baseAssignValue(object, key, value); + } +} + +module.exports = assignValue; diff --git a/node_modules/lodash/_assocIndexOf.js b/node_modules/lodash/_assocIndexOf.js new file mode 100644 index 0000000..5b77a2b --- /dev/null +++ b/node_modules/lodash/_assocIndexOf.js @@ -0,0 +1,21 @@ +var eq = require('./eq'); + +/** + * Gets the index at which the `key` is found in `array` of key-value pairs. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} key The key to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function assocIndexOf(array, key) { + var length = array.length; + while (length--) { + if (eq(array[length][0], key)) { + return length; + } + } + return -1; +} + +module.exports = assocIndexOf; diff --git a/node_modules/lodash/_baseAggregator.js b/node_modules/lodash/_baseAggregator.js new file mode 100644 index 0000000..4bc9e91 --- /dev/null +++ b/node_modules/lodash/_baseAggregator.js @@ -0,0 +1,21 @@ +var baseEach = require('./_baseEach'); + +/** + * Aggregates elements of `collection` on `accumulator` with keys transformed + * by `iteratee` and values set by `setter`. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} setter The function to set `accumulator` values. + * @param {Function} iteratee The iteratee to transform keys. + * @param {Object} accumulator The initial aggregated object. + * @returns {Function} Returns `accumulator`. + */ +function baseAggregator(collection, setter, iteratee, accumulator) { + baseEach(collection, function(value, key, collection) { + setter(accumulator, value, iteratee(value), collection); + }); + return accumulator; +} + +module.exports = baseAggregator; diff --git a/node_modules/lodash/_baseAssign.js b/node_modules/lodash/_baseAssign.js new file mode 100644 index 0000000..e5c4a1a --- /dev/null +++ b/node_modules/lodash/_baseAssign.js @@ -0,0 +1,17 @@ +var copyObject = require('./_copyObject'), + keys = require('./keys'); + +/** + * The base implementation of `_.assign` without support for multiple sources + * or `customizer` functions. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @returns {Object} Returns `object`. + */ +function baseAssign(object, source) { + return object && copyObject(source, keys(source), object); +} + +module.exports = baseAssign; diff --git a/node_modules/lodash/_baseAssignIn.js b/node_modules/lodash/_baseAssignIn.js new file mode 100644 index 0000000..6624f90 --- /dev/null +++ b/node_modules/lodash/_baseAssignIn.js @@ -0,0 +1,17 @@ +var copyObject = require('./_copyObject'), + keysIn = require('./keysIn'); + +/** + * The base implementation of `_.assignIn` without support for multiple sources + * or `customizer` functions. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @returns {Object} Returns `object`. + */ +function baseAssignIn(object, source) { + return object && copyObject(source, keysIn(source), object); +} + +module.exports = baseAssignIn; diff --git a/node_modules/lodash/_baseAssignValue.js b/node_modules/lodash/_baseAssignValue.js new file mode 100644 index 0000000..d6f66ef --- /dev/null +++ b/node_modules/lodash/_baseAssignValue.js @@ -0,0 +1,25 @@ +var defineProperty = require('./_defineProperty'); + +/** + * The base implementation of `assignValue` and `assignMergeValue` without + * value checks. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ +function baseAssignValue(object, key, value) { + if (key == '__proto__' && defineProperty) { + defineProperty(object, key, { + 'configurable': true, + 'enumerable': true, + 'value': value, + 'writable': true + }); + } else { + object[key] = value; + } +} + +module.exports = baseAssignValue; diff --git a/node_modules/lodash/_baseAt.js b/node_modules/lodash/_baseAt.js new file mode 100644 index 0000000..90e4237 --- /dev/null +++ b/node_modules/lodash/_baseAt.js @@ -0,0 +1,23 @@ +var get = require('./get'); + +/** + * The base implementation of `_.at` without support for individual paths. + * + * @private + * @param {Object} object The object to iterate over. + * @param {string[]} paths The property paths to pick. + * @returns {Array} Returns the picked elements. + */ +function baseAt(object, paths) { + var index = -1, + length = paths.length, + result = Array(length), + skip = object == null; + + while (++index < length) { + result[index] = skip ? undefined : get(object, paths[index]); + } + return result; +} + +module.exports = baseAt; diff --git a/node_modules/lodash/_baseClamp.js b/node_modules/lodash/_baseClamp.js new file mode 100644 index 0000000..a1c5692 --- /dev/null +++ b/node_modules/lodash/_baseClamp.js @@ -0,0 +1,22 @@ +/** + * The base implementation of `_.clamp` which doesn't coerce arguments. + * + * @private + * @param {number} number The number to clamp. + * @param {number} [lower] The lower bound. + * @param {number} upper The upper bound. + * @returns {number} Returns the clamped number. + */ +function baseClamp(number, lower, upper) { + if (number === number) { + if (upper !== undefined) { + number = number <= upper ? number : upper; + } + if (lower !== undefined) { + number = number >= lower ? number : lower; + } + } + return number; +} + +module.exports = baseClamp; diff --git a/node_modules/lodash/_baseClone.js b/node_modules/lodash/_baseClone.js new file mode 100644 index 0000000..69f8705 --- /dev/null +++ b/node_modules/lodash/_baseClone.js @@ -0,0 +1,166 @@ +var Stack = require('./_Stack'), + arrayEach = require('./_arrayEach'), + assignValue = require('./_assignValue'), + baseAssign = require('./_baseAssign'), + baseAssignIn = require('./_baseAssignIn'), + cloneBuffer = require('./_cloneBuffer'), + copyArray = require('./_copyArray'), + copySymbols = require('./_copySymbols'), + copySymbolsIn = require('./_copySymbolsIn'), + getAllKeys = require('./_getAllKeys'), + getAllKeysIn = require('./_getAllKeysIn'), + getTag = require('./_getTag'), + initCloneArray = require('./_initCloneArray'), + initCloneByTag = require('./_initCloneByTag'), + initCloneObject = require('./_initCloneObject'), + isArray = require('./isArray'), + isBuffer = require('./isBuffer'), + isMap = require('./isMap'), + isObject = require('./isObject'), + isSet = require('./isSet'), + keys = require('./keys'), + keysIn = require('./keysIn'); + +/** Used to compose bitmasks for cloning. */ +var CLONE_DEEP_FLAG = 1, + CLONE_FLAT_FLAG = 2, + CLONE_SYMBOLS_FLAG = 4; + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + genTag = '[object GeneratorFunction]', + mapTag = '[object Map]', + numberTag = '[object Number]', + objectTag = '[object Object]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + symbolTag = '[object Symbol]', + weakMapTag = '[object WeakMap]'; + +var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + +/** Used to identify `toStringTag` values supported by `_.clone`. */ +var cloneableTags = {}; +cloneableTags[argsTag] = cloneableTags[arrayTag] = +cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = +cloneableTags[boolTag] = cloneableTags[dateTag] = +cloneableTags[float32Tag] = cloneableTags[float64Tag] = +cloneableTags[int8Tag] = cloneableTags[int16Tag] = +cloneableTags[int32Tag] = cloneableTags[mapTag] = +cloneableTags[numberTag] = cloneableTags[objectTag] = +cloneableTags[regexpTag] = cloneableTags[setTag] = +cloneableTags[stringTag] = cloneableTags[symbolTag] = +cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = +cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; +cloneableTags[errorTag] = cloneableTags[funcTag] = +cloneableTags[weakMapTag] = false; + +/** + * The base implementation of `_.clone` and `_.cloneDeep` which tracks + * traversed objects. + * + * @private + * @param {*} value The value to clone. + * @param {boolean} bitmask The bitmask flags. + * 1 - Deep clone + * 2 - Flatten inherited properties + * 4 - Clone symbols + * @param {Function} [customizer] The function to customize cloning. + * @param {string} [key] The key of `value`. + * @param {Object} [object] The parent object of `value`. + * @param {Object} [stack] Tracks traversed objects and their clone counterparts. + * @returns {*} Returns the cloned value. + */ +function baseClone(value, bitmask, customizer, key, object, stack) { + var result, + isDeep = bitmask & CLONE_DEEP_FLAG, + isFlat = bitmask & CLONE_FLAT_FLAG, + isFull = bitmask & CLONE_SYMBOLS_FLAG; + + if (customizer) { + result = object ? customizer(value, key, object, stack) : customizer(value); + } + if (result !== undefined) { + return result; + } + if (!isObject(value)) { + return value; + } + var isArr = isArray(value); + if (isArr) { + result = initCloneArray(value); + if (!isDeep) { + return copyArray(value, result); + } + } else { + var tag = getTag(value), + isFunc = tag == funcTag || tag == genTag; + + if (isBuffer(value)) { + return cloneBuffer(value, isDeep); + } + if (tag == objectTag || tag == argsTag || (isFunc && !object)) { + result = (isFlat || isFunc) ? {} : initCloneObject(value); + if (!isDeep) { + return isFlat + ? copySymbolsIn(value, baseAssignIn(result, value)) + : copySymbols(value, baseAssign(result, value)); + } + } else { + if (!cloneableTags[tag]) { + return object ? value : {}; + } + result = initCloneByTag(value, tag, isDeep); + } + } + // Check for circular references and return its corresponding clone. + stack || (stack = new Stack); + var stacked = stack.get(value); + if (stacked) { + return stacked; + } + stack.set(value, result); + + if (isSet(value)) { + value.forEach(function(subValue) { + result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack)); + }); + } else if (isMap(value)) { + value.forEach(function(subValue, key) { + result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack)); + }); + } + + var keysFunc = isFull + ? (isFlat ? getAllKeysIn : getAllKeys) + : (isFlat ? keysIn : keys); + + var props = isArr ? undefined : keysFunc(value); + arrayEach(props || value, function(subValue, key) { + if (props) { + key = subValue; + subValue = value[key]; + } + // Recursively populate clone (susceptible to call stack limits). + assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack)); + }); + return result; +} + +module.exports = baseClone; diff --git a/node_modules/lodash/_baseConforms.js b/node_modules/lodash/_baseConforms.js new file mode 100644 index 0000000..947e20d --- /dev/null +++ b/node_modules/lodash/_baseConforms.js @@ -0,0 +1,18 @@ +var baseConformsTo = require('./_baseConformsTo'), + keys = require('./keys'); + +/** + * The base implementation of `_.conforms` which doesn't clone `source`. + * + * @private + * @param {Object} source The object of property predicates to conform to. + * @returns {Function} Returns the new spec function. + */ +function baseConforms(source) { + var props = keys(source); + return function(object) { + return baseConformsTo(object, source, props); + }; +} + +module.exports = baseConforms; diff --git a/node_modules/lodash/_baseConformsTo.js b/node_modules/lodash/_baseConformsTo.js new file mode 100644 index 0000000..e449cb8 --- /dev/null +++ b/node_modules/lodash/_baseConformsTo.js @@ -0,0 +1,27 @@ +/** + * The base implementation of `_.conformsTo` which accepts `props` to check. + * + * @private + * @param {Object} object The object to inspect. + * @param {Object} source The object of property predicates to conform to. + * @returns {boolean} Returns `true` if `object` conforms, else `false`. + */ +function baseConformsTo(object, source, props) { + var length = props.length; + if (object == null) { + return !length; + } + object = Object(object); + while (length--) { + var key = props[length], + predicate = source[key], + value = object[key]; + + if ((value === undefined && !(key in object)) || !predicate(value)) { + return false; + } + } + return true; +} + +module.exports = baseConformsTo; diff --git a/node_modules/lodash/_baseCreate.js b/node_modules/lodash/_baseCreate.js new file mode 100644 index 0000000..ffa6a52 --- /dev/null +++ b/node_modules/lodash/_baseCreate.js @@ -0,0 +1,30 @@ +var isObject = require('./isObject'); + +/** Built-in value references. */ +var objectCreate = Object.create; + +/** + * The base implementation of `_.create` without support for assigning + * properties to the created object. + * + * @private + * @param {Object} proto The object to inherit from. + * @returns {Object} Returns the new object. + */ +var baseCreate = (function() { + function object() {} + return function(proto) { + if (!isObject(proto)) { + return {}; + } + if (objectCreate) { + return objectCreate(proto); + } + object.prototype = proto; + var result = new object; + object.prototype = undefined; + return result; + }; +}()); + +module.exports = baseCreate; diff --git a/node_modules/lodash/_baseDelay.js b/node_modules/lodash/_baseDelay.js new file mode 100644 index 0000000..1486d69 --- /dev/null +++ b/node_modules/lodash/_baseDelay.js @@ -0,0 +1,21 @@ +/** Error message constants. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/** + * The base implementation of `_.delay` and `_.defer` which accepts `args` + * to provide to `func`. + * + * @private + * @param {Function} func The function to delay. + * @param {number} wait The number of milliseconds to delay invocation. + * @param {Array} args The arguments to provide to `func`. + * @returns {number|Object} Returns the timer id or timeout object. + */ +function baseDelay(func, wait, args) { + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + return setTimeout(function() { func.apply(undefined, args); }, wait); +} + +module.exports = baseDelay; diff --git a/node_modules/lodash/_baseDifference.js b/node_modules/lodash/_baseDifference.js new file mode 100644 index 0000000..343ac19 --- /dev/null +++ b/node_modules/lodash/_baseDifference.js @@ -0,0 +1,67 @@ +var SetCache = require('./_SetCache'), + arrayIncludes = require('./_arrayIncludes'), + arrayIncludesWith = require('./_arrayIncludesWith'), + arrayMap = require('./_arrayMap'), + baseUnary = require('./_baseUnary'), + cacheHas = require('./_cacheHas'); + +/** Used as the size to enable large array optimizations. */ +var LARGE_ARRAY_SIZE = 200; + +/** + * The base implementation of methods like `_.difference` without support + * for excluding multiple arrays or iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Array} values The values to exclude. + * @param {Function} [iteratee] The iteratee invoked per element. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of filtered values. + */ +function baseDifference(array, values, iteratee, comparator) { + var index = -1, + includes = arrayIncludes, + isCommon = true, + length = array.length, + result = [], + valuesLength = values.length; + + if (!length) { + return result; + } + if (iteratee) { + values = arrayMap(values, baseUnary(iteratee)); + } + if (comparator) { + includes = arrayIncludesWith; + isCommon = false; + } + else if (values.length >= LARGE_ARRAY_SIZE) { + includes = cacheHas; + isCommon = false; + values = new SetCache(values); + } + outer: + while (++index < length) { + var value = array[index], + computed = iteratee == null ? value : iteratee(value); + + value = (comparator || value !== 0) ? value : 0; + if (isCommon && computed === computed) { + var valuesIndex = valuesLength; + while (valuesIndex--) { + if (values[valuesIndex] === computed) { + continue outer; + } + } + result.push(value); + } + else if (!includes(values, computed, comparator)) { + result.push(value); + } + } + return result; +} + +module.exports = baseDifference; diff --git a/node_modules/lodash/_baseEach.js b/node_modules/lodash/_baseEach.js new file mode 100644 index 0000000..512c067 --- /dev/null +++ b/node_modules/lodash/_baseEach.js @@ -0,0 +1,14 @@ +var baseForOwn = require('./_baseForOwn'), + createBaseEach = require('./_createBaseEach'); + +/** + * The base implementation of `_.forEach` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + */ +var baseEach = createBaseEach(baseForOwn); + +module.exports = baseEach; diff --git a/node_modules/lodash/_baseEachRight.js b/node_modules/lodash/_baseEachRight.js new file mode 100644 index 0000000..0a8feec --- /dev/null +++ b/node_modules/lodash/_baseEachRight.js @@ -0,0 +1,14 @@ +var baseForOwnRight = require('./_baseForOwnRight'), + createBaseEach = require('./_createBaseEach'); + +/** + * The base implementation of `_.forEachRight` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + */ +var baseEachRight = createBaseEach(baseForOwnRight, true); + +module.exports = baseEachRight; diff --git a/node_modules/lodash/_baseEvery.js b/node_modules/lodash/_baseEvery.js new file mode 100644 index 0000000..fa52f7b --- /dev/null +++ b/node_modules/lodash/_baseEvery.js @@ -0,0 +1,21 @@ +var baseEach = require('./_baseEach'); + +/** + * The base implementation of `_.every` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if all elements pass the predicate check, + * else `false` + */ +function baseEvery(collection, predicate) { + var result = true; + baseEach(collection, function(value, index, collection) { + result = !!predicate(value, index, collection); + return result; + }); + return result; +} + +module.exports = baseEvery; diff --git a/node_modules/lodash/_baseExtremum.js b/node_modules/lodash/_baseExtremum.js new file mode 100644 index 0000000..9d6aa77 --- /dev/null +++ b/node_modules/lodash/_baseExtremum.js @@ -0,0 +1,32 @@ +var isSymbol = require('./isSymbol'); + +/** + * The base implementation of methods like `_.max` and `_.min` which accepts a + * `comparator` to determine the extremum value. + * + * @private + * @param {Array} array The array to iterate over. + * @param {Function} iteratee The iteratee invoked per iteration. + * @param {Function} comparator The comparator used to compare values. + * @returns {*} Returns the extremum value. + */ +function baseExtremum(array, iteratee, comparator) { + var index = -1, + length = array.length; + + while (++index < length) { + var value = array[index], + current = iteratee(value); + + if (current != null && (computed === undefined + ? (current === current && !isSymbol(current)) + : comparator(current, computed) + )) { + var computed = current, + result = value; + } + } + return result; +} + +module.exports = baseExtremum; diff --git a/node_modules/lodash/_baseFill.js b/node_modules/lodash/_baseFill.js new file mode 100644 index 0000000..46ef9c7 --- /dev/null +++ b/node_modules/lodash/_baseFill.js @@ -0,0 +1,32 @@ +var toInteger = require('./toInteger'), + toLength = require('./toLength'); + +/** + * The base implementation of `_.fill` without an iteratee call guard. + * + * @private + * @param {Array} array The array to fill. + * @param {*} value The value to fill `array` with. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns `array`. + */ +function baseFill(array, value, start, end) { + var length = array.length; + + start = toInteger(start); + if (start < 0) { + start = -start > length ? 0 : (length + start); + } + end = (end === undefined || end > length) ? length : toInteger(end); + if (end < 0) { + end += length; + } + end = start > end ? 0 : toLength(end); + while (start < end) { + array[start++] = value; + } + return array; +} + +module.exports = baseFill; diff --git a/node_modules/lodash/_baseFilter.js b/node_modules/lodash/_baseFilter.js new file mode 100644 index 0000000..4678477 --- /dev/null +++ b/node_modules/lodash/_baseFilter.js @@ -0,0 +1,21 @@ +var baseEach = require('./_baseEach'); + +/** + * The base implementation of `_.filter` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + */ +function baseFilter(collection, predicate) { + var result = []; + baseEach(collection, function(value, index, collection) { + if (predicate(value, index, collection)) { + result.push(value); + } + }); + return result; +} + +module.exports = baseFilter; diff --git a/node_modules/lodash/_baseFindIndex.js b/node_modules/lodash/_baseFindIndex.js new file mode 100644 index 0000000..e3f5d8a --- /dev/null +++ b/node_modules/lodash/_baseFindIndex.js @@ -0,0 +1,24 @@ +/** + * The base implementation of `_.findIndex` and `_.findLastIndex` without + * support for iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} predicate The function invoked per iteration. + * @param {number} fromIndex The index to search from. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function baseFindIndex(array, predicate, fromIndex, fromRight) { + var length = array.length, + index = fromIndex + (fromRight ? 1 : -1); + + while ((fromRight ? index-- : ++index < length)) { + if (predicate(array[index], index, array)) { + return index; + } + } + return -1; +} + +module.exports = baseFindIndex; diff --git a/node_modules/lodash/_baseFindKey.js b/node_modules/lodash/_baseFindKey.js new file mode 100644 index 0000000..2e430f3 --- /dev/null +++ b/node_modules/lodash/_baseFindKey.js @@ -0,0 +1,23 @@ +/** + * The base implementation of methods like `_.findKey` and `_.findLastKey`, + * without support for iteratee shorthands, which iterates over `collection` + * using `eachFunc`. + * + * @private + * @param {Array|Object} collection The collection to inspect. + * @param {Function} predicate The function invoked per iteration. + * @param {Function} eachFunc The function to iterate over `collection`. + * @returns {*} Returns the found element or its key, else `undefined`. + */ +function baseFindKey(collection, predicate, eachFunc) { + var result; + eachFunc(collection, function(value, key, collection) { + if (predicate(value, key, collection)) { + result = key; + return false; + } + }); + return result; +} + +module.exports = baseFindKey; diff --git a/node_modules/lodash/_baseFlatten.js b/node_modules/lodash/_baseFlatten.js new file mode 100644 index 0000000..4b1e009 --- /dev/null +++ b/node_modules/lodash/_baseFlatten.js @@ -0,0 +1,38 @@ +var arrayPush = require('./_arrayPush'), + isFlattenable = require('./_isFlattenable'); + +/** + * The base implementation of `_.flatten` with support for restricting flattening. + * + * @private + * @param {Array} array The array to flatten. + * @param {number} depth The maximum recursion depth. + * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. + * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. + * @param {Array} [result=[]] The initial result value. + * @returns {Array} Returns the new flattened array. + */ +function baseFlatten(array, depth, predicate, isStrict, result) { + var index = -1, + length = array.length; + + predicate || (predicate = isFlattenable); + result || (result = []); + + while (++index < length) { + var value = array[index]; + if (depth > 0 && predicate(value)) { + if (depth > 1) { + // Recursively flatten arrays (susceptible to call stack limits). + baseFlatten(value, depth - 1, predicate, isStrict, result); + } else { + arrayPush(result, value); + } + } else if (!isStrict) { + result[result.length] = value; + } + } + return result; +} + +module.exports = baseFlatten; diff --git a/node_modules/lodash/_baseFor.js b/node_modules/lodash/_baseFor.js new file mode 100644 index 0000000..d946590 --- /dev/null +++ b/node_modules/lodash/_baseFor.js @@ -0,0 +1,16 @@ +var createBaseFor = require('./_createBaseFor'); + +/** + * The base implementation of `baseForOwn` which iterates over `object` + * properties returned by `keysFunc` and invokes `iteratee` for each property. + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */ +var baseFor = createBaseFor(); + +module.exports = baseFor; diff --git a/node_modules/lodash/_baseForOwn.js b/node_modules/lodash/_baseForOwn.js new file mode 100644 index 0000000..503d523 --- /dev/null +++ b/node_modules/lodash/_baseForOwn.js @@ -0,0 +1,16 @@ +var baseFor = require('./_baseFor'), + keys = require('./keys'); + +/** + * The base implementation of `_.forOwn` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Object} Returns `object`. + */ +function baseForOwn(object, iteratee) { + return object && baseFor(object, iteratee, keys); +} + +module.exports = baseForOwn; diff --git a/node_modules/lodash/_baseForOwnRight.js b/node_modules/lodash/_baseForOwnRight.js new file mode 100644 index 0000000..a4b10e6 --- /dev/null +++ b/node_modules/lodash/_baseForOwnRight.js @@ -0,0 +1,16 @@ +var baseForRight = require('./_baseForRight'), + keys = require('./keys'); + +/** + * The base implementation of `_.forOwnRight` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Object} Returns `object`. + */ +function baseForOwnRight(object, iteratee) { + return object && baseForRight(object, iteratee, keys); +} + +module.exports = baseForOwnRight; diff --git a/node_modules/lodash/_baseForRight.js b/node_modules/lodash/_baseForRight.js new file mode 100644 index 0000000..32842cd --- /dev/null +++ b/node_modules/lodash/_baseForRight.js @@ -0,0 +1,15 @@ +var createBaseFor = require('./_createBaseFor'); + +/** + * This function is like `baseFor` except that it iterates over properties + * in the opposite order. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */ +var baseForRight = createBaseFor(true); + +module.exports = baseForRight; diff --git a/node_modules/lodash/_baseFunctions.js b/node_modules/lodash/_baseFunctions.js new file mode 100644 index 0000000..d23bc9b --- /dev/null +++ b/node_modules/lodash/_baseFunctions.js @@ -0,0 +1,19 @@ +var arrayFilter = require('./_arrayFilter'), + isFunction = require('./isFunction'); + +/** + * The base implementation of `_.functions` which creates an array of + * `object` function property names filtered from `props`. + * + * @private + * @param {Object} object The object to inspect. + * @param {Array} props The property names to filter. + * @returns {Array} Returns the function names. + */ +function baseFunctions(object, props) { + return arrayFilter(props, function(key) { + return isFunction(object[key]); + }); +} + +module.exports = baseFunctions; diff --git a/node_modules/lodash/_baseGet.js b/node_modules/lodash/_baseGet.js new file mode 100644 index 0000000..a194913 --- /dev/null +++ b/node_modules/lodash/_baseGet.js @@ -0,0 +1,24 @@ +var castPath = require('./_castPath'), + toKey = require('./_toKey'); + +/** + * The base implementation of `_.get` without support for default values. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @returns {*} Returns the resolved value. + */ +function baseGet(object, path) { + path = castPath(path, object); + + var index = 0, + length = path.length; + + while (object != null && index < length) { + object = object[toKey(path[index++])]; + } + return (index && index == length) ? object : undefined; +} + +module.exports = baseGet; diff --git a/node_modules/lodash/_baseGetAllKeys.js b/node_modules/lodash/_baseGetAllKeys.js new file mode 100644 index 0000000..8ad204e --- /dev/null +++ b/node_modules/lodash/_baseGetAllKeys.js @@ -0,0 +1,20 @@ +var arrayPush = require('./_arrayPush'), + isArray = require('./isArray'); + +/** + * The base implementation of `getAllKeys` and `getAllKeysIn` which uses + * `keysFunc` and `symbolsFunc` to get the enumerable property names and + * symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Function} keysFunc The function to get the keys of `object`. + * @param {Function} symbolsFunc The function to get the symbols of `object`. + * @returns {Array} Returns the array of property names and symbols. + */ +function baseGetAllKeys(object, keysFunc, symbolsFunc) { + var result = keysFunc(object); + return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); +} + +module.exports = baseGetAllKeys; diff --git a/node_modules/lodash/_baseGetTag.js b/node_modules/lodash/_baseGetTag.js new file mode 100644 index 0000000..b927ccc --- /dev/null +++ b/node_modules/lodash/_baseGetTag.js @@ -0,0 +1,28 @@ +var Symbol = require('./_Symbol'), + getRawTag = require('./_getRawTag'), + objectToString = require('./_objectToString'); + +/** `Object#toString` result references. */ +var nullTag = '[object Null]', + undefinedTag = '[object Undefined]'; + +/** Built-in value references. */ +var symToStringTag = Symbol ? Symbol.toStringTag : undefined; + +/** + * The base implementation of `getTag` without fallbacks for buggy environments. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ +function baseGetTag(value) { + if (value == null) { + return value === undefined ? undefinedTag : nullTag; + } + return (symToStringTag && symToStringTag in Object(value)) + ? getRawTag(value) + : objectToString(value); +} + +module.exports = baseGetTag; diff --git a/node_modules/lodash/_baseGt.js b/node_modules/lodash/_baseGt.js new file mode 100644 index 0000000..502d273 --- /dev/null +++ b/node_modules/lodash/_baseGt.js @@ -0,0 +1,14 @@ +/** + * The base implementation of `_.gt` which doesn't coerce arguments. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if `value` is greater than `other`, + * else `false`. + */ +function baseGt(value, other) { + return value > other; +} + +module.exports = baseGt; diff --git a/node_modules/lodash/_baseHas.js b/node_modules/lodash/_baseHas.js new file mode 100644 index 0000000..1b73032 --- /dev/null +++ b/node_modules/lodash/_baseHas.js @@ -0,0 +1,19 @@ +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * The base implementation of `_.has` without support for deep paths. + * + * @private + * @param {Object} [object] The object to query. + * @param {Array|string} key The key to check. + * @returns {boolean} Returns `true` if `key` exists, else `false`. + */ +function baseHas(object, key) { + return object != null && hasOwnProperty.call(object, key); +} + +module.exports = baseHas; diff --git a/node_modules/lodash/_baseHasIn.js b/node_modules/lodash/_baseHasIn.js new file mode 100644 index 0000000..2e0d042 --- /dev/null +++ b/node_modules/lodash/_baseHasIn.js @@ -0,0 +1,13 @@ +/** + * The base implementation of `_.hasIn` without support for deep paths. + * + * @private + * @param {Object} [object] The object to query. + * @param {Array|string} key The key to check. + * @returns {boolean} Returns `true` if `key` exists, else `false`. + */ +function baseHasIn(object, key) { + return object != null && key in Object(object); +} + +module.exports = baseHasIn; diff --git a/node_modules/lodash/_baseInRange.js b/node_modules/lodash/_baseInRange.js new file mode 100644 index 0000000..ec95666 --- /dev/null +++ b/node_modules/lodash/_baseInRange.js @@ -0,0 +1,18 @@ +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max, + nativeMin = Math.min; + +/** + * The base implementation of `_.inRange` which doesn't coerce arguments. + * + * @private + * @param {number} number The number to check. + * @param {number} start The start of the range. + * @param {number} end The end of the range. + * @returns {boolean} Returns `true` if `number` is in the range, else `false`. + */ +function baseInRange(number, start, end) { + return number >= nativeMin(start, end) && number < nativeMax(start, end); +} + +module.exports = baseInRange; diff --git a/node_modules/lodash/_baseIndexOf.js b/node_modules/lodash/_baseIndexOf.js new file mode 100644 index 0000000..167e706 --- /dev/null +++ b/node_modules/lodash/_baseIndexOf.js @@ -0,0 +1,20 @@ +var baseFindIndex = require('./_baseFindIndex'), + baseIsNaN = require('./_baseIsNaN'), + strictIndexOf = require('./_strictIndexOf'); + +/** + * The base implementation of `_.indexOf` without `fromIndex` bounds checks. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function baseIndexOf(array, value, fromIndex) { + return value === value + ? strictIndexOf(array, value, fromIndex) + : baseFindIndex(array, baseIsNaN, fromIndex); +} + +module.exports = baseIndexOf; diff --git a/node_modules/lodash/_baseIndexOfWith.js b/node_modules/lodash/_baseIndexOfWith.js new file mode 100644 index 0000000..f815fe0 --- /dev/null +++ b/node_modules/lodash/_baseIndexOfWith.js @@ -0,0 +1,23 @@ +/** + * This function is like `baseIndexOf` except that it accepts a comparator. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @param {Function} comparator The comparator invoked per element. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function baseIndexOfWith(array, value, fromIndex, comparator) { + var index = fromIndex - 1, + length = array.length; + + while (++index < length) { + if (comparator(array[index], value)) { + return index; + } + } + return -1; +} + +module.exports = baseIndexOfWith; diff --git a/node_modules/lodash/_baseIntersection.js b/node_modules/lodash/_baseIntersection.js new file mode 100644 index 0000000..c1d250c --- /dev/null +++ b/node_modules/lodash/_baseIntersection.js @@ -0,0 +1,74 @@ +var SetCache = require('./_SetCache'), + arrayIncludes = require('./_arrayIncludes'), + arrayIncludesWith = require('./_arrayIncludesWith'), + arrayMap = require('./_arrayMap'), + baseUnary = require('./_baseUnary'), + cacheHas = require('./_cacheHas'); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMin = Math.min; + +/** + * The base implementation of methods like `_.intersection`, without support + * for iteratee shorthands, that accepts an array of arrays to inspect. + * + * @private + * @param {Array} arrays The arrays to inspect. + * @param {Function} [iteratee] The iteratee invoked per element. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of shared values. + */ +function baseIntersection(arrays, iteratee, comparator) { + var includes = comparator ? arrayIncludesWith : arrayIncludes, + length = arrays[0].length, + othLength = arrays.length, + othIndex = othLength, + caches = Array(othLength), + maxLength = Infinity, + result = []; + + while (othIndex--) { + var array = arrays[othIndex]; + if (othIndex && iteratee) { + array = arrayMap(array, baseUnary(iteratee)); + } + maxLength = nativeMin(array.length, maxLength); + caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120)) + ? new SetCache(othIndex && array) + : undefined; + } + array = arrays[0]; + + var index = -1, + seen = caches[0]; + + outer: + while (++index < length && result.length < maxLength) { + var value = array[index], + computed = iteratee ? iteratee(value) : value; + + value = (comparator || value !== 0) ? value : 0; + if (!(seen + ? cacheHas(seen, computed) + : includes(result, computed, comparator) + )) { + othIndex = othLength; + while (--othIndex) { + var cache = caches[othIndex]; + if (!(cache + ? cacheHas(cache, computed) + : includes(arrays[othIndex], computed, comparator)) + ) { + continue outer; + } + } + if (seen) { + seen.push(computed); + } + result.push(value); + } + } + return result; +} + +module.exports = baseIntersection; diff --git a/node_modules/lodash/_baseInverter.js b/node_modules/lodash/_baseInverter.js new file mode 100644 index 0000000..fbc337f --- /dev/null +++ b/node_modules/lodash/_baseInverter.js @@ -0,0 +1,21 @@ +var baseForOwn = require('./_baseForOwn'); + +/** + * The base implementation of `_.invert` and `_.invertBy` which inverts + * `object` with values transformed by `iteratee` and set by `setter`. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} setter The function to set `accumulator` values. + * @param {Function} iteratee The iteratee to transform values. + * @param {Object} accumulator The initial inverted object. + * @returns {Function} Returns `accumulator`. + */ +function baseInverter(object, setter, iteratee, accumulator) { + baseForOwn(object, function(value, key, object) { + setter(accumulator, iteratee(value), key, object); + }); + return accumulator; +} + +module.exports = baseInverter; diff --git a/node_modules/lodash/_baseInvoke.js b/node_modules/lodash/_baseInvoke.js new file mode 100644 index 0000000..49bcf3c --- /dev/null +++ b/node_modules/lodash/_baseInvoke.js @@ -0,0 +1,24 @@ +var apply = require('./_apply'), + castPath = require('./_castPath'), + last = require('./last'), + parent = require('./_parent'), + toKey = require('./_toKey'); + +/** + * The base implementation of `_.invoke` without support for individual + * method arguments. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path of the method to invoke. + * @param {Array} args The arguments to invoke the method with. + * @returns {*} Returns the result of the invoked method. + */ +function baseInvoke(object, path, args) { + path = castPath(path, object); + object = parent(object, path); + var func = object == null ? object : object[toKey(last(path))]; + return func == null ? undefined : apply(func, object, args); +} + +module.exports = baseInvoke; diff --git a/node_modules/lodash/_baseIsArguments.js b/node_modules/lodash/_baseIsArguments.js new file mode 100644 index 0000000..b3562cc --- /dev/null +++ b/node_modules/lodash/_baseIsArguments.js @@ -0,0 +1,18 @@ +var baseGetTag = require('./_baseGetTag'), + isObjectLike = require('./isObjectLike'); + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]'; + +/** + * The base implementation of `_.isArguments`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + */ +function baseIsArguments(value) { + return isObjectLike(value) && baseGetTag(value) == argsTag; +} + +module.exports = baseIsArguments; diff --git a/node_modules/lodash/_baseIsArrayBuffer.js b/node_modules/lodash/_baseIsArrayBuffer.js new file mode 100644 index 0000000..a2c4f30 --- /dev/null +++ b/node_modules/lodash/_baseIsArrayBuffer.js @@ -0,0 +1,17 @@ +var baseGetTag = require('./_baseGetTag'), + isObjectLike = require('./isObjectLike'); + +var arrayBufferTag = '[object ArrayBuffer]'; + +/** + * The base implementation of `_.isArrayBuffer` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`. + */ +function baseIsArrayBuffer(value) { + return isObjectLike(value) && baseGetTag(value) == arrayBufferTag; +} + +module.exports = baseIsArrayBuffer; diff --git a/node_modules/lodash/_baseIsDate.js b/node_modules/lodash/_baseIsDate.js new file mode 100644 index 0000000..ba67c78 --- /dev/null +++ b/node_modules/lodash/_baseIsDate.js @@ -0,0 +1,18 @@ +var baseGetTag = require('./_baseGetTag'), + isObjectLike = require('./isObjectLike'); + +/** `Object#toString` result references. */ +var dateTag = '[object Date]'; + +/** + * The base implementation of `_.isDate` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a date object, else `false`. + */ +function baseIsDate(value) { + return isObjectLike(value) && baseGetTag(value) == dateTag; +} + +module.exports = baseIsDate; diff --git a/node_modules/lodash/_baseIsEqual.js b/node_modules/lodash/_baseIsEqual.js new file mode 100644 index 0000000..00a68a4 --- /dev/null +++ b/node_modules/lodash/_baseIsEqual.js @@ -0,0 +1,28 @@ +var baseIsEqualDeep = require('./_baseIsEqualDeep'), + isObjectLike = require('./isObjectLike'); + +/** + * The base implementation of `_.isEqual` which supports partial comparisons + * and tracks traversed objects. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {boolean} bitmask The bitmask flags. + * 1 - Unordered comparison + * 2 - Partial comparison + * @param {Function} [customizer] The function to customize comparisons. + * @param {Object} [stack] Tracks traversed `value` and `other` objects. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + */ +function baseIsEqual(value, other, bitmask, customizer, stack) { + if (value === other) { + return true; + } + if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { + return value !== value && other !== other; + } + return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); +} + +module.exports = baseIsEqual; diff --git a/node_modules/lodash/_baseIsEqualDeep.js b/node_modules/lodash/_baseIsEqualDeep.js new file mode 100644 index 0000000..e3cfd6a --- /dev/null +++ b/node_modules/lodash/_baseIsEqualDeep.js @@ -0,0 +1,83 @@ +var Stack = require('./_Stack'), + equalArrays = require('./_equalArrays'), + equalByTag = require('./_equalByTag'), + equalObjects = require('./_equalObjects'), + getTag = require('./_getTag'), + isArray = require('./isArray'), + isBuffer = require('./isBuffer'), + isTypedArray = require('./isTypedArray'); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1; + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + objectTag = '[object Object]'; + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * A specialized version of `baseIsEqual` for arrays and objects which performs + * deep comparisons and tracks traversed objects enabling objects with circular + * references to be compared. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} [stack] Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { + var objIsArr = isArray(object), + othIsArr = isArray(other), + objTag = objIsArr ? arrayTag : getTag(object), + othTag = othIsArr ? arrayTag : getTag(other); + + objTag = objTag == argsTag ? objectTag : objTag; + othTag = othTag == argsTag ? objectTag : othTag; + + var objIsObj = objTag == objectTag, + othIsObj = othTag == objectTag, + isSameTag = objTag == othTag; + + if (isSameTag && isBuffer(object)) { + if (!isBuffer(other)) { + return false; + } + objIsArr = true; + objIsObj = false; + } + if (isSameTag && !objIsObj) { + stack || (stack = new Stack); + return (objIsArr || isTypedArray(object)) + ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) + : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); + } + if (!(bitmask & COMPARE_PARTIAL_FLAG)) { + var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), + othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); + + if (objIsWrapped || othIsWrapped) { + var objUnwrapped = objIsWrapped ? object.value() : object, + othUnwrapped = othIsWrapped ? other.value() : other; + + stack || (stack = new Stack); + return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); + } + } + if (!isSameTag) { + return false; + } + stack || (stack = new Stack); + return equalObjects(object, other, bitmask, customizer, equalFunc, stack); +} + +module.exports = baseIsEqualDeep; diff --git a/node_modules/lodash/_baseIsMap.js b/node_modules/lodash/_baseIsMap.js new file mode 100644 index 0000000..02a4021 --- /dev/null +++ b/node_modules/lodash/_baseIsMap.js @@ -0,0 +1,18 @@ +var getTag = require('./_getTag'), + isObjectLike = require('./isObjectLike'); + +/** `Object#toString` result references. */ +var mapTag = '[object Map]'; + +/** + * The base implementation of `_.isMap` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a map, else `false`. + */ +function baseIsMap(value) { + return isObjectLike(value) && getTag(value) == mapTag; +} + +module.exports = baseIsMap; diff --git a/node_modules/lodash/_baseIsMatch.js b/node_modules/lodash/_baseIsMatch.js new file mode 100644 index 0000000..72494be --- /dev/null +++ b/node_modules/lodash/_baseIsMatch.js @@ -0,0 +1,62 @@ +var Stack = require('./_Stack'), + baseIsEqual = require('./_baseIsEqual'); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + +/** + * The base implementation of `_.isMatch` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to inspect. + * @param {Object} source The object of property values to match. + * @param {Array} matchData The property names, values, and compare flags to match. + * @param {Function} [customizer] The function to customize comparisons. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + */ +function baseIsMatch(object, source, matchData, customizer) { + var index = matchData.length, + length = index, + noCustomizer = !customizer; + + if (object == null) { + return !length; + } + object = Object(object); + while (index--) { + var data = matchData[index]; + if ((noCustomizer && data[2]) + ? data[1] !== object[data[0]] + : !(data[0] in object) + ) { + return false; + } + } + while (++index < length) { + data = matchData[index]; + var key = data[0], + objValue = object[key], + srcValue = data[1]; + + if (noCustomizer && data[2]) { + if (objValue === undefined && !(key in object)) { + return false; + } + } else { + var stack = new Stack; + if (customizer) { + var result = customizer(objValue, srcValue, key, object, source, stack); + } + if (!(result === undefined + ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) + : result + )) { + return false; + } + } + } + return true; +} + +module.exports = baseIsMatch; diff --git a/node_modules/lodash/_baseIsNaN.js b/node_modules/lodash/_baseIsNaN.js new file mode 100644 index 0000000..316f1eb --- /dev/null +++ b/node_modules/lodash/_baseIsNaN.js @@ -0,0 +1,12 @@ +/** + * The base implementation of `_.isNaN` without support for number objects. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. + */ +function baseIsNaN(value) { + return value !== value; +} + +module.exports = baseIsNaN; diff --git a/node_modules/lodash/_baseIsNative.js b/node_modules/lodash/_baseIsNative.js new file mode 100644 index 0000000..8702330 --- /dev/null +++ b/node_modules/lodash/_baseIsNative.js @@ -0,0 +1,47 @@ +var isFunction = require('./isFunction'), + isMasked = require('./_isMasked'), + isObject = require('./isObject'), + toSource = require('./_toSource'); + +/** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + */ +var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; + +/** Used to detect host constructors (Safari). */ +var reIsHostCtor = /^\[object .+?Constructor\]$/; + +/** Used for built-in method references. */ +var funcProto = Function.prototype, + objectProto = Object.prototype; + +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Used to detect if a method is native. */ +var reIsNative = RegExp('^' + + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' +); + +/** + * The base implementation of `_.isNative` without bad shim checks. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + */ +function baseIsNative(value) { + if (!isObject(value) || isMasked(value)) { + return false; + } + var pattern = isFunction(value) ? reIsNative : reIsHostCtor; + return pattern.test(toSource(value)); +} + +module.exports = baseIsNative; diff --git a/node_modules/lodash/_baseIsRegExp.js b/node_modules/lodash/_baseIsRegExp.js new file mode 100644 index 0000000..6cd7c1a --- /dev/null +++ b/node_modules/lodash/_baseIsRegExp.js @@ -0,0 +1,18 @@ +var baseGetTag = require('./_baseGetTag'), + isObjectLike = require('./isObjectLike'); + +/** `Object#toString` result references. */ +var regexpTag = '[object RegExp]'; + +/** + * The base implementation of `_.isRegExp` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. + */ +function baseIsRegExp(value) { + return isObjectLike(value) && baseGetTag(value) == regexpTag; +} + +module.exports = baseIsRegExp; diff --git a/node_modules/lodash/_baseIsSet.js b/node_modules/lodash/_baseIsSet.js new file mode 100644 index 0000000..6dee367 --- /dev/null +++ b/node_modules/lodash/_baseIsSet.js @@ -0,0 +1,18 @@ +var getTag = require('./_getTag'), + isObjectLike = require('./isObjectLike'); + +/** `Object#toString` result references. */ +var setTag = '[object Set]'; + +/** + * The base implementation of `_.isSet` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a set, else `false`. + */ +function baseIsSet(value) { + return isObjectLike(value) && getTag(value) == setTag; +} + +module.exports = baseIsSet; diff --git a/node_modules/lodash/_baseIsTypedArray.js b/node_modules/lodash/_baseIsTypedArray.js new file mode 100644 index 0000000..1edb32f --- /dev/null +++ b/node_modules/lodash/_baseIsTypedArray.js @@ -0,0 +1,60 @@ +var baseGetTag = require('./_baseGetTag'), + isLength = require('./isLength'), + isObjectLike = require('./isObjectLike'); + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + mapTag = '[object Map]', + numberTag = '[object Number]', + objectTag = '[object Object]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + weakMapTag = '[object WeakMap]'; + +var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + +/** Used to identify `toStringTag` values of typed arrays. */ +var typedArrayTags = {}; +typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = +typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = +typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = +typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = +typedArrayTags[uint32Tag] = true; +typedArrayTags[argsTag] = typedArrayTags[arrayTag] = +typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = +typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = +typedArrayTags[errorTag] = typedArrayTags[funcTag] = +typedArrayTags[mapTag] = typedArrayTags[numberTag] = +typedArrayTags[objectTag] = typedArrayTags[regexpTag] = +typedArrayTags[setTag] = typedArrayTags[stringTag] = +typedArrayTags[weakMapTag] = false; + +/** + * The base implementation of `_.isTypedArray` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + */ +function baseIsTypedArray(value) { + return isObjectLike(value) && + isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; +} + +module.exports = baseIsTypedArray; diff --git a/node_modules/lodash/_baseIteratee.js b/node_modules/lodash/_baseIteratee.js new file mode 100644 index 0000000..995c257 --- /dev/null +++ b/node_modules/lodash/_baseIteratee.js @@ -0,0 +1,31 @@ +var baseMatches = require('./_baseMatches'), + baseMatchesProperty = require('./_baseMatchesProperty'), + identity = require('./identity'), + isArray = require('./isArray'), + property = require('./property'); + +/** + * The base implementation of `_.iteratee`. + * + * @private + * @param {*} [value=_.identity] The value to convert to an iteratee. + * @returns {Function} Returns the iteratee. + */ +function baseIteratee(value) { + // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. + // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. + if (typeof value == 'function') { + return value; + } + if (value == null) { + return identity; + } + if (typeof value == 'object') { + return isArray(value) + ? baseMatchesProperty(value[0], value[1]) + : baseMatches(value); + } + return property(value); +} + +module.exports = baseIteratee; diff --git a/node_modules/lodash/_baseKeys.js b/node_modules/lodash/_baseKeys.js new file mode 100644 index 0000000..45e9e6f --- /dev/null +++ b/node_modules/lodash/_baseKeys.js @@ -0,0 +1,30 @@ +var isPrototype = require('./_isPrototype'), + nativeKeys = require('./_nativeKeys'); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function baseKeys(object) { + if (!isPrototype(object)) { + return nativeKeys(object); + } + var result = []; + for (var key in Object(object)) { + if (hasOwnProperty.call(object, key) && key != 'constructor') { + result.push(key); + } + } + return result; +} + +module.exports = baseKeys; diff --git a/node_modules/lodash/_baseKeysIn.js b/node_modules/lodash/_baseKeysIn.js new file mode 100644 index 0000000..ea8a0a1 --- /dev/null +++ b/node_modules/lodash/_baseKeysIn.js @@ -0,0 +1,33 @@ +var isObject = require('./isObject'), + isPrototype = require('./_isPrototype'), + nativeKeysIn = require('./_nativeKeysIn'); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function baseKeysIn(object) { + if (!isObject(object)) { + return nativeKeysIn(object); + } + var isProto = isPrototype(object), + result = []; + + for (var key in object) { + if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { + result.push(key); + } + } + return result; +} + +module.exports = baseKeysIn; diff --git a/node_modules/lodash/_baseLodash.js b/node_modules/lodash/_baseLodash.js new file mode 100644 index 0000000..f76c790 --- /dev/null +++ b/node_modules/lodash/_baseLodash.js @@ -0,0 +1,10 @@ +/** + * The function whose prototype chain sequence wrappers inherit from. + * + * @private + */ +function baseLodash() { + // No operation performed. +} + +module.exports = baseLodash; diff --git a/node_modules/lodash/_baseLt.js b/node_modules/lodash/_baseLt.js new file mode 100644 index 0000000..8674d29 --- /dev/null +++ b/node_modules/lodash/_baseLt.js @@ -0,0 +1,14 @@ +/** + * The base implementation of `_.lt` which doesn't coerce arguments. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if `value` is less than `other`, + * else `false`. + */ +function baseLt(value, other) { + return value < other; +} + +module.exports = baseLt; diff --git a/node_modules/lodash/_baseMap.js b/node_modules/lodash/_baseMap.js new file mode 100644 index 0000000..0bf5cea --- /dev/null +++ b/node_modules/lodash/_baseMap.js @@ -0,0 +1,22 @@ +var baseEach = require('./_baseEach'), + isArrayLike = require('./isArrayLike'); + +/** + * The base implementation of `_.map` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ +function baseMap(collection, iteratee) { + var index = -1, + result = isArrayLike(collection) ? Array(collection.length) : []; + + baseEach(collection, function(value, key, collection) { + result[++index] = iteratee(value, key, collection); + }); + return result; +} + +module.exports = baseMap; diff --git a/node_modules/lodash/_baseMatches.js b/node_modules/lodash/_baseMatches.js new file mode 100644 index 0000000..e56582a --- /dev/null +++ b/node_modules/lodash/_baseMatches.js @@ -0,0 +1,22 @@ +var baseIsMatch = require('./_baseIsMatch'), + getMatchData = require('./_getMatchData'), + matchesStrictComparable = require('./_matchesStrictComparable'); + +/** + * The base implementation of `_.matches` which doesn't clone `source`. + * + * @private + * @param {Object} source The object of property values to match. + * @returns {Function} Returns the new spec function. + */ +function baseMatches(source) { + var matchData = getMatchData(source); + if (matchData.length == 1 && matchData[0][2]) { + return matchesStrictComparable(matchData[0][0], matchData[0][1]); + } + return function(object) { + return object === source || baseIsMatch(object, source, matchData); + }; +} + +module.exports = baseMatches; diff --git a/node_modules/lodash/_baseMatchesProperty.js b/node_modules/lodash/_baseMatchesProperty.js new file mode 100644 index 0000000..24afd89 --- /dev/null +++ b/node_modules/lodash/_baseMatchesProperty.js @@ -0,0 +1,33 @@ +var baseIsEqual = require('./_baseIsEqual'), + get = require('./get'), + hasIn = require('./hasIn'), + isKey = require('./_isKey'), + isStrictComparable = require('./_isStrictComparable'), + matchesStrictComparable = require('./_matchesStrictComparable'), + toKey = require('./_toKey'); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + +/** + * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. + * + * @private + * @param {string} path The path of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. + */ +function baseMatchesProperty(path, srcValue) { + if (isKey(path) && isStrictComparable(srcValue)) { + return matchesStrictComparable(toKey(path), srcValue); + } + return function(object) { + var objValue = get(object, path); + return (objValue === undefined && objValue === srcValue) + ? hasIn(object, path) + : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); + }; +} + +module.exports = baseMatchesProperty; diff --git a/node_modules/lodash/_baseMean.js b/node_modules/lodash/_baseMean.js new file mode 100644 index 0000000..fa9e00a --- /dev/null +++ b/node_modules/lodash/_baseMean.js @@ -0,0 +1,20 @@ +var baseSum = require('./_baseSum'); + +/** Used as references for various `Number` constants. */ +var NAN = 0 / 0; + +/** + * The base implementation of `_.mean` and `_.meanBy` without support for + * iteratee shorthands. + * + * @private + * @param {Array} array The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {number} Returns the mean. + */ +function baseMean(array, iteratee) { + var length = array == null ? 0 : array.length; + return length ? (baseSum(array, iteratee) / length) : NAN; +} + +module.exports = baseMean; diff --git a/node_modules/lodash/_baseMerge.js b/node_modules/lodash/_baseMerge.js new file mode 100644 index 0000000..c98b5eb --- /dev/null +++ b/node_modules/lodash/_baseMerge.js @@ -0,0 +1,42 @@ +var Stack = require('./_Stack'), + assignMergeValue = require('./_assignMergeValue'), + baseFor = require('./_baseFor'), + baseMergeDeep = require('./_baseMergeDeep'), + isObject = require('./isObject'), + keysIn = require('./keysIn'), + safeGet = require('./_safeGet'); + +/** + * The base implementation of `_.merge` without support for multiple sources. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {number} srcIndex The index of `source`. + * @param {Function} [customizer] The function to customize merged values. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. + */ +function baseMerge(object, source, srcIndex, customizer, stack) { + if (object === source) { + return; + } + baseFor(source, function(srcValue, key) { + stack || (stack = new Stack); + if (isObject(srcValue)) { + baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); + } + else { + var newValue = customizer + ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack) + : undefined; + + if (newValue === undefined) { + newValue = srcValue; + } + assignMergeValue(object, key, newValue); + } + }, keysIn); +} + +module.exports = baseMerge; diff --git a/node_modules/lodash/_baseMergeDeep.js b/node_modules/lodash/_baseMergeDeep.js new file mode 100644 index 0000000..4679e8d --- /dev/null +++ b/node_modules/lodash/_baseMergeDeep.js @@ -0,0 +1,94 @@ +var assignMergeValue = require('./_assignMergeValue'), + cloneBuffer = require('./_cloneBuffer'), + cloneTypedArray = require('./_cloneTypedArray'), + copyArray = require('./_copyArray'), + initCloneObject = require('./_initCloneObject'), + isArguments = require('./isArguments'), + isArray = require('./isArray'), + isArrayLikeObject = require('./isArrayLikeObject'), + isBuffer = require('./isBuffer'), + isFunction = require('./isFunction'), + isObject = require('./isObject'), + isPlainObject = require('./isPlainObject'), + isTypedArray = require('./isTypedArray'), + safeGet = require('./_safeGet'), + toPlainObject = require('./toPlainObject'); + +/** + * A specialized version of `baseMerge` for arrays and objects which performs + * deep merges and tracks traversed objects enabling objects with circular + * references to be merged. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {string} key The key of the value to merge. + * @param {number} srcIndex The index of `source`. + * @param {Function} mergeFunc The function to merge values. + * @param {Function} [customizer] The function to customize assigned values. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. + */ +function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { + var objValue = safeGet(object, key), + srcValue = safeGet(source, key), + stacked = stack.get(srcValue); + + if (stacked) { + assignMergeValue(object, key, stacked); + return; + } + var newValue = customizer + ? customizer(objValue, srcValue, (key + ''), object, source, stack) + : undefined; + + var isCommon = newValue === undefined; + + if (isCommon) { + var isArr = isArray(srcValue), + isBuff = !isArr && isBuffer(srcValue), + isTyped = !isArr && !isBuff && isTypedArray(srcValue); + + newValue = srcValue; + if (isArr || isBuff || isTyped) { + if (isArray(objValue)) { + newValue = objValue; + } + else if (isArrayLikeObject(objValue)) { + newValue = copyArray(objValue); + } + else if (isBuff) { + isCommon = false; + newValue = cloneBuffer(srcValue, true); + } + else if (isTyped) { + isCommon = false; + newValue = cloneTypedArray(srcValue, true); + } + else { + newValue = []; + } + } + else if (isPlainObject(srcValue) || isArguments(srcValue)) { + newValue = objValue; + if (isArguments(objValue)) { + newValue = toPlainObject(objValue); + } + else if (!isObject(objValue) || isFunction(objValue)) { + newValue = initCloneObject(srcValue); + } + } + else { + isCommon = false; + } + } + if (isCommon) { + // Recursively merge objects and arrays (susceptible to call stack limits). + stack.set(srcValue, newValue); + mergeFunc(newValue, srcValue, srcIndex, customizer, stack); + stack['delete'](srcValue); + } + assignMergeValue(object, key, newValue); +} + +module.exports = baseMergeDeep; diff --git a/node_modules/lodash/_baseNth.js b/node_modules/lodash/_baseNth.js new file mode 100644 index 0000000..0403c2a --- /dev/null +++ b/node_modules/lodash/_baseNth.js @@ -0,0 +1,20 @@ +var isIndex = require('./_isIndex'); + +/** + * The base implementation of `_.nth` which doesn't coerce arguments. + * + * @private + * @param {Array} array The array to query. + * @param {number} n The index of the element to return. + * @returns {*} Returns the nth element of `array`. + */ +function baseNth(array, n) { + var length = array.length; + if (!length) { + return; + } + n += n < 0 ? length : 0; + return isIndex(n, length) ? array[n] : undefined; +} + +module.exports = baseNth; diff --git a/node_modules/lodash/_baseOrderBy.js b/node_modules/lodash/_baseOrderBy.js new file mode 100644 index 0000000..775a017 --- /dev/null +++ b/node_modules/lodash/_baseOrderBy.js @@ -0,0 +1,49 @@ +var arrayMap = require('./_arrayMap'), + baseGet = require('./_baseGet'), + baseIteratee = require('./_baseIteratee'), + baseMap = require('./_baseMap'), + baseSortBy = require('./_baseSortBy'), + baseUnary = require('./_baseUnary'), + compareMultiple = require('./_compareMultiple'), + identity = require('./identity'), + isArray = require('./isArray'); + +/** + * The base implementation of `_.orderBy` without param guards. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by. + * @param {string[]} orders The sort orders of `iteratees`. + * @returns {Array} Returns the new sorted array. + */ +function baseOrderBy(collection, iteratees, orders) { + if (iteratees.length) { + iteratees = arrayMap(iteratees, function(iteratee) { + if (isArray(iteratee)) { + return function(value) { + return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee); + } + } + return iteratee; + }); + } else { + iteratees = [identity]; + } + + var index = -1; + iteratees = arrayMap(iteratees, baseUnary(baseIteratee)); + + var result = baseMap(collection, function(value, key, collection) { + var criteria = arrayMap(iteratees, function(iteratee) { + return iteratee(value); + }); + return { 'criteria': criteria, 'index': ++index, 'value': value }; + }); + + return baseSortBy(result, function(object, other) { + return compareMultiple(object, other, orders); + }); +} + +module.exports = baseOrderBy; diff --git a/node_modules/lodash/_basePick.js b/node_modules/lodash/_basePick.js new file mode 100644 index 0000000..09b458a --- /dev/null +++ b/node_modules/lodash/_basePick.js @@ -0,0 +1,19 @@ +var basePickBy = require('./_basePickBy'), + hasIn = require('./hasIn'); + +/** + * The base implementation of `_.pick` without support for individual + * property identifiers. + * + * @private + * @param {Object} object The source object. + * @param {string[]} paths The property paths to pick. + * @returns {Object} Returns the new object. + */ +function basePick(object, paths) { + return basePickBy(object, paths, function(value, path) { + return hasIn(object, path); + }); +} + +module.exports = basePick; diff --git a/node_modules/lodash/_basePickBy.js b/node_modules/lodash/_basePickBy.js new file mode 100644 index 0000000..85be68c --- /dev/null +++ b/node_modules/lodash/_basePickBy.js @@ -0,0 +1,30 @@ +var baseGet = require('./_baseGet'), + baseSet = require('./_baseSet'), + castPath = require('./_castPath'); + +/** + * The base implementation of `_.pickBy` without support for iteratee shorthands. + * + * @private + * @param {Object} object The source object. + * @param {string[]} paths The property paths to pick. + * @param {Function} predicate The function invoked per property. + * @returns {Object} Returns the new object. + */ +function basePickBy(object, paths, predicate) { + var index = -1, + length = paths.length, + result = {}; + + while (++index < length) { + var path = paths[index], + value = baseGet(object, path); + + if (predicate(value, path)) { + baseSet(result, castPath(path, object), value); + } + } + return result; +} + +module.exports = basePickBy; diff --git a/node_modules/lodash/_baseProperty.js b/node_modules/lodash/_baseProperty.js new file mode 100644 index 0000000..496281e --- /dev/null +++ b/node_modules/lodash/_baseProperty.js @@ -0,0 +1,14 @@ +/** + * The base implementation of `_.property` without support for deep paths. + * + * @private + * @param {string} key The key of the property to get. + * @returns {Function} Returns the new accessor function. + */ +function baseProperty(key) { + return function(object) { + return object == null ? undefined : object[key]; + }; +} + +module.exports = baseProperty; diff --git a/node_modules/lodash/_basePropertyDeep.js b/node_modules/lodash/_basePropertyDeep.js new file mode 100644 index 0000000..1e5aae5 --- /dev/null +++ b/node_modules/lodash/_basePropertyDeep.js @@ -0,0 +1,16 @@ +var baseGet = require('./_baseGet'); + +/** + * A specialized version of `baseProperty` which supports deep paths. + * + * @private + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new accessor function. + */ +function basePropertyDeep(path) { + return function(object) { + return baseGet(object, path); + }; +} + +module.exports = basePropertyDeep; diff --git a/node_modules/lodash/_basePropertyOf.js b/node_modules/lodash/_basePropertyOf.js new file mode 100644 index 0000000..4617399 --- /dev/null +++ b/node_modules/lodash/_basePropertyOf.js @@ -0,0 +1,14 @@ +/** + * The base implementation of `_.propertyOf` without support for deep paths. + * + * @private + * @param {Object} object The object to query. + * @returns {Function} Returns the new accessor function. + */ +function basePropertyOf(object) { + return function(key) { + return object == null ? undefined : object[key]; + }; +} + +module.exports = basePropertyOf; diff --git a/node_modules/lodash/_basePullAll.js b/node_modules/lodash/_basePullAll.js new file mode 100644 index 0000000..305720e --- /dev/null +++ b/node_modules/lodash/_basePullAll.js @@ -0,0 +1,51 @@ +var arrayMap = require('./_arrayMap'), + baseIndexOf = require('./_baseIndexOf'), + baseIndexOfWith = require('./_baseIndexOfWith'), + baseUnary = require('./_baseUnary'), + copyArray = require('./_copyArray'); + +/** Used for built-in method references. */ +var arrayProto = Array.prototype; + +/** Built-in value references. */ +var splice = arrayProto.splice; + +/** + * The base implementation of `_.pullAllBy` without support for iteratee + * shorthands. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to remove. + * @param {Function} [iteratee] The iteratee invoked per element. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns `array`. + */ +function basePullAll(array, values, iteratee, comparator) { + var indexOf = comparator ? baseIndexOfWith : baseIndexOf, + index = -1, + length = values.length, + seen = array; + + if (array === values) { + values = copyArray(values); + } + if (iteratee) { + seen = arrayMap(array, baseUnary(iteratee)); + } + while (++index < length) { + var fromIndex = 0, + value = values[index], + computed = iteratee ? iteratee(value) : value; + + while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) { + if (seen !== array) { + splice.call(seen, fromIndex, 1); + } + splice.call(array, fromIndex, 1); + } + } + return array; +} + +module.exports = basePullAll; diff --git a/node_modules/lodash/_basePullAt.js b/node_modules/lodash/_basePullAt.js new file mode 100644 index 0000000..c3e9e71 --- /dev/null +++ b/node_modules/lodash/_basePullAt.js @@ -0,0 +1,37 @@ +var baseUnset = require('./_baseUnset'), + isIndex = require('./_isIndex'); + +/** Used for built-in method references. */ +var arrayProto = Array.prototype; + +/** Built-in value references. */ +var splice = arrayProto.splice; + +/** + * The base implementation of `_.pullAt` without support for individual + * indexes or capturing the removed elements. + * + * @private + * @param {Array} array The array to modify. + * @param {number[]} indexes The indexes of elements to remove. + * @returns {Array} Returns `array`. + */ +function basePullAt(array, indexes) { + var length = array ? indexes.length : 0, + lastIndex = length - 1; + + while (length--) { + var index = indexes[length]; + if (length == lastIndex || index !== previous) { + var previous = index; + if (isIndex(index)) { + splice.call(array, index, 1); + } else { + baseUnset(array, index); + } + } + } + return array; +} + +module.exports = basePullAt; diff --git a/node_modules/lodash/_baseRandom.js b/node_modules/lodash/_baseRandom.js new file mode 100644 index 0000000..94f76a7 --- /dev/null +++ b/node_modules/lodash/_baseRandom.js @@ -0,0 +1,18 @@ +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeFloor = Math.floor, + nativeRandom = Math.random; + +/** + * The base implementation of `_.random` without support for returning + * floating-point numbers. + * + * @private + * @param {number} lower The lower bound. + * @param {number} upper The upper bound. + * @returns {number} Returns the random number. + */ +function baseRandom(lower, upper) { + return lower + nativeFloor(nativeRandom() * (upper - lower + 1)); +} + +module.exports = baseRandom; diff --git a/node_modules/lodash/_baseRange.js b/node_modules/lodash/_baseRange.js new file mode 100644 index 0000000..0fb8e41 --- /dev/null +++ b/node_modules/lodash/_baseRange.js @@ -0,0 +1,28 @@ +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeCeil = Math.ceil, + nativeMax = Math.max; + +/** + * The base implementation of `_.range` and `_.rangeRight` which doesn't + * coerce arguments. + * + * @private + * @param {number} start The start of the range. + * @param {number} end The end of the range. + * @param {number} step The value to increment or decrement by. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Array} Returns the range of numbers. + */ +function baseRange(start, end, step, fromRight) { + var index = -1, + length = nativeMax(nativeCeil((end - start) / (step || 1)), 0), + result = Array(length); + + while (length--) { + result[fromRight ? length : ++index] = start; + start += step; + } + return result; +} + +module.exports = baseRange; diff --git a/node_modules/lodash/_baseReduce.js b/node_modules/lodash/_baseReduce.js new file mode 100644 index 0000000..5a1f8b5 --- /dev/null +++ b/node_modules/lodash/_baseReduce.js @@ -0,0 +1,23 @@ +/** + * The base implementation of `_.reduce` and `_.reduceRight`, without support + * for iteratee shorthands, which iterates over `collection` using `eachFunc`. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {*} accumulator The initial value. + * @param {boolean} initAccum Specify using the first or last element of + * `collection` as the initial value. + * @param {Function} eachFunc The function to iterate over `collection`. + * @returns {*} Returns the accumulated value. + */ +function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { + eachFunc(collection, function(value, index, collection) { + accumulator = initAccum + ? (initAccum = false, value) + : iteratee(accumulator, value, index, collection); + }); + return accumulator; +} + +module.exports = baseReduce; diff --git a/node_modules/lodash/_baseRepeat.js b/node_modules/lodash/_baseRepeat.js new file mode 100644 index 0000000..ee44c31 --- /dev/null +++ b/node_modules/lodash/_baseRepeat.js @@ -0,0 +1,35 @@ +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeFloor = Math.floor; + +/** + * The base implementation of `_.repeat` which doesn't coerce arguments. + * + * @private + * @param {string} string The string to repeat. + * @param {number} n The number of times to repeat the string. + * @returns {string} Returns the repeated string. + */ +function baseRepeat(string, n) { + var result = ''; + if (!string || n < 1 || n > MAX_SAFE_INTEGER) { + return result; + } + // Leverage the exponentiation by squaring algorithm for a faster repeat. + // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details. + do { + if (n % 2) { + result += string; + } + n = nativeFloor(n / 2); + if (n) { + string += string; + } + } while (n); + + return result; +} + +module.exports = baseRepeat; diff --git a/node_modules/lodash/_baseRest.js b/node_modules/lodash/_baseRest.js new file mode 100644 index 0000000..d0dc4bd --- /dev/null +++ b/node_modules/lodash/_baseRest.js @@ -0,0 +1,17 @@ +var identity = require('./identity'), + overRest = require('./_overRest'), + setToString = require('./_setToString'); + +/** + * The base implementation of `_.rest` which doesn't validate or coerce arguments. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + */ +function baseRest(func, start) { + return setToString(overRest(func, start, identity), func + ''); +} + +module.exports = baseRest; diff --git a/node_modules/lodash/_baseSample.js b/node_modules/lodash/_baseSample.js new file mode 100644 index 0000000..58582b9 --- /dev/null +++ b/node_modules/lodash/_baseSample.js @@ -0,0 +1,15 @@ +var arraySample = require('./_arraySample'), + values = require('./values'); + +/** + * The base implementation of `_.sample`. + * + * @private + * @param {Array|Object} collection The collection to sample. + * @returns {*} Returns the random element. + */ +function baseSample(collection) { + return arraySample(values(collection)); +} + +module.exports = baseSample; diff --git a/node_modules/lodash/_baseSampleSize.js b/node_modules/lodash/_baseSampleSize.js new file mode 100644 index 0000000..5c90ec5 --- /dev/null +++ b/node_modules/lodash/_baseSampleSize.js @@ -0,0 +1,18 @@ +var baseClamp = require('./_baseClamp'), + shuffleSelf = require('./_shuffleSelf'), + values = require('./values'); + +/** + * The base implementation of `_.sampleSize` without param guards. + * + * @private + * @param {Array|Object} collection The collection to sample. + * @param {number} n The number of elements to sample. + * @returns {Array} Returns the random elements. + */ +function baseSampleSize(collection, n) { + var array = values(collection); + return shuffleSelf(array, baseClamp(n, 0, array.length)); +} + +module.exports = baseSampleSize; diff --git a/node_modules/lodash/_baseSet.js b/node_modules/lodash/_baseSet.js new file mode 100644 index 0000000..99f4fbf --- /dev/null +++ b/node_modules/lodash/_baseSet.js @@ -0,0 +1,51 @@ +var assignValue = require('./_assignValue'), + castPath = require('./_castPath'), + isIndex = require('./_isIndex'), + isObject = require('./isObject'), + toKey = require('./_toKey'); + +/** + * The base implementation of `_.set`. + * + * @private + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {*} value The value to set. + * @param {Function} [customizer] The function to customize path creation. + * @returns {Object} Returns `object`. + */ +function baseSet(object, path, value, customizer) { + if (!isObject(object)) { + return object; + } + path = castPath(path, object); + + var index = -1, + length = path.length, + lastIndex = length - 1, + nested = object; + + while (nested != null && ++index < length) { + var key = toKey(path[index]), + newValue = value; + + if (key === '__proto__' || key === 'constructor' || key === 'prototype') { + return object; + } + + if (index != lastIndex) { + var objValue = nested[key]; + newValue = customizer ? customizer(objValue, key, nested) : undefined; + if (newValue === undefined) { + newValue = isObject(objValue) + ? objValue + : (isIndex(path[index + 1]) ? [] : {}); + } + } + assignValue(nested, key, newValue); + nested = nested[key]; + } + return object; +} + +module.exports = baseSet; diff --git a/node_modules/lodash/_baseSetData.js b/node_modules/lodash/_baseSetData.js new file mode 100644 index 0000000..c409947 --- /dev/null +++ b/node_modules/lodash/_baseSetData.js @@ -0,0 +1,17 @@ +var identity = require('./identity'), + metaMap = require('./_metaMap'); + +/** + * The base implementation of `setData` without support for hot loop shorting. + * + * @private + * @param {Function} func The function to associate metadata with. + * @param {*} data The metadata. + * @returns {Function} Returns `func`. + */ +var baseSetData = !metaMap ? identity : function(func, data) { + metaMap.set(func, data); + return func; +}; + +module.exports = baseSetData; diff --git a/node_modules/lodash/_baseSetToString.js b/node_modules/lodash/_baseSetToString.js new file mode 100644 index 0000000..89eaca3 --- /dev/null +++ b/node_modules/lodash/_baseSetToString.js @@ -0,0 +1,22 @@ +var constant = require('./constant'), + defineProperty = require('./_defineProperty'), + identity = require('./identity'); + +/** + * The base implementation of `setToString` without support for hot loop shorting. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ +var baseSetToString = !defineProperty ? identity : function(func, string) { + return defineProperty(func, 'toString', { + 'configurable': true, + 'enumerable': false, + 'value': constant(string), + 'writable': true + }); +}; + +module.exports = baseSetToString; diff --git a/node_modules/lodash/_baseShuffle.js b/node_modules/lodash/_baseShuffle.js new file mode 100644 index 0000000..023077a --- /dev/null +++ b/node_modules/lodash/_baseShuffle.js @@ -0,0 +1,15 @@ +var shuffleSelf = require('./_shuffleSelf'), + values = require('./values'); + +/** + * The base implementation of `_.shuffle`. + * + * @private + * @param {Array|Object} collection The collection to shuffle. + * @returns {Array} Returns the new shuffled array. + */ +function baseShuffle(collection) { + return shuffleSelf(values(collection)); +} + +module.exports = baseShuffle; diff --git a/node_modules/lodash/_baseSlice.js b/node_modules/lodash/_baseSlice.js new file mode 100644 index 0000000..786f6c9 --- /dev/null +++ b/node_modules/lodash/_baseSlice.js @@ -0,0 +1,31 @@ +/** + * The base implementation of `_.slice` without an iteratee call guard. + * + * @private + * @param {Array} array The array to slice. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns the slice of `array`. + */ +function baseSlice(array, start, end) { + var index = -1, + length = array.length; + + if (start < 0) { + start = -start > length ? 0 : (length + start); + } + end = end > length ? length : end; + if (end < 0) { + end += length; + } + length = start > end ? 0 : ((end - start) >>> 0); + start >>>= 0; + + var result = Array(length); + while (++index < length) { + result[index] = array[index + start]; + } + return result; +} + +module.exports = baseSlice; diff --git a/node_modules/lodash/_baseSome.js b/node_modules/lodash/_baseSome.js new file mode 100644 index 0000000..58f3f44 --- /dev/null +++ b/node_modules/lodash/_baseSome.js @@ -0,0 +1,22 @@ +var baseEach = require('./_baseEach'); + +/** + * The base implementation of `_.some` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ +function baseSome(collection, predicate) { + var result; + + baseEach(collection, function(value, index, collection) { + result = predicate(value, index, collection); + return !result; + }); + return !!result; +} + +module.exports = baseSome; diff --git a/node_modules/lodash/_baseSortBy.js b/node_modules/lodash/_baseSortBy.js new file mode 100644 index 0000000..a25c92e --- /dev/null +++ b/node_modules/lodash/_baseSortBy.js @@ -0,0 +1,21 @@ +/** + * The base implementation of `_.sortBy` which uses `comparer` to define the + * sort order of `array` and replaces criteria objects with their corresponding + * values. + * + * @private + * @param {Array} array The array to sort. + * @param {Function} comparer The function to define sort order. + * @returns {Array} Returns `array`. + */ +function baseSortBy(array, comparer) { + var length = array.length; + + array.sort(comparer); + while (length--) { + array[length] = array[length].value; + } + return array; +} + +module.exports = baseSortBy; diff --git a/node_modules/lodash/_baseSortedIndex.js b/node_modules/lodash/_baseSortedIndex.js new file mode 100644 index 0000000..638c366 --- /dev/null +++ b/node_modules/lodash/_baseSortedIndex.js @@ -0,0 +1,42 @@ +var baseSortedIndexBy = require('./_baseSortedIndexBy'), + identity = require('./identity'), + isSymbol = require('./isSymbol'); + +/** Used as references for the maximum length and index of an array. */ +var MAX_ARRAY_LENGTH = 4294967295, + HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1; + +/** + * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which + * performs a binary search of `array` to determine the index at which `value` + * should be inserted into `array` in order to maintain its sort order. + * + * @private + * @param {Array} array The sorted array to inspect. + * @param {*} value The value to evaluate. + * @param {boolean} [retHighest] Specify returning the highest qualified index. + * @returns {number} Returns the index at which `value` should be inserted + * into `array`. + */ +function baseSortedIndex(array, value, retHighest) { + var low = 0, + high = array == null ? low : array.length; + + if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) { + while (low < high) { + var mid = (low + high) >>> 1, + computed = array[mid]; + + if (computed !== null && !isSymbol(computed) && + (retHighest ? (computed <= value) : (computed < value))) { + low = mid + 1; + } else { + high = mid; + } + } + return high; + } + return baseSortedIndexBy(array, value, identity, retHighest); +} + +module.exports = baseSortedIndex; diff --git a/node_modules/lodash/_baseSortedIndexBy.js b/node_modules/lodash/_baseSortedIndexBy.js new file mode 100644 index 0000000..c247b37 --- /dev/null +++ b/node_modules/lodash/_baseSortedIndexBy.js @@ -0,0 +1,67 @@ +var isSymbol = require('./isSymbol'); + +/** Used as references for the maximum length and index of an array. */ +var MAX_ARRAY_LENGTH = 4294967295, + MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeFloor = Math.floor, + nativeMin = Math.min; + +/** + * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy` + * which invokes `iteratee` for `value` and each element of `array` to compute + * their sort ranking. The iteratee is invoked with one argument; (value). + * + * @private + * @param {Array} array The sorted array to inspect. + * @param {*} value The value to evaluate. + * @param {Function} iteratee The iteratee invoked per element. + * @param {boolean} [retHighest] Specify returning the highest qualified index. + * @returns {number} Returns the index at which `value` should be inserted + * into `array`. + */ +function baseSortedIndexBy(array, value, iteratee, retHighest) { + var low = 0, + high = array == null ? 0 : array.length; + if (high === 0) { + return 0; + } + + value = iteratee(value); + var valIsNaN = value !== value, + valIsNull = value === null, + valIsSymbol = isSymbol(value), + valIsUndefined = value === undefined; + + while (low < high) { + var mid = nativeFloor((low + high) / 2), + computed = iteratee(array[mid]), + othIsDefined = computed !== undefined, + othIsNull = computed === null, + othIsReflexive = computed === computed, + othIsSymbol = isSymbol(computed); + + if (valIsNaN) { + var setLow = retHighest || othIsReflexive; + } else if (valIsUndefined) { + setLow = othIsReflexive && (retHighest || othIsDefined); + } else if (valIsNull) { + setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull); + } else if (valIsSymbol) { + setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol); + } else if (othIsNull || othIsSymbol) { + setLow = false; + } else { + setLow = retHighest ? (computed <= value) : (computed < value); + } + if (setLow) { + low = mid + 1; + } else { + high = mid; + } + } + return nativeMin(high, MAX_ARRAY_INDEX); +} + +module.exports = baseSortedIndexBy; diff --git a/node_modules/lodash/_baseSortedUniq.js b/node_modules/lodash/_baseSortedUniq.js new file mode 100644 index 0000000..802159a --- /dev/null +++ b/node_modules/lodash/_baseSortedUniq.js @@ -0,0 +1,30 @@ +var eq = require('./eq'); + +/** + * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without + * support for iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} [iteratee] The iteratee invoked per element. + * @returns {Array} Returns the new duplicate free array. + */ +function baseSortedUniq(array, iteratee) { + var index = -1, + length = array.length, + resIndex = 0, + result = []; + + while (++index < length) { + var value = array[index], + computed = iteratee ? iteratee(value) : value; + + if (!index || !eq(computed, seen)) { + var seen = computed; + result[resIndex++] = value === 0 ? 0 : value; + } + } + return result; +} + +module.exports = baseSortedUniq; diff --git a/node_modules/lodash/_baseSum.js b/node_modules/lodash/_baseSum.js new file mode 100644 index 0000000..a9e84c1 --- /dev/null +++ b/node_modules/lodash/_baseSum.js @@ -0,0 +1,24 @@ +/** + * The base implementation of `_.sum` and `_.sumBy` without support for + * iteratee shorthands. + * + * @private + * @param {Array} array The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {number} Returns the sum. + */ +function baseSum(array, iteratee) { + var result, + index = -1, + length = array.length; + + while (++index < length) { + var current = iteratee(array[index]); + if (current !== undefined) { + result = result === undefined ? current : (result + current); + } + } + return result; +} + +module.exports = baseSum; diff --git a/node_modules/lodash/_baseTimes.js b/node_modules/lodash/_baseTimes.js new file mode 100644 index 0000000..0603fc3 --- /dev/null +++ b/node_modules/lodash/_baseTimes.js @@ -0,0 +1,20 @@ +/** + * The base implementation of `_.times` without support for iteratee shorthands + * or max array length checks. + * + * @private + * @param {number} n The number of times to invoke `iteratee`. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the array of results. + */ +function baseTimes(n, iteratee) { + var index = -1, + result = Array(n); + + while (++index < n) { + result[index] = iteratee(index); + } + return result; +} + +module.exports = baseTimes; diff --git a/node_modules/lodash/_baseToNumber.js b/node_modules/lodash/_baseToNumber.js new file mode 100644 index 0000000..04859f3 --- /dev/null +++ b/node_modules/lodash/_baseToNumber.js @@ -0,0 +1,24 @@ +var isSymbol = require('./isSymbol'); + +/** Used as references for various `Number` constants. */ +var NAN = 0 / 0; + +/** + * The base implementation of `_.toNumber` which doesn't ensure correct + * conversions of binary, hexadecimal, or octal string values. + * + * @private + * @param {*} value The value to process. + * @returns {number} Returns the number. + */ +function baseToNumber(value) { + if (typeof value == 'number') { + return value; + } + if (isSymbol(value)) { + return NAN; + } + return +value; +} + +module.exports = baseToNumber; diff --git a/node_modules/lodash/_baseToPairs.js b/node_modules/lodash/_baseToPairs.js new file mode 100644 index 0000000..bff1991 --- /dev/null +++ b/node_modules/lodash/_baseToPairs.js @@ -0,0 +1,18 @@ +var arrayMap = require('./_arrayMap'); + +/** + * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array + * of key-value pairs for `object` corresponding to the property names of `props`. + * + * @private + * @param {Object} object The object to query. + * @param {Array} props The property names to get values for. + * @returns {Object} Returns the key-value pairs. + */ +function baseToPairs(object, props) { + return arrayMap(props, function(key) { + return [key, object[key]]; + }); +} + +module.exports = baseToPairs; diff --git a/node_modules/lodash/_baseToString.js b/node_modules/lodash/_baseToString.js new file mode 100644 index 0000000..ada6ad2 --- /dev/null +++ b/node_modules/lodash/_baseToString.js @@ -0,0 +1,37 @@ +var Symbol = require('./_Symbol'), + arrayMap = require('./_arrayMap'), + isArray = require('./isArray'), + isSymbol = require('./isSymbol'); + +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0; + +/** Used to convert symbols to primitives and strings. */ +var symbolProto = Symbol ? Symbol.prototype : undefined, + symbolToString = symbolProto ? symbolProto.toString : undefined; + +/** + * The base implementation of `_.toString` which doesn't convert nullish + * values to empty strings. + * + * @private + * @param {*} value The value to process. + * @returns {string} Returns the string. + */ +function baseToString(value) { + // Exit early for strings to avoid a performance hit in some environments. + if (typeof value == 'string') { + return value; + } + if (isArray(value)) { + // Recursively convert values (susceptible to call stack limits). + return arrayMap(value, baseToString) + ''; + } + if (isSymbol(value)) { + return symbolToString ? symbolToString.call(value) : ''; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; +} + +module.exports = baseToString; diff --git a/node_modules/lodash/_baseUnary.js b/node_modules/lodash/_baseUnary.js new file mode 100644 index 0000000..98639e9 --- /dev/null +++ b/node_modules/lodash/_baseUnary.js @@ -0,0 +1,14 @@ +/** + * The base implementation of `_.unary` without support for storing metadata. + * + * @private + * @param {Function} func The function to cap arguments for. + * @returns {Function} Returns the new capped function. + */ +function baseUnary(func) { + return function(value) { + return func(value); + }; +} + +module.exports = baseUnary; diff --git a/node_modules/lodash/_baseUniq.js b/node_modules/lodash/_baseUniq.js new file mode 100644 index 0000000..aea459d --- /dev/null +++ b/node_modules/lodash/_baseUniq.js @@ -0,0 +1,72 @@ +var SetCache = require('./_SetCache'), + arrayIncludes = require('./_arrayIncludes'), + arrayIncludesWith = require('./_arrayIncludesWith'), + cacheHas = require('./_cacheHas'), + createSet = require('./_createSet'), + setToArray = require('./_setToArray'); + +/** Used as the size to enable large array optimizations. */ +var LARGE_ARRAY_SIZE = 200; + +/** + * The base implementation of `_.uniqBy` without support for iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} [iteratee] The iteratee invoked per element. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new duplicate free array. + */ +function baseUniq(array, iteratee, comparator) { + var index = -1, + includes = arrayIncludes, + length = array.length, + isCommon = true, + result = [], + seen = result; + + if (comparator) { + isCommon = false; + includes = arrayIncludesWith; + } + else if (length >= LARGE_ARRAY_SIZE) { + var set = iteratee ? null : createSet(array); + if (set) { + return setToArray(set); + } + isCommon = false; + includes = cacheHas; + seen = new SetCache; + } + else { + seen = iteratee ? [] : result; + } + outer: + while (++index < length) { + var value = array[index], + computed = iteratee ? iteratee(value) : value; + + value = (comparator || value !== 0) ? value : 0; + if (isCommon && computed === computed) { + var seenIndex = seen.length; + while (seenIndex--) { + if (seen[seenIndex] === computed) { + continue outer; + } + } + if (iteratee) { + seen.push(computed); + } + result.push(value); + } + else if (!includes(seen, computed, comparator)) { + if (seen !== result) { + seen.push(computed); + } + result.push(value); + } + } + return result; +} + +module.exports = baseUniq; diff --git a/node_modules/lodash/_baseUnset.js b/node_modules/lodash/_baseUnset.js new file mode 100644 index 0000000..eefc6e3 --- /dev/null +++ b/node_modules/lodash/_baseUnset.js @@ -0,0 +1,20 @@ +var castPath = require('./_castPath'), + last = require('./last'), + parent = require('./_parent'), + toKey = require('./_toKey'); + +/** + * The base implementation of `_.unset`. + * + * @private + * @param {Object} object The object to modify. + * @param {Array|string} path The property path to unset. + * @returns {boolean} Returns `true` if the property is deleted, else `false`. + */ +function baseUnset(object, path) { + path = castPath(path, object); + object = parent(object, path); + return object == null || delete object[toKey(last(path))]; +} + +module.exports = baseUnset; diff --git a/node_modules/lodash/_baseUpdate.js b/node_modules/lodash/_baseUpdate.js new file mode 100644 index 0000000..92a6237 --- /dev/null +++ b/node_modules/lodash/_baseUpdate.js @@ -0,0 +1,18 @@ +var baseGet = require('./_baseGet'), + baseSet = require('./_baseSet'); + +/** + * The base implementation of `_.update`. + * + * @private + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to update. + * @param {Function} updater The function to produce the updated value. + * @param {Function} [customizer] The function to customize path creation. + * @returns {Object} Returns `object`. + */ +function baseUpdate(object, path, updater, customizer) { + return baseSet(object, path, updater(baseGet(object, path)), customizer); +} + +module.exports = baseUpdate; diff --git a/node_modules/lodash/_baseValues.js b/node_modules/lodash/_baseValues.js new file mode 100644 index 0000000..b95faad --- /dev/null +++ b/node_modules/lodash/_baseValues.js @@ -0,0 +1,19 @@ +var arrayMap = require('./_arrayMap'); + +/** + * The base implementation of `_.values` and `_.valuesIn` which creates an + * array of `object` property values corresponding to the property names + * of `props`. + * + * @private + * @param {Object} object The object to query. + * @param {Array} props The property names to get values for. + * @returns {Object} Returns the array of property values. + */ +function baseValues(object, props) { + return arrayMap(props, function(key) { + return object[key]; + }); +} + +module.exports = baseValues; diff --git a/node_modules/lodash/_baseWhile.js b/node_modules/lodash/_baseWhile.js new file mode 100644 index 0000000..07eac61 --- /dev/null +++ b/node_modules/lodash/_baseWhile.js @@ -0,0 +1,26 @@ +var baseSlice = require('./_baseSlice'); + +/** + * The base implementation of methods like `_.dropWhile` and `_.takeWhile` + * without support for iteratee shorthands. + * + * @private + * @param {Array} array The array to query. + * @param {Function} predicate The function invoked per iteration. + * @param {boolean} [isDrop] Specify dropping elements instead of taking them. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Array} Returns the slice of `array`. + */ +function baseWhile(array, predicate, isDrop, fromRight) { + var length = array.length, + index = fromRight ? length : -1; + + while ((fromRight ? index-- : ++index < length) && + predicate(array[index], index, array)) {} + + return isDrop + ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length)) + : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index)); +} + +module.exports = baseWhile; diff --git a/node_modules/lodash/_baseWrapperValue.js b/node_modules/lodash/_baseWrapperValue.js new file mode 100644 index 0000000..443e0df --- /dev/null +++ b/node_modules/lodash/_baseWrapperValue.js @@ -0,0 +1,25 @@ +var LazyWrapper = require('./_LazyWrapper'), + arrayPush = require('./_arrayPush'), + arrayReduce = require('./_arrayReduce'); + +/** + * The base implementation of `wrapperValue` which returns the result of + * performing a sequence of actions on the unwrapped `value`, where each + * successive action is supplied the return value of the previous. + * + * @private + * @param {*} value The unwrapped value. + * @param {Array} actions Actions to perform to resolve the unwrapped value. + * @returns {*} Returns the resolved value. + */ +function baseWrapperValue(value, actions) { + var result = value; + if (result instanceof LazyWrapper) { + result = result.value(); + } + return arrayReduce(actions, function(result, action) { + return action.func.apply(action.thisArg, arrayPush([result], action.args)); + }, result); +} + +module.exports = baseWrapperValue; diff --git a/node_modules/lodash/_baseXor.js b/node_modules/lodash/_baseXor.js new file mode 100644 index 0000000..8e69338 --- /dev/null +++ b/node_modules/lodash/_baseXor.js @@ -0,0 +1,36 @@ +var baseDifference = require('./_baseDifference'), + baseFlatten = require('./_baseFlatten'), + baseUniq = require('./_baseUniq'); + +/** + * The base implementation of methods like `_.xor`, without support for + * iteratee shorthands, that accepts an array of arrays to inspect. + * + * @private + * @param {Array} arrays The arrays to inspect. + * @param {Function} [iteratee] The iteratee invoked per element. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of values. + */ +function baseXor(arrays, iteratee, comparator) { + var length = arrays.length; + if (length < 2) { + return length ? baseUniq(arrays[0]) : []; + } + var index = -1, + result = Array(length); + + while (++index < length) { + var array = arrays[index], + othIndex = -1; + + while (++othIndex < length) { + if (othIndex != index) { + result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator); + } + } + } + return baseUniq(baseFlatten(result, 1), iteratee, comparator); +} + +module.exports = baseXor; diff --git a/node_modules/lodash/_baseZipObject.js b/node_modules/lodash/_baseZipObject.js new file mode 100644 index 0000000..401f85b --- /dev/null +++ b/node_modules/lodash/_baseZipObject.js @@ -0,0 +1,23 @@ +/** + * This base implementation of `_.zipObject` which assigns values using `assignFunc`. + * + * @private + * @param {Array} props The property identifiers. + * @param {Array} values The property values. + * @param {Function} assignFunc The function to assign values. + * @returns {Object} Returns the new object. + */ +function baseZipObject(props, values, assignFunc) { + var index = -1, + length = props.length, + valsLength = values.length, + result = {}; + + while (++index < length) { + var value = index < valsLength ? values[index] : undefined; + assignFunc(result, props[index], value); + } + return result; +} + +module.exports = baseZipObject; diff --git a/node_modules/lodash/_cacheHas.js b/node_modules/lodash/_cacheHas.js new file mode 100644 index 0000000..2dec892 --- /dev/null +++ b/node_modules/lodash/_cacheHas.js @@ -0,0 +1,13 @@ +/** + * Checks if a `cache` value for `key` exists. + * + * @private + * @param {Object} cache The cache to query. + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function cacheHas(cache, key) { + return cache.has(key); +} + +module.exports = cacheHas; diff --git a/node_modules/lodash/_castArrayLikeObject.js b/node_modules/lodash/_castArrayLikeObject.js new file mode 100644 index 0000000..92c75fa --- /dev/null +++ b/node_modules/lodash/_castArrayLikeObject.js @@ -0,0 +1,14 @@ +var isArrayLikeObject = require('./isArrayLikeObject'); + +/** + * Casts `value` to an empty array if it's not an array like object. + * + * @private + * @param {*} value The value to inspect. + * @returns {Array|Object} Returns the cast array-like object. + */ +function castArrayLikeObject(value) { + return isArrayLikeObject(value) ? value : []; +} + +module.exports = castArrayLikeObject; diff --git a/node_modules/lodash/_castFunction.js b/node_modules/lodash/_castFunction.js new file mode 100644 index 0000000..98c91ae --- /dev/null +++ b/node_modules/lodash/_castFunction.js @@ -0,0 +1,14 @@ +var identity = require('./identity'); + +/** + * Casts `value` to `identity` if it's not a function. + * + * @private + * @param {*} value The value to inspect. + * @returns {Function} Returns cast function. + */ +function castFunction(value) { + return typeof value == 'function' ? value : identity; +} + +module.exports = castFunction; diff --git a/node_modules/lodash/_castPath.js b/node_modules/lodash/_castPath.js new file mode 100644 index 0000000..017e4c1 --- /dev/null +++ b/node_modules/lodash/_castPath.js @@ -0,0 +1,21 @@ +var isArray = require('./isArray'), + isKey = require('./_isKey'), + stringToPath = require('./_stringToPath'), + toString = require('./toString'); + +/** + * Casts `value` to a path array if it's not one. + * + * @private + * @param {*} value The value to inspect. + * @param {Object} [object] The object to query keys on. + * @returns {Array} Returns the cast property path array. + */ +function castPath(value, object) { + if (isArray(value)) { + return value; + } + return isKey(value, object) ? [value] : stringToPath(toString(value)); +} + +module.exports = castPath; diff --git a/node_modules/lodash/_castRest.js b/node_modules/lodash/_castRest.js new file mode 100644 index 0000000..213c66f --- /dev/null +++ b/node_modules/lodash/_castRest.js @@ -0,0 +1,14 @@ +var baseRest = require('./_baseRest'); + +/** + * A `baseRest` alias which can be replaced with `identity` by module + * replacement plugins. + * + * @private + * @type {Function} + * @param {Function} func The function to apply a rest parameter to. + * @returns {Function} Returns the new function. + */ +var castRest = baseRest; + +module.exports = castRest; diff --git a/node_modules/lodash/_castSlice.js b/node_modules/lodash/_castSlice.js new file mode 100644 index 0000000..071faeb --- /dev/null +++ b/node_modules/lodash/_castSlice.js @@ -0,0 +1,18 @@ +var baseSlice = require('./_baseSlice'); + +/** + * Casts `array` to a slice if it's needed. + * + * @private + * @param {Array} array The array to inspect. + * @param {number} start The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns the cast slice. + */ +function castSlice(array, start, end) { + var length = array.length; + end = end === undefined ? length : end; + return (!start && end >= length) ? array : baseSlice(array, start, end); +} + +module.exports = castSlice; diff --git a/node_modules/lodash/_charsEndIndex.js b/node_modules/lodash/_charsEndIndex.js new file mode 100644 index 0000000..07908ff --- /dev/null +++ b/node_modules/lodash/_charsEndIndex.js @@ -0,0 +1,19 @@ +var baseIndexOf = require('./_baseIndexOf'); + +/** + * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol + * that is not found in the character symbols. + * + * @private + * @param {Array} strSymbols The string symbols to inspect. + * @param {Array} chrSymbols The character symbols to find. + * @returns {number} Returns the index of the last unmatched string symbol. + */ +function charsEndIndex(strSymbols, chrSymbols) { + var index = strSymbols.length; + + while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {} + return index; +} + +module.exports = charsEndIndex; diff --git a/node_modules/lodash/_charsStartIndex.js b/node_modules/lodash/_charsStartIndex.js new file mode 100644 index 0000000..b17afd2 --- /dev/null +++ b/node_modules/lodash/_charsStartIndex.js @@ -0,0 +1,20 @@ +var baseIndexOf = require('./_baseIndexOf'); + +/** + * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol + * that is not found in the character symbols. + * + * @private + * @param {Array} strSymbols The string symbols to inspect. + * @param {Array} chrSymbols The character symbols to find. + * @returns {number} Returns the index of the first unmatched string symbol. + */ +function charsStartIndex(strSymbols, chrSymbols) { + var index = -1, + length = strSymbols.length; + + while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {} + return index; +} + +module.exports = charsStartIndex; diff --git a/node_modules/lodash/_cloneArrayBuffer.js b/node_modules/lodash/_cloneArrayBuffer.js new file mode 100644 index 0000000..c3d8f6e --- /dev/null +++ b/node_modules/lodash/_cloneArrayBuffer.js @@ -0,0 +1,16 @@ +var Uint8Array = require('./_Uint8Array'); + +/** + * Creates a clone of `arrayBuffer`. + * + * @private + * @param {ArrayBuffer} arrayBuffer The array buffer to clone. + * @returns {ArrayBuffer} Returns the cloned array buffer. + */ +function cloneArrayBuffer(arrayBuffer) { + var result = new arrayBuffer.constructor(arrayBuffer.byteLength); + new Uint8Array(result).set(new Uint8Array(arrayBuffer)); + return result; +} + +module.exports = cloneArrayBuffer; diff --git a/node_modules/lodash/_cloneBuffer.js b/node_modules/lodash/_cloneBuffer.js new file mode 100644 index 0000000..27c4810 --- /dev/null +++ b/node_modules/lodash/_cloneBuffer.js @@ -0,0 +1,35 @@ +var root = require('./_root'); + +/** Detect free variable `exports`. */ +var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; + +/** Detect free variable `module`. */ +var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; + +/** Detect the popular CommonJS extension `module.exports`. */ +var moduleExports = freeModule && freeModule.exports === freeExports; + +/** Built-in value references. */ +var Buffer = moduleExports ? root.Buffer : undefined, + allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined; + +/** + * Creates a clone of `buffer`. + * + * @private + * @param {Buffer} buffer The buffer to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Buffer} Returns the cloned buffer. + */ +function cloneBuffer(buffer, isDeep) { + if (isDeep) { + return buffer.slice(); + } + var length = buffer.length, + result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); + + buffer.copy(result); + return result; +} + +module.exports = cloneBuffer; diff --git a/node_modules/lodash/_cloneDataView.js b/node_modules/lodash/_cloneDataView.js new file mode 100644 index 0000000..9c9b7b0 --- /dev/null +++ b/node_modules/lodash/_cloneDataView.js @@ -0,0 +1,16 @@ +var cloneArrayBuffer = require('./_cloneArrayBuffer'); + +/** + * Creates a clone of `dataView`. + * + * @private + * @param {Object} dataView The data view to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned data view. + */ +function cloneDataView(dataView, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer; + return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); +} + +module.exports = cloneDataView; diff --git a/node_modules/lodash/_cloneRegExp.js b/node_modules/lodash/_cloneRegExp.js new file mode 100644 index 0000000..64a30df --- /dev/null +++ b/node_modules/lodash/_cloneRegExp.js @@ -0,0 +1,17 @@ +/** Used to match `RegExp` flags from their coerced string values. */ +var reFlags = /\w*$/; + +/** + * Creates a clone of `regexp`. + * + * @private + * @param {Object} regexp The regexp to clone. + * @returns {Object} Returns the cloned regexp. + */ +function cloneRegExp(regexp) { + var result = new regexp.constructor(regexp.source, reFlags.exec(regexp)); + result.lastIndex = regexp.lastIndex; + return result; +} + +module.exports = cloneRegExp; diff --git a/node_modules/lodash/_cloneSymbol.js b/node_modules/lodash/_cloneSymbol.js new file mode 100644 index 0000000..bede39f --- /dev/null +++ b/node_modules/lodash/_cloneSymbol.js @@ -0,0 +1,18 @@ +var Symbol = require('./_Symbol'); + +/** Used to convert symbols to primitives and strings. */ +var symbolProto = Symbol ? Symbol.prototype : undefined, + symbolValueOf = symbolProto ? symbolProto.valueOf : undefined; + +/** + * Creates a clone of the `symbol` object. + * + * @private + * @param {Object} symbol The symbol object to clone. + * @returns {Object} Returns the cloned symbol object. + */ +function cloneSymbol(symbol) { + return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {}; +} + +module.exports = cloneSymbol; diff --git a/node_modules/lodash/_cloneTypedArray.js b/node_modules/lodash/_cloneTypedArray.js new file mode 100644 index 0000000..7aad84d --- /dev/null +++ b/node_modules/lodash/_cloneTypedArray.js @@ -0,0 +1,16 @@ +var cloneArrayBuffer = require('./_cloneArrayBuffer'); + +/** + * Creates a clone of `typedArray`. + * + * @private + * @param {Object} typedArray The typed array to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned typed array. + */ +function cloneTypedArray(typedArray, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; + return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); +} + +module.exports = cloneTypedArray; diff --git a/node_modules/lodash/_compareAscending.js b/node_modules/lodash/_compareAscending.js new file mode 100644 index 0000000..8dc2791 --- /dev/null +++ b/node_modules/lodash/_compareAscending.js @@ -0,0 +1,41 @@ +var isSymbol = require('./isSymbol'); + +/** + * Compares values to sort them in ascending order. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {number} Returns the sort order indicator for `value`. + */ +function compareAscending(value, other) { + if (value !== other) { + var valIsDefined = value !== undefined, + valIsNull = value === null, + valIsReflexive = value === value, + valIsSymbol = isSymbol(value); + + var othIsDefined = other !== undefined, + othIsNull = other === null, + othIsReflexive = other === other, + othIsSymbol = isSymbol(other); + + if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) || + (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) || + (valIsNull && othIsDefined && othIsReflexive) || + (!valIsDefined && othIsReflexive) || + !valIsReflexive) { + return 1; + } + if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) || + (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) || + (othIsNull && valIsDefined && valIsReflexive) || + (!othIsDefined && valIsReflexive) || + !othIsReflexive) { + return -1; + } + } + return 0; +} + +module.exports = compareAscending; diff --git a/node_modules/lodash/_compareMultiple.js b/node_modules/lodash/_compareMultiple.js new file mode 100644 index 0000000..ad61f0f --- /dev/null +++ b/node_modules/lodash/_compareMultiple.js @@ -0,0 +1,44 @@ +var compareAscending = require('./_compareAscending'); + +/** + * Used by `_.orderBy` to compare multiple properties of a value to another + * and stable sort them. + * + * If `orders` is unspecified, all values are sorted in ascending order. Otherwise, + * specify an order of "desc" for descending or "asc" for ascending sort order + * of corresponding values. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {boolean[]|string[]} orders The order to sort by for each property. + * @returns {number} Returns the sort order indicator for `object`. + */ +function compareMultiple(object, other, orders) { + var index = -1, + objCriteria = object.criteria, + othCriteria = other.criteria, + length = objCriteria.length, + ordersLength = orders.length; + + while (++index < length) { + var result = compareAscending(objCriteria[index], othCriteria[index]); + if (result) { + if (index >= ordersLength) { + return result; + } + var order = orders[index]; + return result * (order == 'desc' ? -1 : 1); + } + } + // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications + // that causes it, under certain circumstances, to provide the same value for + // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247 + // for more details. + // + // This also ensures a stable sort in V8 and other engines. + // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details. + return object.index - other.index; +} + +module.exports = compareMultiple; diff --git a/node_modules/lodash/_composeArgs.js b/node_modules/lodash/_composeArgs.js new file mode 100644 index 0000000..1ce40f4 --- /dev/null +++ b/node_modules/lodash/_composeArgs.js @@ -0,0 +1,39 @@ +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * Creates an array that is the composition of partially applied arguments, + * placeholders, and provided arguments into a single array of arguments. + * + * @private + * @param {Array} args The provided arguments. + * @param {Array} partials The arguments to prepend to those provided. + * @param {Array} holders The `partials` placeholder indexes. + * @params {boolean} [isCurried] Specify composing for a curried function. + * @returns {Array} Returns the new array of composed arguments. + */ +function composeArgs(args, partials, holders, isCurried) { + var argsIndex = -1, + argsLength = args.length, + holdersLength = holders.length, + leftIndex = -1, + leftLength = partials.length, + rangeLength = nativeMax(argsLength - holdersLength, 0), + result = Array(leftLength + rangeLength), + isUncurried = !isCurried; + + while (++leftIndex < leftLength) { + result[leftIndex] = partials[leftIndex]; + } + while (++argsIndex < holdersLength) { + if (isUncurried || argsIndex < argsLength) { + result[holders[argsIndex]] = args[argsIndex]; + } + } + while (rangeLength--) { + result[leftIndex++] = args[argsIndex++]; + } + return result; +} + +module.exports = composeArgs; diff --git a/node_modules/lodash/_composeArgsRight.js b/node_modules/lodash/_composeArgsRight.js new file mode 100644 index 0000000..8dc588d --- /dev/null +++ b/node_modules/lodash/_composeArgsRight.js @@ -0,0 +1,41 @@ +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * This function is like `composeArgs` except that the arguments composition + * is tailored for `_.partialRight`. + * + * @private + * @param {Array} args The provided arguments. + * @param {Array} partials The arguments to append to those provided. + * @param {Array} holders The `partials` placeholder indexes. + * @params {boolean} [isCurried] Specify composing for a curried function. + * @returns {Array} Returns the new array of composed arguments. + */ +function composeArgsRight(args, partials, holders, isCurried) { + var argsIndex = -1, + argsLength = args.length, + holdersIndex = -1, + holdersLength = holders.length, + rightIndex = -1, + rightLength = partials.length, + rangeLength = nativeMax(argsLength - holdersLength, 0), + result = Array(rangeLength + rightLength), + isUncurried = !isCurried; + + while (++argsIndex < rangeLength) { + result[argsIndex] = args[argsIndex]; + } + var offset = argsIndex; + while (++rightIndex < rightLength) { + result[offset + rightIndex] = partials[rightIndex]; + } + while (++holdersIndex < holdersLength) { + if (isUncurried || argsIndex < argsLength) { + result[offset + holders[holdersIndex]] = args[argsIndex++]; + } + } + return result; +} + +module.exports = composeArgsRight; diff --git a/node_modules/lodash/_copyArray.js b/node_modules/lodash/_copyArray.js new file mode 100644 index 0000000..cd94d5d --- /dev/null +++ b/node_modules/lodash/_copyArray.js @@ -0,0 +1,20 @@ +/** + * Copies the values of `source` to `array`. + * + * @private + * @param {Array} source The array to copy values from. + * @param {Array} [array=[]] The array to copy values to. + * @returns {Array} Returns `array`. + */ +function copyArray(source, array) { + var index = -1, + length = source.length; + + array || (array = Array(length)); + while (++index < length) { + array[index] = source[index]; + } + return array; +} + +module.exports = copyArray; diff --git a/node_modules/lodash/_copyObject.js b/node_modules/lodash/_copyObject.js new file mode 100644 index 0000000..2f2a5c2 --- /dev/null +++ b/node_modules/lodash/_copyObject.js @@ -0,0 +1,40 @@ +var assignValue = require('./_assignValue'), + baseAssignValue = require('./_baseAssignValue'); + +/** + * Copies properties of `source` to `object`. + * + * @private + * @param {Object} source The object to copy properties from. + * @param {Array} props The property identifiers to copy. + * @param {Object} [object={}] The object to copy properties to. + * @param {Function} [customizer] The function to customize copied values. + * @returns {Object} Returns `object`. + */ +function copyObject(source, props, object, customizer) { + var isNew = !object; + object || (object = {}); + + var index = -1, + length = props.length; + + while (++index < length) { + var key = props[index]; + + var newValue = customizer + ? customizer(object[key], source[key], key, object, source) + : undefined; + + if (newValue === undefined) { + newValue = source[key]; + } + if (isNew) { + baseAssignValue(object, key, newValue); + } else { + assignValue(object, key, newValue); + } + } + return object; +} + +module.exports = copyObject; diff --git a/node_modules/lodash/_copySymbols.js b/node_modules/lodash/_copySymbols.js new file mode 100644 index 0000000..c35944a --- /dev/null +++ b/node_modules/lodash/_copySymbols.js @@ -0,0 +1,16 @@ +var copyObject = require('./_copyObject'), + getSymbols = require('./_getSymbols'); + +/** + * Copies own symbols of `source` to `object`. + * + * @private + * @param {Object} source The object to copy symbols from. + * @param {Object} [object={}] The object to copy symbols to. + * @returns {Object} Returns `object`. + */ +function copySymbols(source, object) { + return copyObject(source, getSymbols(source), object); +} + +module.exports = copySymbols; diff --git a/node_modules/lodash/_copySymbolsIn.js b/node_modules/lodash/_copySymbolsIn.js new file mode 100644 index 0000000..fdf20a7 --- /dev/null +++ b/node_modules/lodash/_copySymbolsIn.js @@ -0,0 +1,16 @@ +var copyObject = require('./_copyObject'), + getSymbolsIn = require('./_getSymbolsIn'); + +/** + * Copies own and inherited symbols of `source` to `object`. + * + * @private + * @param {Object} source The object to copy symbols from. + * @param {Object} [object={}] The object to copy symbols to. + * @returns {Object} Returns `object`. + */ +function copySymbolsIn(source, object) { + return copyObject(source, getSymbolsIn(source), object); +} + +module.exports = copySymbolsIn; diff --git a/node_modules/lodash/_coreJsData.js b/node_modules/lodash/_coreJsData.js new file mode 100644 index 0000000..f8e5b4e --- /dev/null +++ b/node_modules/lodash/_coreJsData.js @@ -0,0 +1,6 @@ +var root = require('./_root'); + +/** Used to detect overreaching core-js shims. */ +var coreJsData = root['__core-js_shared__']; + +module.exports = coreJsData; diff --git a/node_modules/lodash/_countHolders.js b/node_modules/lodash/_countHolders.js new file mode 100644 index 0000000..718fcda --- /dev/null +++ b/node_modules/lodash/_countHolders.js @@ -0,0 +1,21 @@ +/** + * Gets the number of `placeholder` occurrences in `array`. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} placeholder The placeholder to search for. + * @returns {number} Returns the placeholder count. + */ +function countHolders(array, placeholder) { + var length = array.length, + result = 0; + + while (length--) { + if (array[length] === placeholder) { + ++result; + } + } + return result; +} + +module.exports = countHolders; diff --git a/node_modules/lodash/_createAggregator.js b/node_modules/lodash/_createAggregator.js new file mode 100644 index 0000000..0be42c4 --- /dev/null +++ b/node_modules/lodash/_createAggregator.js @@ -0,0 +1,23 @@ +var arrayAggregator = require('./_arrayAggregator'), + baseAggregator = require('./_baseAggregator'), + baseIteratee = require('./_baseIteratee'), + isArray = require('./isArray'); + +/** + * Creates a function like `_.groupBy`. + * + * @private + * @param {Function} setter The function to set accumulator values. + * @param {Function} [initializer] The accumulator object initializer. + * @returns {Function} Returns the new aggregator function. + */ +function createAggregator(setter, initializer) { + return function(collection, iteratee) { + var func = isArray(collection) ? arrayAggregator : baseAggregator, + accumulator = initializer ? initializer() : {}; + + return func(collection, setter, baseIteratee(iteratee, 2), accumulator); + }; +} + +module.exports = createAggregator; diff --git a/node_modules/lodash/_createAssigner.js b/node_modules/lodash/_createAssigner.js new file mode 100644 index 0000000..1f904c5 --- /dev/null +++ b/node_modules/lodash/_createAssigner.js @@ -0,0 +1,37 @@ +var baseRest = require('./_baseRest'), + isIterateeCall = require('./_isIterateeCall'); + +/** + * Creates a function like `_.assign`. + * + * @private + * @param {Function} assigner The function to assign values. + * @returns {Function} Returns the new assigner function. + */ +function createAssigner(assigner) { + return baseRest(function(object, sources) { + var index = -1, + length = sources.length, + customizer = length > 1 ? sources[length - 1] : undefined, + guard = length > 2 ? sources[2] : undefined; + + customizer = (assigner.length > 3 && typeof customizer == 'function') + ? (length--, customizer) + : undefined; + + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + customizer = length < 3 ? undefined : customizer; + length = 1; + } + object = Object(object); + while (++index < length) { + var source = sources[index]; + if (source) { + assigner(object, source, index, customizer); + } + } + return object; + }); +} + +module.exports = createAssigner; diff --git a/node_modules/lodash/_createBaseEach.js b/node_modules/lodash/_createBaseEach.js new file mode 100644 index 0000000..d24fdd1 --- /dev/null +++ b/node_modules/lodash/_createBaseEach.js @@ -0,0 +1,32 @@ +var isArrayLike = require('./isArrayLike'); + +/** + * Creates a `baseEach` or `baseEachRight` function. + * + * @private + * @param {Function} eachFunc The function to iterate over a collection. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ +function createBaseEach(eachFunc, fromRight) { + return function(collection, iteratee) { + if (collection == null) { + return collection; + } + if (!isArrayLike(collection)) { + return eachFunc(collection, iteratee); + } + var length = collection.length, + index = fromRight ? length : -1, + iterable = Object(collection); + + while ((fromRight ? index-- : ++index < length)) { + if (iteratee(iterable[index], index, iterable) === false) { + break; + } + } + return collection; + }; +} + +module.exports = createBaseEach; diff --git a/node_modules/lodash/_createBaseFor.js b/node_modules/lodash/_createBaseFor.js new file mode 100644 index 0000000..94cbf29 --- /dev/null +++ b/node_modules/lodash/_createBaseFor.js @@ -0,0 +1,25 @@ +/** + * Creates a base function for methods like `_.forIn` and `_.forOwn`. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ +function createBaseFor(fromRight) { + return function(object, iteratee, keysFunc) { + var index = -1, + iterable = Object(object), + props = keysFunc(object), + length = props.length; + + while (length--) { + var key = props[fromRight ? length : ++index]; + if (iteratee(iterable[key], key, iterable) === false) { + break; + } + } + return object; + }; +} + +module.exports = createBaseFor; diff --git a/node_modules/lodash/_createBind.js b/node_modules/lodash/_createBind.js new file mode 100644 index 0000000..07cb99f --- /dev/null +++ b/node_modules/lodash/_createBind.js @@ -0,0 +1,28 @@ +var createCtor = require('./_createCtor'), + root = require('./_root'); + +/** Used to compose bitmasks for function metadata. */ +var WRAP_BIND_FLAG = 1; + +/** + * Creates a function that wraps `func` to invoke it with the optional `this` + * binding of `thisArg`. + * + * @private + * @param {Function} func The function to wrap. + * @param {number} bitmask The bitmask flags. See `createWrap` for more details. + * @param {*} [thisArg] The `this` binding of `func`. + * @returns {Function} Returns the new wrapped function. + */ +function createBind(func, bitmask, thisArg) { + var isBind = bitmask & WRAP_BIND_FLAG, + Ctor = createCtor(func); + + function wrapper() { + var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; + return fn.apply(isBind ? thisArg : this, arguments); + } + return wrapper; +} + +module.exports = createBind; diff --git a/node_modules/lodash/_createCaseFirst.js b/node_modules/lodash/_createCaseFirst.js new file mode 100644 index 0000000..fe8ea48 --- /dev/null +++ b/node_modules/lodash/_createCaseFirst.js @@ -0,0 +1,33 @@ +var castSlice = require('./_castSlice'), + hasUnicode = require('./_hasUnicode'), + stringToArray = require('./_stringToArray'), + toString = require('./toString'); + +/** + * Creates a function like `_.lowerFirst`. + * + * @private + * @param {string} methodName The name of the `String` case method to use. + * @returns {Function} Returns the new case function. + */ +function createCaseFirst(methodName) { + return function(string) { + string = toString(string); + + var strSymbols = hasUnicode(string) + ? stringToArray(string) + : undefined; + + var chr = strSymbols + ? strSymbols[0] + : string.charAt(0); + + var trailing = strSymbols + ? castSlice(strSymbols, 1).join('') + : string.slice(1); + + return chr[methodName]() + trailing; + }; +} + +module.exports = createCaseFirst; diff --git a/node_modules/lodash/_createCompounder.js b/node_modules/lodash/_createCompounder.js new file mode 100644 index 0000000..8d4cee2 --- /dev/null +++ b/node_modules/lodash/_createCompounder.js @@ -0,0 +1,24 @@ +var arrayReduce = require('./_arrayReduce'), + deburr = require('./deburr'), + words = require('./words'); + +/** Used to compose unicode capture groups. */ +var rsApos = "['\u2019]"; + +/** Used to match apostrophes. */ +var reApos = RegExp(rsApos, 'g'); + +/** + * Creates a function like `_.camelCase`. + * + * @private + * @param {Function} callback The function to combine each word. + * @returns {Function} Returns the new compounder function. + */ +function createCompounder(callback) { + return function(string) { + return arrayReduce(words(deburr(string).replace(reApos, '')), callback, ''); + }; +} + +module.exports = createCompounder; diff --git a/node_modules/lodash/_createCtor.js b/node_modules/lodash/_createCtor.js new file mode 100644 index 0000000..9047aa5 --- /dev/null +++ b/node_modules/lodash/_createCtor.js @@ -0,0 +1,37 @@ +var baseCreate = require('./_baseCreate'), + isObject = require('./isObject'); + +/** + * Creates a function that produces an instance of `Ctor` regardless of + * whether it was invoked as part of a `new` expression or by `call` or `apply`. + * + * @private + * @param {Function} Ctor The constructor to wrap. + * @returns {Function} Returns the new wrapped function. + */ +function createCtor(Ctor) { + return function() { + // Use a `switch` statement to work with class constructors. See + // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist + // for more details. + var args = arguments; + switch (args.length) { + case 0: return new Ctor; + case 1: return new Ctor(args[0]); + case 2: return new Ctor(args[0], args[1]); + case 3: return new Ctor(args[0], args[1], args[2]); + case 4: return new Ctor(args[0], args[1], args[2], args[3]); + case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]); + case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]); + case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]); + } + var thisBinding = baseCreate(Ctor.prototype), + result = Ctor.apply(thisBinding, args); + + // Mimic the constructor's `return` behavior. + // See https://es5.github.io/#x13.2.2 for more details. + return isObject(result) ? result : thisBinding; + }; +} + +module.exports = createCtor; diff --git a/node_modules/lodash/_createCurry.js b/node_modules/lodash/_createCurry.js new file mode 100644 index 0000000..f06c2cd --- /dev/null +++ b/node_modules/lodash/_createCurry.js @@ -0,0 +1,46 @@ +var apply = require('./_apply'), + createCtor = require('./_createCtor'), + createHybrid = require('./_createHybrid'), + createRecurry = require('./_createRecurry'), + getHolder = require('./_getHolder'), + replaceHolders = require('./_replaceHolders'), + root = require('./_root'); + +/** + * Creates a function that wraps `func` to enable currying. + * + * @private + * @param {Function} func The function to wrap. + * @param {number} bitmask The bitmask flags. See `createWrap` for more details. + * @param {number} arity The arity of `func`. + * @returns {Function} Returns the new wrapped function. + */ +function createCurry(func, bitmask, arity) { + var Ctor = createCtor(func); + + function wrapper() { + var length = arguments.length, + args = Array(length), + index = length, + placeholder = getHolder(wrapper); + + while (index--) { + args[index] = arguments[index]; + } + var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder) + ? [] + : replaceHolders(args, placeholder); + + length -= holders.length; + if (length < arity) { + return createRecurry( + func, bitmask, createHybrid, wrapper.placeholder, undefined, + args, holders, undefined, undefined, arity - length); + } + var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; + return apply(fn, this, args); + } + return wrapper; +} + +module.exports = createCurry; diff --git a/node_modules/lodash/_createFind.js b/node_modules/lodash/_createFind.js new file mode 100644 index 0000000..8859ff8 --- /dev/null +++ b/node_modules/lodash/_createFind.js @@ -0,0 +1,25 @@ +var baseIteratee = require('./_baseIteratee'), + isArrayLike = require('./isArrayLike'), + keys = require('./keys'); + +/** + * Creates a `_.find` or `_.findLast` function. + * + * @private + * @param {Function} findIndexFunc The function to find the collection index. + * @returns {Function} Returns the new find function. + */ +function createFind(findIndexFunc) { + return function(collection, predicate, fromIndex) { + var iterable = Object(collection); + if (!isArrayLike(collection)) { + var iteratee = baseIteratee(predicate, 3); + collection = keys(collection); + predicate = function(key) { return iteratee(iterable[key], key, iterable); }; + } + var index = findIndexFunc(collection, predicate, fromIndex); + return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined; + }; +} + +module.exports = createFind; diff --git a/node_modules/lodash/_createFlow.js b/node_modules/lodash/_createFlow.js new file mode 100644 index 0000000..baaddbf --- /dev/null +++ b/node_modules/lodash/_createFlow.js @@ -0,0 +1,78 @@ +var LodashWrapper = require('./_LodashWrapper'), + flatRest = require('./_flatRest'), + getData = require('./_getData'), + getFuncName = require('./_getFuncName'), + isArray = require('./isArray'), + isLaziable = require('./_isLaziable'); + +/** Error message constants. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/** Used to compose bitmasks for function metadata. */ +var WRAP_CURRY_FLAG = 8, + WRAP_PARTIAL_FLAG = 32, + WRAP_ARY_FLAG = 128, + WRAP_REARG_FLAG = 256; + +/** + * Creates a `_.flow` or `_.flowRight` function. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new flow function. + */ +function createFlow(fromRight) { + return flatRest(function(funcs) { + var length = funcs.length, + index = length, + prereq = LodashWrapper.prototype.thru; + + if (fromRight) { + funcs.reverse(); + } + while (index--) { + var func = funcs[index]; + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + if (prereq && !wrapper && getFuncName(func) == 'wrapper') { + var wrapper = new LodashWrapper([], true); + } + } + index = wrapper ? index : length; + while (++index < length) { + func = funcs[index]; + + var funcName = getFuncName(func), + data = funcName == 'wrapper' ? getData(func) : undefined; + + if (data && isLaziable(data[0]) && + data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && + !data[4].length && data[9] == 1 + ) { + wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]); + } else { + wrapper = (func.length == 1 && isLaziable(func)) + ? wrapper[funcName]() + : wrapper.thru(func); + } + } + return function() { + var args = arguments, + value = args[0]; + + if (wrapper && args.length == 1 && isArray(value)) { + return wrapper.plant(value).value(); + } + var index = 0, + result = length ? funcs[index].apply(this, args) : value; + + while (++index < length) { + result = funcs[index].call(this, result); + } + return result; + }; + }); +} + +module.exports = createFlow; diff --git a/node_modules/lodash/_createHybrid.js b/node_modules/lodash/_createHybrid.js new file mode 100644 index 0000000..b671bd1 --- /dev/null +++ b/node_modules/lodash/_createHybrid.js @@ -0,0 +1,92 @@ +var composeArgs = require('./_composeArgs'), + composeArgsRight = require('./_composeArgsRight'), + countHolders = require('./_countHolders'), + createCtor = require('./_createCtor'), + createRecurry = require('./_createRecurry'), + getHolder = require('./_getHolder'), + reorder = require('./_reorder'), + replaceHolders = require('./_replaceHolders'), + root = require('./_root'); + +/** Used to compose bitmasks for function metadata. */ +var WRAP_BIND_FLAG = 1, + WRAP_BIND_KEY_FLAG = 2, + WRAP_CURRY_FLAG = 8, + WRAP_CURRY_RIGHT_FLAG = 16, + WRAP_ARY_FLAG = 128, + WRAP_FLIP_FLAG = 512; + +/** + * Creates a function that wraps `func` to invoke it with optional `this` + * binding of `thisArg`, partial application, and currying. + * + * @private + * @param {Function|string} func The function or method name to wrap. + * @param {number} bitmask The bitmask flags. See `createWrap` for more details. + * @param {*} [thisArg] The `this` binding of `func`. + * @param {Array} [partials] The arguments to prepend to those provided to + * the new function. + * @param {Array} [holders] The `partials` placeholder indexes. + * @param {Array} [partialsRight] The arguments to append to those provided + * to the new function. + * @param {Array} [holdersRight] The `partialsRight` placeholder indexes. + * @param {Array} [argPos] The argument positions of the new function. + * @param {number} [ary] The arity cap of `func`. + * @param {number} [arity] The arity of `func`. + * @returns {Function} Returns the new wrapped function. + */ +function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) { + var isAry = bitmask & WRAP_ARY_FLAG, + isBind = bitmask & WRAP_BIND_FLAG, + isBindKey = bitmask & WRAP_BIND_KEY_FLAG, + isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG), + isFlip = bitmask & WRAP_FLIP_FLAG, + Ctor = isBindKey ? undefined : createCtor(func); + + function wrapper() { + var length = arguments.length, + args = Array(length), + index = length; + + while (index--) { + args[index] = arguments[index]; + } + if (isCurried) { + var placeholder = getHolder(wrapper), + holdersCount = countHolders(args, placeholder); + } + if (partials) { + args = composeArgs(args, partials, holders, isCurried); + } + if (partialsRight) { + args = composeArgsRight(args, partialsRight, holdersRight, isCurried); + } + length -= holdersCount; + if (isCurried && length < arity) { + var newHolders = replaceHolders(args, placeholder); + return createRecurry( + func, bitmask, createHybrid, wrapper.placeholder, thisArg, + args, newHolders, argPos, ary, arity - length + ); + } + var thisBinding = isBind ? thisArg : this, + fn = isBindKey ? thisBinding[func] : func; + + length = args.length; + if (argPos) { + args = reorder(args, argPos); + } else if (isFlip && length > 1) { + args.reverse(); + } + if (isAry && ary < length) { + args.length = ary; + } + if (this && this !== root && this instanceof wrapper) { + fn = Ctor || createCtor(fn); + } + return fn.apply(thisBinding, args); + } + return wrapper; +} + +module.exports = createHybrid; diff --git a/node_modules/lodash/_createInverter.js b/node_modules/lodash/_createInverter.js new file mode 100644 index 0000000..6c0c562 --- /dev/null +++ b/node_modules/lodash/_createInverter.js @@ -0,0 +1,17 @@ +var baseInverter = require('./_baseInverter'); + +/** + * Creates a function like `_.invertBy`. + * + * @private + * @param {Function} setter The function to set accumulator values. + * @param {Function} toIteratee The function to resolve iteratees. + * @returns {Function} Returns the new inverter function. + */ +function createInverter(setter, toIteratee) { + return function(object, iteratee) { + return baseInverter(object, setter, toIteratee(iteratee), {}); + }; +} + +module.exports = createInverter; diff --git a/node_modules/lodash/_createMathOperation.js b/node_modules/lodash/_createMathOperation.js new file mode 100644 index 0000000..f1e238a --- /dev/null +++ b/node_modules/lodash/_createMathOperation.js @@ -0,0 +1,38 @@ +var baseToNumber = require('./_baseToNumber'), + baseToString = require('./_baseToString'); + +/** + * Creates a function that performs a mathematical operation on two values. + * + * @private + * @param {Function} operator The function to perform the operation. + * @param {number} [defaultValue] The value used for `undefined` arguments. + * @returns {Function} Returns the new mathematical operation function. + */ +function createMathOperation(operator, defaultValue) { + return function(value, other) { + var result; + if (value === undefined && other === undefined) { + return defaultValue; + } + if (value !== undefined) { + result = value; + } + if (other !== undefined) { + if (result === undefined) { + return other; + } + if (typeof value == 'string' || typeof other == 'string') { + value = baseToString(value); + other = baseToString(other); + } else { + value = baseToNumber(value); + other = baseToNumber(other); + } + result = operator(value, other); + } + return result; + }; +} + +module.exports = createMathOperation; diff --git a/node_modules/lodash/_createOver.js b/node_modules/lodash/_createOver.js new file mode 100644 index 0000000..3b94551 --- /dev/null +++ b/node_modules/lodash/_createOver.js @@ -0,0 +1,27 @@ +var apply = require('./_apply'), + arrayMap = require('./_arrayMap'), + baseIteratee = require('./_baseIteratee'), + baseRest = require('./_baseRest'), + baseUnary = require('./_baseUnary'), + flatRest = require('./_flatRest'); + +/** + * Creates a function like `_.over`. + * + * @private + * @param {Function} arrayFunc The function to iterate over iteratees. + * @returns {Function} Returns the new over function. + */ +function createOver(arrayFunc) { + return flatRest(function(iteratees) { + iteratees = arrayMap(iteratees, baseUnary(baseIteratee)); + return baseRest(function(args) { + var thisArg = this; + return arrayFunc(iteratees, function(iteratee) { + return apply(iteratee, thisArg, args); + }); + }); + }); +} + +module.exports = createOver; diff --git a/node_modules/lodash/_createPadding.js b/node_modules/lodash/_createPadding.js new file mode 100644 index 0000000..2124612 --- /dev/null +++ b/node_modules/lodash/_createPadding.js @@ -0,0 +1,33 @@ +var baseRepeat = require('./_baseRepeat'), + baseToString = require('./_baseToString'), + castSlice = require('./_castSlice'), + hasUnicode = require('./_hasUnicode'), + stringSize = require('./_stringSize'), + stringToArray = require('./_stringToArray'); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeCeil = Math.ceil; + +/** + * Creates the padding for `string` based on `length`. The `chars` string + * is truncated if the number of characters exceeds `length`. + * + * @private + * @param {number} length The padding length. + * @param {string} [chars=' '] The string used as padding. + * @returns {string} Returns the padding for `string`. + */ +function createPadding(length, chars) { + chars = chars === undefined ? ' ' : baseToString(chars); + + var charsLength = chars.length; + if (charsLength < 2) { + return charsLength ? baseRepeat(chars, length) : chars; + } + var result = baseRepeat(chars, nativeCeil(length / stringSize(chars))); + return hasUnicode(chars) + ? castSlice(stringToArray(result), 0, length).join('') + : result.slice(0, length); +} + +module.exports = createPadding; diff --git a/node_modules/lodash/_createPartial.js b/node_modules/lodash/_createPartial.js new file mode 100644 index 0000000..e16c248 --- /dev/null +++ b/node_modules/lodash/_createPartial.js @@ -0,0 +1,43 @@ +var apply = require('./_apply'), + createCtor = require('./_createCtor'), + root = require('./_root'); + +/** Used to compose bitmasks for function metadata. */ +var WRAP_BIND_FLAG = 1; + +/** + * Creates a function that wraps `func` to invoke it with the `this` binding + * of `thisArg` and `partials` prepended to the arguments it receives. + * + * @private + * @param {Function} func The function to wrap. + * @param {number} bitmask The bitmask flags. See `createWrap` for more details. + * @param {*} thisArg The `this` binding of `func`. + * @param {Array} partials The arguments to prepend to those provided to + * the new function. + * @returns {Function} Returns the new wrapped function. + */ +function createPartial(func, bitmask, thisArg, partials) { + var isBind = bitmask & WRAP_BIND_FLAG, + Ctor = createCtor(func); + + function wrapper() { + var argsIndex = -1, + argsLength = arguments.length, + leftIndex = -1, + leftLength = partials.length, + args = Array(leftLength + argsLength), + fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; + + while (++leftIndex < leftLength) { + args[leftIndex] = partials[leftIndex]; + } + while (argsLength--) { + args[leftIndex++] = arguments[++argsIndex]; + } + return apply(fn, isBind ? thisArg : this, args); + } + return wrapper; +} + +module.exports = createPartial; diff --git a/node_modules/lodash/_createRange.js b/node_modules/lodash/_createRange.js new file mode 100644 index 0000000..9f52c77 --- /dev/null +++ b/node_modules/lodash/_createRange.js @@ -0,0 +1,30 @@ +var baseRange = require('./_baseRange'), + isIterateeCall = require('./_isIterateeCall'), + toFinite = require('./toFinite'); + +/** + * Creates a `_.range` or `_.rangeRight` function. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new range function. + */ +function createRange(fromRight) { + return function(start, end, step) { + if (step && typeof step != 'number' && isIterateeCall(start, end, step)) { + end = step = undefined; + } + // Ensure the sign of `-0` is preserved. + start = toFinite(start); + if (end === undefined) { + end = start; + start = 0; + } else { + end = toFinite(end); + } + step = step === undefined ? (start < end ? 1 : -1) : toFinite(step); + return baseRange(start, end, step, fromRight); + }; +} + +module.exports = createRange; diff --git a/node_modules/lodash/_createRecurry.js b/node_modules/lodash/_createRecurry.js new file mode 100644 index 0000000..eb29fb2 --- /dev/null +++ b/node_modules/lodash/_createRecurry.js @@ -0,0 +1,56 @@ +var isLaziable = require('./_isLaziable'), + setData = require('./_setData'), + setWrapToString = require('./_setWrapToString'); + +/** Used to compose bitmasks for function metadata. */ +var WRAP_BIND_FLAG = 1, + WRAP_BIND_KEY_FLAG = 2, + WRAP_CURRY_BOUND_FLAG = 4, + WRAP_CURRY_FLAG = 8, + WRAP_PARTIAL_FLAG = 32, + WRAP_PARTIAL_RIGHT_FLAG = 64; + +/** + * Creates a function that wraps `func` to continue currying. + * + * @private + * @param {Function} func The function to wrap. + * @param {number} bitmask The bitmask flags. See `createWrap` for more details. + * @param {Function} wrapFunc The function to create the `func` wrapper. + * @param {*} placeholder The placeholder value. + * @param {*} [thisArg] The `this` binding of `func`. + * @param {Array} [partials] The arguments to prepend to those provided to + * the new function. + * @param {Array} [holders] The `partials` placeholder indexes. + * @param {Array} [argPos] The argument positions of the new function. + * @param {number} [ary] The arity cap of `func`. + * @param {number} [arity] The arity of `func`. + * @returns {Function} Returns the new wrapped function. + */ +function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) { + var isCurry = bitmask & WRAP_CURRY_FLAG, + newHolders = isCurry ? holders : undefined, + newHoldersRight = isCurry ? undefined : holders, + newPartials = isCurry ? partials : undefined, + newPartialsRight = isCurry ? undefined : partials; + + bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG); + bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG); + + if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) { + bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG); + } + var newData = [ + func, bitmask, thisArg, newPartials, newHolders, newPartialsRight, + newHoldersRight, argPos, ary, arity + ]; + + var result = wrapFunc.apply(undefined, newData); + if (isLaziable(func)) { + setData(result, newData); + } + result.placeholder = placeholder; + return setWrapToString(result, func, bitmask); +} + +module.exports = createRecurry; diff --git a/node_modules/lodash/_createRelationalOperation.js b/node_modules/lodash/_createRelationalOperation.js new file mode 100644 index 0000000..a17c6b5 --- /dev/null +++ b/node_modules/lodash/_createRelationalOperation.js @@ -0,0 +1,20 @@ +var toNumber = require('./toNumber'); + +/** + * Creates a function that performs a relational operation on two values. + * + * @private + * @param {Function} operator The function to perform the operation. + * @returns {Function} Returns the new relational operation function. + */ +function createRelationalOperation(operator) { + return function(value, other) { + if (!(typeof value == 'string' && typeof other == 'string')) { + value = toNumber(value); + other = toNumber(other); + } + return operator(value, other); + }; +} + +module.exports = createRelationalOperation; diff --git a/node_modules/lodash/_createRound.js b/node_modules/lodash/_createRound.js new file mode 100644 index 0000000..88be5df --- /dev/null +++ b/node_modules/lodash/_createRound.js @@ -0,0 +1,35 @@ +var root = require('./_root'), + toInteger = require('./toInteger'), + toNumber = require('./toNumber'), + toString = require('./toString'); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeIsFinite = root.isFinite, + nativeMin = Math.min; + +/** + * Creates a function like `_.round`. + * + * @private + * @param {string} methodName The name of the `Math` method to use when rounding. + * @returns {Function} Returns the new round function. + */ +function createRound(methodName) { + var func = Math[methodName]; + return function(number, precision) { + number = toNumber(number); + precision = precision == null ? 0 : nativeMin(toInteger(precision), 292); + if (precision && nativeIsFinite(number)) { + // Shift with exponential notation to avoid floating-point issues. + // See [MDN](https://mdn.io/round#Examples) for more details. + var pair = (toString(number) + 'e').split('e'), + value = func(pair[0] + 'e' + (+pair[1] + precision)); + + pair = (toString(value) + 'e').split('e'); + return +(pair[0] + 'e' + (+pair[1] - precision)); + } + return func(number); + }; +} + +module.exports = createRound; diff --git a/node_modules/lodash/_createSet.js b/node_modules/lodash/_createSet.js new file mode 100644 index 0000000..0f644ee --- /dev/null +++ b/node_modules/lodash/_createSet.js @@ -0,0 +1,19 @@ +var Set = require('./_Set'), + noop = require('./noop'), + setToArray = require('./_setToArray'); + +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0; + +/** + * Creates a set object of `values`. + * + * @private + * @param {Array} values The values to add to the set. + * @returns {Object} Returns the new set. + */ +var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) { + return new Set(values); +}; + +module.exports = createSet; diff --git a/node_modules/lodash/_createToPairs.js b/node_modules/lodash/_createToPairs.js new file mode 100644 index 0000000..568417a --- /dev/null +++ b/node_modules/lodash/_createToPairs.js @@ -0,0 +1,30 @@ +var baseToPairs = require('./_baseToPairs'), + getTag = require('./_getTag'), + mapToArray = require('./_mapToArray'), + setToPairs = require('./_setToPairs'); + +/** `Object#toString` result references. */ +var mapTag = '[object Map]', + setTag = '[object Set]'; + +/** + * Creates a `_.toPairs` or `_.toPairsIn` function. + * + * @private + * @param {Function} keysFunc The function to get the keys of a given object. + * @returns {Function} Returns the new pairs function. + */ +function createToPairs(keysFunc) { + return function(object) { + var tag = getTag(object); + if (tag == mapTag) { + return mapToArray(object); + } + if (tag == setTag) { + return setToPairs(object); + } + return baseToPairs(object, keysFunc(object)); + }; +} + +module.exports = createToPairs; diff --git a/node_modules/lodash/_createWrap.js b/node_modules/lodash/_createWrap.js new file mode 100644 index 0000000..33f0633 --- /dev/null +++ b/node_modules/lodash/_createWrap.js @@ -0,0 +1,106 @@ +var baseSetData = require('./_baseSetData'), + createBind = require('./_createBind'), + createCurry = require('./_createCurry'), + createHybrid = require('./_createHybrid'), + createPartial = require('./_createPartial'), + getData = require('./_getData'), + mergeData = require('./_mergeData'), + setData = require('./_setData'), + setWrapToString = require('./_setWrapToString'), + toInteger = require('./toInteger'); + +/** Error message constants. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/** Used to compose bitmasks for function metadata. */ +var WRAP_BIND_FLAG = 1, + WRAP_BIND_KEY_FLAG = 2, + WRAP_CURRY_FLAG = 8, + WRAP_CURRY_RIGHT_FLAG = 16, + WRAP_PARTIAL_FLAG = 32, + WRAP_PARTIAL_RIGHT_FLAG = 64; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * Creates a function that either curries or invokes `func` with optional + * `this` binding and partially applied arguments. + * + * @private + * @param {Function|string} func The function or method name to wrap. + * @param {number} bitmask The bitmask flags. + * 1 - `_.bind` + * 2 - `_.bindKey` + * 4 - `_.curry` or `_.curryRight` of a bound function + * 8 - `_.curry` + * 16 - `_.curryRight` + * 32 - `_.partial` + * 64 - `_.partialRight` + * 128 - `_.rearg` + * 256 - `_.ary` + * 512 - `_.flip` + * @param {*} [thisArg] The `this` binding of `func`. + * @param {Array} [partials] The arguments to be partially applied. + * @param {Array} [holders] The `partials` placeholder indexes. + * @param {Array} [argPos] The argument positions of the new function. + * @param {number} [ary] The arity cap of `func`. + * @param {number} [arity] The arity of `func`. + * @returns {Function} Returns the new wrapped function. + */ +function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) { + var isBindKey = bitmask & WRAP_BIND_KEY_FLAG; + if (!isBindKey && typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + var length = partials ? partials.length : 0; + if (!length) { + bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG); + partials = holders = undefined; + } + ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0); + arity = arity === undefined ? arity : toInteger(arity); + length -= holders ? holders.length : 0; + + if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) { + var partialsRight = partials, + holdersRight = holders; + + partials = holders = undefined; + } + var data = isBindKey ? undefined : getData(func); + + var newData = [ + func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, + argPos, ary, arity + ]; + + if (data) { + mergeData(newData, data); + } + func = newData[0]; + bitmask = newData[1]; + thisArg = newData[2]; + partials = newData[3]; + holders = newData[4]; + arity = newData[9] = newData[9] === undefined + ? (isBindKey ? 0 : func.length) + : nativeMax(newData[9] - length, 0); + + if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) { + bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG); + } + if (!bitmask || bitmask == WRAP_BIND_FLAG) { + var result = createBind(func, bitmask, thisArg); + } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) { + result = createCurry(func, bitmask, arity); + } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) { + result = createPartial(func, bitmask, thisArg, partials); + } else { + result = createHybrid.apply(undefined, newData); + } + var setter = data ? baseSetData : setData; + return setWrapToString(setter(result, newData), func, bitmask); +} + +module.exports = createWrap; diff --git a/node_modules/lodash/_customDefaultsAssignIn.js b/node_modules/lodash/_customDefaultsAssignIn.js new file mode 100644 index 0000000..1f49e6f --- /dev/null +++ b/node_modules/lodash/_customDefaultsAssignIn.js @@ -0,0 +1,29 @@ +var eq = require('./eq'); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Used by `_.defaults` to customize its `_.assignIn` use to assign properties + * of source objects to the destination object for all destination properties + * that resolve to `undefined`. + * + * @private + * @param {*} objValue The destination value. + * @param {*} srcValue The source value. + * @param {string} key The key of the property to assign. + * @param {Object} object The parent object of `objValue`. + * @returns {*} Returns the value to assign. + */ +function customDefaultsAssignIn(objValue, srcValue, key, object) { + if (objValue === undefined || + (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) { + return srcValue; + } + return objValue; +} + +module.exports = customDefaultsAssignIn; diff --git a/node_modules/lodash/_customDefaultsMerge.js b/node_modules/lodash/_customDefaultsMerge.js new file mode 100644 index 0000000..4cab317 --- /dev/null +++ b/node_modules/lodash/_customDefaultsMerge.js @@ -0,0 +1,28 @@ +var baseMerge = require('./_baseMerge'), + isObject = require('./isObject'); + +/** + * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source + * objects into destination objects that are passed thru. + * + * @private + * @param {*} objValue The destination value. + * @param {*} srcValue The source value. + * @param {string} key The key of the property to merge. + * @param {Object} object The parent object of `objValue`. + * @param {Object} source The parent object of `srcValue`. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. + * @returns {*} Returns the value to assign. + */ +function customDefaultsMerge(objValue, srcValue, key, object, source, stack) { + if (isObject(objValue) && isObject(srcValue)) { + // Recursively merge objects and arrays (susceptible to call stack limits). + stack.set(srcValue, objValue); + baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack); + stack['delete'](srcValue); + } + return objValue; +} + +module.exports = customDefaultsMerge; diff --git a/node_modules/lodash/_customOmitClone.js b/node_modules/lodash/_customOmitClone.js new file mode 100644 index 0000000..968db2e --- /dev/null +++ b/node_modules/lodash/_customOmitClone.js @@ -0,0 +1,16 @@ +var isPlainObject = require('./isPlainObject'); + +/** + * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain + * objects. + * + * @private + * @param {*} value The value to inspect. + * @param {string} key The key of the property to inspect. + * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`. + */ +function customOmitClone(value) { + return isPlainObject(value) ? undefined : value; +} + +module.exports = customOmitClone; diff --git a/node_modules/lodash/_deburrLetter.js b/node_modules/lodash/_deburrLetter.js new file mode 100644 index 0000000..3e531ed --- /dev/null +++ b/node_modules/lodash/_deburrLetter.js @@ -0,0 +1,71 @@ +var basePropertyOf = require('./_basePropertyOf'); + +/** Used to map Latin Unicode letters to basic Latin letters. */ +var deburredLetters = { + // Latin-1 Supplement block. + '\xc0': 'A', '\xc1': 'A', '\xc2': 'A', '\xc3': 'A', '\xc4': 'A', '\xc5': 'A', + '\xe0': 'a', '\xe1': 'a', '\xe2': 'a', '\xe3': 'a', '\xe4': 'a', '\xe5': 'a', + '\xc7': 'C', '\xe7': 'c', + '\xd0': 'D', '\xf0': 'd', + '\xc8': 'E', '\xc9': 'E', '\xca': 'E', '\xcb': 'E', + '\xe8': 'e', '\xe9': 'e', '\xea': 'e', '\xeb': 'e', + '\xcc': 'I', '\xcd': 'I', '\xce': 'I', '\xcf': 'I', + '\xec': 'i', '\xed': 'i', '\xee': 'i', '\xef': 'i', + '\xd1': 'N', '\xf1': 'n', + '\xd2': 'O', '\xd3': 'O', '\xd4': 'O', '\xd5': 'O', '\xd6': 'O', '\xd8': 'O', + '\xf2': 'o', '\xf3': 'o', '\xf4': 'o', '\xf5': 'o', '\xf6': 'o', '\xf8': 'o', + '\xd9': 'U', '\xda': 'U', '\xdb': 'U', '\xdc': 'U', + '\xf9': 'u', '\xfa': 'u', '\xfb': 'u', '\xfc': 'u', + '\xdd': 'Y', '\xfd': 'y', '\xff': 'y', + '\xc6': 'Ae', '\xe6': 'ae', + '\xde': 'Th', '\xfe': 'th', + '\xdf': 'ss', + // Latin Extended-A block. + '\u0100': 'A', '\u0102': 'A', '\u0104': 'A', + '\u0101': 'a', '\u0103': 'a', '\u0105': 'a', + '\u0106': 'C', '\u0108': 'C', '\u010a': 'C', '\u010c': 'C', + '\u0107': 'c', '\u0109': 'c', '\u010b': 'c', '\u010d': 'c', + '\u010e': 'D', '\u0110': 'D', '\u010f': 'd', '\u0111': 'd', + '\u0112': 'E', '\u0114': 'E', '\u0116': 'E', '\u0118': 'E', '\u011a': 'E', + '\u0113': 'e', '\u0115': 'e', '\u0117': 'e', '\u0119': 'e', '\u011b': 'e', + '\u011c': 'G', '\u011e': 'G', '\u0120': 'G', '\u0122': 'G', + '\u011d': 'g', '\u011f': 'g', '\u0121': 'g', '\u0123': 'g', + '\u0124': 'H', '\u0126': 'H', '\u0125': 'h', '\u0127': 'h', + '\u0128': 'I', '\u012a': 'I', '\u012c': 'I', '\u012e': 'I', '\u0130': 'I', + '\u0129': 'i', '\u012b': 'i', '\u012d': 'i', '\u012f': 'i', '\u0131': 'i', + '\u0134': 'J', '\u0135': 'j', + '\u0136': 'K', '\u0137': 'k', '\u0138': 'k', + '\u0139': 'L', '\u013b': 'L', '\u013d': 'L', '\u013f': 'L', '\u0141': 'L', + '\u013a': 'l', '\u013c': 'l', '\u013e': 'l', '\u0140': 'l', '\u0142': 'l', + '\u0143': 'N', '\u0145': 'N', '\u0147': 'N', '\u014a': 'N', + '\u0144': 'n', '\u0146': 'n', '\u0148': 'n', '\u014b': 'n', + '\u014c': 'O', '\u014e': 'O', '\u0150': 'O', + '\u014d': 'o', '\u014f': 'o', '\u0151': 'o', + '\u0154': 'R', '\u0156': 'R', '\u0158': 'R', + '\u0155': 'r', '\u0157': 'r', '\u0159': 'r', + '\u015a': 'S', '\u015c': 'S', '\u015e': 'S', '\u0160': 'S', + '\u015b': 's', '\u015d': 's', '\u015f': 's', '\u0161': 's', + '\u0162': 'T', '\u0164': 'T', '\u0166': 'T', + '\u0163': 't', '\u0165': 't', '\u0167': 't', + '\u0168': 'U', '\u016a': 'U', '\u016c': 'U', '\u016e': 'U', '\u0170': 'U', '\u0172': 'U', + '\u0169': 'u', '\u016b': 'u', '\u016d': 'u', '\u016f': 'u', '\u0171': 'u', '\u0173': 'u', + '\u0174': 'W', '\u0175': 'w', + '\u0176': 'Y', '\u0177': 'y', '\u0178': 'Y', + '\u0179': 'Z', '\u017b': 'Z', '\u017d': 'Z', + '\u017a': 'z', '\u017c': 'z', '\u017e': 'z', + '\u0132': 'IJ', '\u0133': 'ij', + '\u0152': 'Oe', '\u0153': 'oe', + '\u0149': "'n", '\u017f': 's' +}; + +/** + * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A + * letters to basic Latin letters. + * + * @private + * @param {string} letter The matched letter to deburr. + * @returns {string} Returns the deburred letter. + */ +var deburrLetter = basePropertyOf(deburredLetters); + +module.exports = deburrLetter; diff --git a/node_modules/lodash/_defineProperty.js b/node_modules/lodash/_defineProperty.js new file mode 100644 index 0000000..b6116d9 --- /dev/null +++ b/node_modules/lodash/_defineProperty.js @@ -0,0 +1,11 @@ +var getNative = require('./_getNative'); + +var defineProperty = (function() { + try { + var func = getNative(Object, 'defineProperty'); + func({}, '', {}); + return func; + } catch (e) {} +}()); + +module.exports = defineProperty; diff --git a/node_modules/lodash/_equalArrays.js b/node_modules/lodash/_equalArrays.js new file mode 100644 index 0000000..824228c --- /dev/null +++ b/node_modules/lodash/_equalArrays.js @@ -0,0 +1,84 @@ +var SetCache = require('./_SetCache'), + arraySome = require('./_arraySome'), + cacheHas = require('./_cacheHas'); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + +/** + * A specialized version of `baseIsEqualDeep` for arrays with support for + * partial deep comparisons. + * + * @private + * @param {Array} array The array to compare. + * @param {Array} other The other array to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `array` and `other` objects. + * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. + */ +function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, + arrLength = array.length, + othLength = other.length; + + if (arrLength != othLength && !(isPartial && othLength > arrLength)) { + return false; + } + // Check that cyclic values are equal. + var arrStacked = stack.get(array); + var othStacked = stack.get(other); + if (arrStacked && othStacked) { + return arrStacked == other && othStacked == array; + } + var index = -1, + result = true, + seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined; + + stack.set(array, other); + stack.set(other, array); + + // Ignore non-index properties. + while (++index < arrLength) { + var arrValue = array[index], + othValue = other[index]; + + if (customizer) { + var compared = isPartial + ? customizer(othValue, arrValue, index, other, array, stack) + : customizer(arrValue, othValue, index, array, other, stack); + } + if (compared !== undefined) { + if (compared) { + continue; + } + result = false; + break; + } + // Recursively compare arrays (susceptible to call stack limits). + if (seen) { + if (!arraySome(other, function(othValue, othIndex) { + if (!cacheHas(seen, othIndex) && + (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + return seen.push(othIndex); + } + })) { + result = false; + break; + } + } else if (!( + arrValue === othValue || + equalFunc(arrValue, othValue, bitmask, customizer, stack) + )) { + result = false; + break; + } + } + stack['delete'](array); + stack['delete'](other); + return result; +} + +module.exports = equalArrays; diff --git a/node_modules/lodash/_equalByTag.js b/node_modules/lodash/_equalByTag.js new file mode 100644 index 0000000..71919e8 --- /dev/null +++ b/node_modules/lodash/_equalByTag.js @@ -0,0 +1,112 @@ +var Symbol = require('./_Symbol'), + Uint8Array = require('./_Uint8Array'), + eq = require('./eq'), + equalArrays = require('./_equalArrays'), + mapToArray = require('./_mapToArray'), + setToArray = require('./_setToArray'); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + +/** `Object#toString` result references. */ +var boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + mapTag = '[object Map]', + numberTag = '[object Number]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + symbolTag = '[object Symbol]'; + +var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]'; + +/** Used to convert symbols to primitives and strings. */ +var symbolProto = Symbol ? Symbol.prototype : undefined, + symbolValueOf = symbolProto ? symbolProto.valueOf : undefined; + +/** + * A specialized version of `baseIsEqualDeep` for comparing objects of + * the same `toStringTag`. + * + * **Note:** This function only supports comparing values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {string} tag The `toStringTag` of the objects to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { + switch (tag) { + case dataViewTag: + if ((object.byteLength != other.byteLength) || + (object.byteOffset != other.byteOffset)) { + return false; + } + object = object.buffer; + other = other.buffer; + + case arrayBufferTag: + if ((object.byteLength != other.byteLength) || + !equalFunc(new Uint8Array(object), new Uint8Array(other))) { + return false; + } + return true; + + case boolTag: + case dateTag: + case numberTag: + // Coerce booleans to `1` or `0` and dates to milliseconds. + // Invalid dates are coerced to `NaN`. + return eq(+object, +other); + + case errorTag: + return object.name == other.name && object.message == other.message; + + case regexpTag: + case stringTag: + // Coerce regexes to strings and treat strings, primitives and objects, + // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring + // for more details. + return object == (other + ''); + + case mapTag: + var convert = mapToArray; + + case setTag: + var isPartial = bitmask & COMPARE_PARTIAL_FLAG; + convert || (convert = setToArray); + + if (object.size != other.size && !isPartial) { + return false; + } + // Assume cyclic values are equal. + var stacked = stack.get(object); + if (stacked) { + return stacked == other; + } + bitmask |= COMPARE_UNORDERED_FLAG; + + // Recursively compare objects (susceptible to call stack limits). + stack.set(object, other); + var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); + stack['delete'](object); + return result; + + case symbolTag: + if (symbolValueOf) { + return symbolValueOf.call(object) == symbolValueOf.call(other); + } + } + return false; +} + +module.exports = equalByTag; diff --git a/node_modules/lodash/_equalObjects.js b/node_modules/lodash/_equalObjects.js new file mode 100644 index 0000000..cdaacd2 --- /dev/null +++ b/node_modules/lodash/_equalObjects.js @@ -0,0 +1,90 @@ +var getAllKeys = require('./_getAllKeys'); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1; + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * A specialized version of `baseIsEqualDeep` for objects with support for + * partial deep comparisons. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, + objProps = getAllKeys(object), + objLength = objProps.length, + othProps = getAllKeys(other), + othLength = othProps.length; + + if (objLength != othLength && !isPartial) { + return false; + } + var index = objLength; + while (index--) { + var key = objProps[index]; + if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { + return false; + } + } + // Check that cyclic values are equal. + var objStacked = stack.get(object); + var othStacked = stack.get(other); + if (objStacked && othStacked) { + return objStacked == other && othStacked == object; + } + var result = true; + stack.set(object, other); + stack.set(other, object); + + var skipCtor = isPartial; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], + othValue = other[key]; + + if (customizer) { + var compared = isPartial + ? customizer(othValue, objValue, key, other, object, stack) + : customizer(objValue, othValue, key, object, other, stack); + } + // Recursively compare objects (susceptible to call stack limits). + if (!(compared === undefined + ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) + : compared + )) { + result = false; + break; + } + skipCtor || (skipCtor = key == 'constructor'); + } + if (result && !skipCtor) { + var objCtor = object.constructor, + othCtor = other.constructor; + + // Non `Object` object instances with different constructors are not equal. + if (objCtor != othCtor && + ('constructor' in object && 'constructor' in other) && + !(typeof objCtor == 'function' && objCtor instanceof objCtor && + typeof othCtor == 'function' && othCtor instanceof othCtor)) { + result = false; + } + } + stack['delete'](object); + stack['delete'](other); + return result; +} + +module.exports = equalObjects; diff --git a/node_modules/lodash/_escapeHtmlChar.js b/node_modules/lodash/_escapeHtmlChar.js new file mode 100644 index 0000000..7ca68ee --- /dev/null +++ b/node_modules/lodash/_escapeHtmlChar.js @@ -0,0 +1,21 @@ +var basePropertyOf = require('./_basePropertyOf'); + +/** Used to map characters to HTML entities. */ +var htmlEscapes = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''' +}; + +/** + * Used by `_.escape` to convert characters to HTML entities. + * + * @private + * @param {string} chr The matched character to escape. + * @returns {string} Returns the escaped character. + */ +var escapeHtmlChar = basePropertyOf(htmlEscapes); + +module.exports = escapeHtmlChar; diff --git a/node_modules/lodash/_escapeStringChar.js b/node_modules/lodash/_escapeStringChar.js new file mode 100644 index 0000000..44eca96 --- /dev/null +++ b/node_modules/lodash/_escapeStringChar.js @@ -0,0 +1,22 @@ +/** Used to escape characters for inclusion in compiled string literals. */ +var stringEscapes = { + '\\': '\\', + "'": "'", + '\n': 'n', + '\r': 'r', + '\u2028': 'u2028', + '\u2029': 'u2029' +}; + +/** + * Used by `_.template` to escape characters for inclusion in compiled string literals. + * + * @private + * @param {string} chr The matched character to escape. + * @returns {string} Returns the escaped character. + */ +function escapeStringChar(chr) { + return '\\' + stringEscapes[chr]; +} + +module.exports = escapeStringChar; diff --git a/node_modules/lodash/_flatRest.js b/node_modules/lodash/_flatRest.js new file mode 100644 index 0000000..94ab6cc --- /dev/null +++ b/node_modules/lodash/_flatRest.js @@ -0,0 +1,16 @@ +var flatten = require('./flatten'), + overRest = require('./_overRest'), + setToString = require('./_setToString'); + +/** + * A specialized version of `baseRest` which flattens the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @returns {Function} Returns the new function. + */ +function flatRest(func) { + return setToString(overRest(func, undefined, flatten), func + ''); +} + +module.exports = flatRest; diff --git a/node_modules/lodash/_freeGlobal.js b/node_modules/lodash/_freeGlobal.js new file mode 100644 index 0000000..bbec998 --- /dev/null +++ b/node_modules/lodash/_freeGlobal.js @@ -0,0 +1,4 @@ +/** Detect free variable `global` from Node.js. */ +var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; + +module.exports = freeGlobal; diff --git a/node_modules/lodash/_getAllKeys.js b/node_modules/lodash/_getAllKeys.js new file mode 100644 index 0000000..a9ce699 --- /dev/null +++ b/node_modules/lodash/_getAllKeys.js @@ -0,0 +1,16 @@ +var baseGetAllKeys = require('./_baseGetAllKeys'), + getSymbols = require('./_getSymbols'), + keys = require('./keys'); + +/** + * Creates an array of own enumerable property names and symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. + */ +function getAllKeys(object) { + return baseGetAllKeys(object, keys, getSymbols); +} + +module.exports = getAllKeys; diff --git a/node_modules/lodash/_getAllKeysIn.js b/node_modules/lodash/_getAllKeysIn.js new file mode 100644 index 0000000..1b46678 --- /dev/null +++ b/node_modules/lodash/_getAllKeysIn.js @@ -0,0 +1,17 @@ +var baseGetAllKeys = require('./_baseGetAllKeys'), + getSymbolsIn = require('./_getSymbolsIn'), + keysIn = require('./keysIn'); + +/** + * Creates an array of own and inherited enumerable property names and + * symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. + */ +function getAllKeysIn(object) { + return baseGetAllKeys(object, keysIn, getSymbolsIn); +} + +module.exports = getAllKeysIn; diff --git a/node_modules/lodash/_getData.js b/node_modules/lodash/_getData.js new file mode 100644 index 0000000..a1fe7b7 --- /dev/null +++ b/node_modules/lodash/_getData.js @@ -0,0 +1,15 @@ +var metaMap = require('./_metaMap'), + noop = require('./noop'); + +/** + * Gets metadata for `func`. + * + * @private + * @param {Function} func The function to query. + * @returns {*} Returns the metadata for `func`. + */ +var getData = !metaMap ? noop : function(func) { + return metaMap.get(func); +}; + +module.exports = getData; diff --git a/node_modules/lodash/_getFuncName.js b/node_modules/lodash/_getFuncName.js new file mode 100644 index 0000000..21e15b3 --- /dev/null +++ b/node_modules/lodash/_getFuncName.js @@ -0,0 +1,31 @@ +var realNames = require('./_realNames'); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Gets the name of `func`. + * + * @private + * @param {Function} func The function to query. + * @returns {string} Returns the function name. + */ +function getFuncName(func) { + var result = (func.name + ''), + array = realNames[result], + length = hasOwnProperty.call(realNames, result) ? array.length : 0; + + while (length--) { + var data = array[length], + otherFunc = data.func; + if (otherFunc == null || otherFunc == func) { + return data.name; + } + } + return result; +} + +module.exports = getFuncName; diff --git a/node_modules/lodash/_getHolder.js b/node_modules/lodash/_getHolder.js new file mode 100644 index 0000000..65e94b5 --- /dev/null +++ b/node_modules/lodash/_getHolder.js @@ -0,0 +1,13 @@ +/** + * Gets the argument placeholder value for `func`. + * + * @private + * @param {Function} func The function to inspect. + * @returns {*} Returns the placeholder value. + */ +function getHolder(func) { + var object = func; + return object.placeholder; +} + +module.exports = getHolder; diff --git a/node_modules/lodash/_getMapData.js b/node_modules/lodash/_getMapData.js new file mode 100644 index 0000000..17f6303 --- /dev/null +++ b/node_modules/lodash/_getMapData.js @@ -0,0 +1,18 @@ +var isKeyable = require('./_isKeyable'); + +/** + * Gets the data for `map`. + * + * @private + * @param {Object} map The map to query. + * @param {string} key The reference key. + * @returns {*} Returns the map data. + */ +function getMapData(map, key) { + var data = map.__data__; + return isKeyable(key) + ? data[typeof key == 'string' ? 'string' : 'hash'] + : data.map; +} + +module.exports = getMapData; diff --git a/node_modules/lodash/_getMatchData.js b/node_modules/lodash/_getMatchData.js new file mode 100644 index 0000000..2cc70f9 --- /dev/null +++ b/node_modules/lodash/_getMatchData.js @@ -0,0 +1,24 @@ +var isStrictComparable = require('./_isStrictComparable'), + keys = require('./keys'); + +/** + * Gets the property names, values, and compare flags of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the match data of `object`. + */ +function getMatchData(object) { + var result = keys(object), + length = result.length; + + while (length--) { + var key = result[length], + value = object[key]; + + result[length] = [key, value, isStrictComparable(value)]; + } + return result; +} + +module.exports = getMatchData; diff --git a/node_modules/lodash/_getNative.js b/node_modules/lodash/_getNative.js new file mode 100644 index 0000000..97a622b --- /dev/null +++ b/node_modules/lodash/_getNative.js @@ -0,0 +1,17 @@ +var baseIsNative = require('./_baseIsNative'), + getValue = require('./_getValue'); + +/** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ +function getNative(object, key) { + var value = getValue(object, key); + return baseIsNative(value) ? value : undefined; +} + +module.exports = getNative; diff --git a/node_modules/lodash/_getPrototype.js b/node_modules/lodash/_getPrototype.js new file mode 100644 index 0000000..e808612 --- /dev/null +++ b/node_modules/lodash/_getPrototype.js @@ -0,0 +1,6 @@ +var overArg = require('./_overArg'); + +/** Built-in value references. */ +var getPrototype = overArg(Object.getPrototypeOf, Object); + +module.exports = getPrototype; diff --git a/node_modules/lodash/_getRawTag.js b/node_modules/lodash/_getRawTag.js new file mode 100644 index 0000000..49a95c9 --- /dev/null +++ b/node_modules/lodash/_getRawTag.js @@ -0,0 +1,46 @@ +var Symbol = require('./_Symbol'); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var nativeObjectToString = objectProto.toString; + +/** Built-in value references. */ +var symToStringTag = Symbol ? Symbol.toStringTag : undefined; + +/** + * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the raw `toStringTag`. + */ +function getRawTag(value) { + var isOwn = hasOwnProperty.call(value, symToStringTag), + tag = value[symToStringTag]; + + try { + value[symToStringTag] = undefined; + var unmasked = true; + } catch (e) {} + + var result = nativeObjectToString.call(value); + if (unmasked) { + if (isOwn) { + value[symToStringTag] = tag; + } else { + delete value[symToStringTag]; + } + } + return result; +} + +module.exports = getRawTag; diff --git a/node_modules/lodash/_getSymbols.js b/node_modules/lodash/_getSymbols.js new file mode 100644 index 0000000..7d6eafe --- /dev/null +++ b/node_modules/lodash/_getSymbols.js @@ -0,0 +1,30 @@ +var arrayFilter = require('./_arrayFilter'), + stubArray = require('./stubArray'); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Built-in value references. */ +var propertyIsEnumerable = objectProto.propertyIsEnumerable; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeGetSymbols = Object.getOwnPropertySymbols; + +/** + * Creates an array of the own enumerable symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. + */ +var getSymbols = !nativeGetSymbols ? stubArray : function(object) { + if (object == null) { + return []; + } + object = Object(object); + return arrayFilter(nativeGetSymbols(object), function(symbol) { + return propertyIsEnumerable.call(object, symbol); + }); +}; + +module.exports = getSymbols; diff --git a/node_modules/lodash/_getSymbolsIn.js b/node_modules/lodash/_getSymbolsIn.js new file mode 100644 index 0000000..cec0855 --- /dev/null +++ b/node_modules/lodash/_getSymbolsIn.js @@ -0,0 +1,25 @@ +var arrayPush = require('./_arrayPush'), + getPrototype = require('./_getPrototype'), + getSymbols = require('./_getSymbols'), + stubArray = require('./stubArray'); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeGetSymbols = Object.getOwnPropertySymbols; + +/** + * Creates an array of the own and inherited enumerable symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. + */ +var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { + var result = []; + while (object) { + arrayPush(result, getSymbols(object)); + object = getPrototype(object); + } + return result; +}; + +module.exports = getSymbolsIn; diff --git a/node_modules/lodash/_getTag.js b/node_modules/lodash/_getTag.js new file mode 100644 index 0000000..deaf89d --- /dev/null +++ b/node_modules/lodash/_getTag.js @@ -0,0 +1,58 @@ +var DataView = require('./_DataView'), + Map = require('./_Map'), + Promise = require('./_Promise'), + Set = require('./_Set'), + WeakMap = require('./_WeakMap'), + baseGetTag = require('./_baseGetTag'), + toSource = require('./_toSource'); + +/** `Object#toString` result references. */ +var mapTag = '[object Map]', + objectTag = '[object Object]', + promiseTag = '[object Promise]', + setTag = '[object Set]', + weakMapTag = '[object WeakMap]'; + +var dataViewTag = '[object DataView]'; + +/** Used to detect maps, sets, and weakmaps. */ +var dataViewCtorString = toSource(DataView), + mapCtorString = toSource(Map), + promiseCtorString = toSource(Promise), + setCtorString = toSource(Set), + weakMapCtorString = toSource(WeakMap); + +/** + * Gets the `toStringTag` of `value`. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ +var getTag = baseGetTag; + +// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. +if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || + (Map && getTag(new Map) != mapTag) || + (Promise && getTag(Promise.resolve()) != promiseTag) || + (Set && getTag(new Set) != setTag) || + (WeakMap && getTag(new WeakMap) != weakMapTag)) { + getTag = function(value) { + var result = baseGetTag(value), + Ctor = result == objectTag ? value.constructor : undefined, + ctorString = Ctor ? toSource(Ctor) : ''; + + if (ctorString) { + switch (ctorString) { + case dataViewCtorString: return dataViewTag; + case mapCtorString: return mapTag; + case promiseCtorString: return promiseTag; + case setCtorString: return setTag; + case weakMapCtorString: return weakMapTag; + } + } + return result; + }; +} + +module.exports = getTag; diff --git a/node_modules/lodash/_getValue.js b/node_modules/lodash/_getValue.js new file mode 100644 index 0000000..5f7d773 --- /dev/null +++ b/node_modules/lodash/_getValue.js @@ -0,0 +1,13 @@ +/** + * Gets the value at `key` of `object`. + * + * @private + * @param {Object} [object] The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ +function getValue(object, key) { + return object == null ? undefined : object[key]; +} + +module.exports = getValue; diff --git a/node_modules/lodash/_getView.js b/node_modules/lodash/_getView.js new file mode 100644 index 0000000..df1e5d4 --- /dev/null +++ b/node_modules/lodash/_getView.js @@ -0,0 +1,33 @@ +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max, + nativeMin = Math.min; + +/** + * Gets the view, applying any `transforms` to the `start` and `end` positions. + * + * @private + * @param {number} start The start of the view. + * @param {number} end The end of the view. + * @param {Array} transforms The transformations to apply to the view. + * @returns {Object} Returns an object containing the `start` and `end` + * positions of the view. + */ +function getView(start, end, transforms) { + var index = -1, + length = transforms.length; + + while (++index < length) { + var data = transforms[index], + size = data.size; + + switch (data.type) { + case 'drop': start += size; break; + case 'dropRight': end -= size; break; + case 'take': end = nativeMin(end, start + size); break; + case 'takeRight': start = nativeMax(start, end - size); break; + } + } + return { 'start': start, 'end': end }; +} + +module.exports = getView; diff --git a/node_modules/lodash/_getWrapDetails.js b/node_modules/lodash/_getWrapDetails.js new file mode 100644 index 0000000..3bcc6e4 --- /dev/null +++ b/node_modules/lodash/_getWrapDetails.js @@ -0,0 +1,17 @@ +/** Used to match wrap detail comments. */ +var reWrapDetails = /\{\n\/\* \[wrapped with (.+)\] \*/, + reSplitDetails = /,? & /; + +/** + * Extracts wrapper details from the `source` body comment. + * + * @private + * @param {string} source The source to inspect. + * @returns {Array} Returns the wrapper details. + */ +function getWrapDetails(source) { + var match = source.match(reWrapDetails); + return match ? match[1].split(reSplitDetails) : []; +} + +module.exports = getWrapDetails; diff --git a/node_modules/lodash/_hasPath.js b/node_modules/lodash/_hasPath.js new file mode 100644 index 0000000..93dbde1 --- /dev/null +++ b/node_modules/lodash/_hasPath.js @@ -0,0 +1,39 @@ +var castPath = require('./_castPath'), + isArguments = require('./isArguments'), + isArray = require('./isArray'), + isIndex = require('./_isIndex'), + isLength = require('./isLength'), + toKey = require('./_toKey'); + +/** + * Checks if `path` exists on `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @param {Function} hasFunc The function to check properties. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + */ +function hasPath(object, path, hasFunc) { + path = castPath(path, object); + + var index = -1, + length = path.length, + result = false; + + while (++index < length) { + var key = toKey(path[index]); + if (!(result = object != null && hasFunc(object, key))) { + break; + } + object = object[key]; + } + if (result || ++index != length) { + return result; + } + length = object == null ? 0 : object.length; + return !!length && isLength(length) && isIndex(key, length) && + (isArray(object) || isArguments(object)); +} + +module.exports = hasPath; diff --git a/node_modules/lodash/_hasUnicode.js b/node_modules/lodash/_hasUnicode.js new file mode 100644 index 0000000..cb6ca15 --- /dev/null +++ b/node_modules/lodash/_hasUnicode.js @@ -0,0 +1,26 @@ +/** Used to compose unicode character classes. */ +var rsAstralRange = '\\ud800-\\udfff', + rsComboMarksRange = '\\u0300-\\u036f', + reComboHalfMarksRange = '\\ufe20-\\ufe2f', + rsComboSymbolsRange = '\\u20d0-\\u20ff', + rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, + rsVarRange = '\\ufe0e\\ufe0f'; + +/** Used to compose unicode capture groups. */ +var rsZWJ = '\\u200d'; + +/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */ +var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']'); + +/** + * Checks if `string` contains Unicode symbols. + * + * @private + * @param {string} string The string to inspect. + * @returns {boolean} Returns `true` if a symbol is found, else `false`. + */ +function hasUnicode(string) { + return reHasUnicode.test(string); +} + +module.exports = hasUnicode; diff --git a/node_modules/lodash/_hasUnicodeWord.js b/node_modules/lodash/_hasUnicodeWord.js new file mode 100644 index 0000000..95d52c4 --- /dev/null +++ b/node_modules/lodash/_hasUnicodeWord.js @@ -0,0 +1,15 @@ +/** Used to detect strings that need a more robust regexp to match words. */ +var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/; + +/** + * Checks if `string` contains a word composed of Unicode symbols. + * + * @private + * @param {string} string The string to inspect. + * @returns {boolean} Returns `true` if a word is found, else `false`. + */ +function hasUnicodeWord(string) { + return reHasUnicodeWord.test(string); +} + +module.exports = hasUnicodeWord; diff --git a/node_modules/lodash/_hashClear.js b/node_modules/lodash/_hashClear.js new file mode 100644 index 0000000..5d4b70c --- /dev/null +++ b/node_modules/lodash/_hashClear.js @@ -0,0 +1,15 @@ +var nativeCreate = require('./_nativeCreate'); + +/** + * Removes all key-value entries from the hash. + * + * @private + * @name clear + * @memberOf Hash + */ +function hashClear() { + this.__data__ = nativeCreate ? nativeCreate(null) : {}; + this.size = 0; +} + +module.exports = hashClear; diff --git a/node_modules/lodash/_hashDelete.js b/node_modules/lodash/_hashDelete.js new file mode 100644 index 0000000..ea9dabf --- /dev/null +++ b/node_modules/lodash/_hashDelete.js @@ -0,0 +1,17 @@ +/** + * Removes `key` and its value from the hash. + * + * @private + * @name delete + * @memberOf Hash + * @param {Object} hash The hash to modify. + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function hashDelete(key) { + var result = this.has(key) && delete this.__data__[key]; + this.size -= result ? 1 : 0; + return result; +} + +module.exports = hashDelete; diff --git a/node_modules/lodash/_hashGet.js b/node_modules/lodash/_hashGet.js new file mode 100644 index 0000000..1fc2f34 --- /dev/null +++ b/node_modules/lodash/_hashGet.js @@ -0,0 +1,30 @@ +var nativeCreate = require('./_nativeCreate'); + +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Gets the hash value for `key`. + * + * @private + * @name get + * @memberOf Hash + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function hashGet(key) { + var data = this.__data__; + if (nativeCreate) { + var result = data[key]; + return result === HASH_UNDEFINED ? undefined : result; + } + return hasOwnProperty.call(data, key) ? data[key] : undefined; +} + +module.exports = hashGet; diff --git a/node_modules/lodash/_hashHas.js b/node_modules/lodash/_hashHas.js new file mode 100644 index 0000000..281a551 --- /dev/null +++ b/node_modules/lodash/_hashHas.js @@ -0,0 +1,23 @@ +var nativeCreate = require('./_nativeCreate'); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Checks if a hash value for `key` exists. + * + * @private + * @name has + * @memberOf Hash + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function hashHas(key) { + var data = this.__data__; + return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key); +} + +module.exports = hashHas; diff --git a/node_modules/lodash/_hashSet.js b/node_modules/lodash/_hashSet.js new file mode 100644 index 0000000..e105528 --- /dev/null +++ b/node_modules/lodash/_hashSet.js @@ -0,0 +1,23 @@ +var nativeCreate = require('./_nativeCreate'); + +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; + +/** + * Sets the hash `key` to `value`. + * + * @private + * @name set + * @memberOf Hash + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the hash instance. + */ +function hashSet(key, value) { + var data = this.__data__; + this.size += this.has(key) ? 0 : 1; + data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; + return this; +} + +module.exports = hashSet; diff --git a/node_modules/lodash/_initCloneArray.js b/node_modules/lodash/_initCloneArray.js new file mode 100644 index 0000000..078c15a --- /dev/null +++ b/node_modules/lodash/_initCloneArray.js @@ -0,0 +1,26 @@ +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Initializes an array clone. + * + * @private + * @param {Array} array The array to clone. + * @returns {Array} Returns the initialized clone. + */ +function initCloneArray(array) { + var length = array.length, + result = new array.constructor(length); + + // Add properties assigned by `RegExp#exec`. + if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) { + result.index = array.index; + result.input = array.input; + } + return result; +} + +module.exports = initCloneArray; diff --git a/node_modules/lodash/_initCloneByTag.js b/node_modules/lodash/_initCloneByTag.js new file mode 100644 index 0000000..f69a008 --- /dev/null +++ b/node_modules/lodash/_initCloneByTag.js @@ -0,0 +1,77 @@ +var cloneArrayBuffer = require('./_cloneArrayBuffer'), + cloneDataView = require('./_cloneDataView'), + cloneRegExp = require('./_cloneRegExp'), + cloneSymbol = require('./_cloneSymbol'), + cloneTypedArray = require('./_cloneTypedArray'); + +/** `Object#toString` result references. */ +var boolTag = '[object Boolean]', + dateTag = '[object Date]', + mapTag = '[object Map]', + numberTag = '[object Number]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + symbolTag = '[object Symbol]'; + +var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + +/** + * Initializes an object clone based on its `toStringTag`. + * + * **Note:** This function only supports cloning values with tags of + * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`. + * + * @private + * @param {Object} object The object to clone. + * @param {string} tag The `toStringTag` of the object to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the initialized clone. + */ +function initCloneByTag(object, tag, isDeep) { + var Ctor = object.constructor; + switch (tag) { + case arrayBufferTag: + return cloneArrayBuffer(object); + + case boolTag: + case dateTag: + return new Ctor(+object); + + case dataViewTag: + return cloneDataView(object, isDeep); + + case float32Tag: case float64Tag: + case int8Tag: case int16Tag: case int32Tag: + case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag: + return cloneTypedArray(object, isDeep); + + case mapTag: + return new Ctor; + + case numberTag: + case stringTag: + return new Ctor(object); + + case regexpTag: + return cloneRegExp(object); + + case setTag: + return new Ctor; + + case symbolTag: + return cloneSymbol(object); + } +} + +module.exports = initCloneByTag; diff --git a/node_modules/lodash/_initCloneObject.js b/node_modules/lodash/_initCloneObject.js new file mode 100644 index 0000000..5a13e64 --- /dev/null +++ b/node_modules/lodash/_initCloneObject.js @@ -0,0 +1,18 @@ +var baseCreate = require('./_baseCreate'), + getPrototype = require('./_getPrototype'), + isPrototype = require('./_isPrototype'); + +/** + * Initializes an object clone. + * + * @private + * @param {Object} object The object to clone. + * @returns {Object} Returns the initialized clone. + */ +function initCloneObject(object) { + return (typeof object.constructor == 'function' && !isPrototype(object)) + ? baseCreate(getPrototype(object)) + : {}; +} + +module.exports = initCloneObject; diff --git a/node_modules/lodash/_insertWrapDetails.js b/node_modules/lodash/_insertWrapDetails.js new file mode 100644 index 0000000..e790808 --- /dev/null +++ b/node_modules/lodash/_insertWrapDetails.js @@ -0,0 +1,23 @@ +/** Used to match wrap detail comments. */ +var reWrapComment = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/; + +/** + * Inserts wrapper `details` in a comment at the top of the `source` body. + * + * @private + * @param {string} source The source to modify. + * @returns {Array} details The details to insert. + * @returns {string} Returns the modified source. + */ +function insertWrapDetails(source, details) { + var length = details.length; + if (!length) { + return source; + } + var lastIndex = length - 1; + details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex]; + details = details.join(length > 2 ? ', ' : ' '); + return source.replace(reWrapComment, '{\n/* [wrapped with ' + details + '] */\n'); +} + +module.exports = insertWrapDetails; diff --git a/node_modules/lodash/_isFlattenable.js b/node_modules/lodash/_isFlattenable.js new file mode 100644 index 0000000..4cc2c24 --- /dev/null +++ b/node_modules/lodash/_isFlattenable.js @@ -0,0 +1,20 @@ +var Symbol = require('./_Symbol'), + isArguments = require('./isArguments'), + isArray = require('./isArray'); + +/** Built-in value references. */ +var spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined; + +/** + * Checks if `value` is a flattenable `arguments` object or array. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. + */ +function isFlattenable(value) { + return isArray(value) || isArguments(value) || + !!(spreadableSymbol && value && value[spreadableSymbol]); +} + +module.exports = isFlattenable; diff --git a/node_modules/lodash/_isIndex.js b/node_modules/lodash/_isIndex.js new file mode 100644 index 0000000..061cd39 --- /dev/null +++ b/node_modules/lodash/_isIndex.js @@ -0,0 +1,25 @@ +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** Used to detect unsigned integer values. */ +var reIsUint = /^(?:0|[1-9]\d*)$/; + +/** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ +function isIndex(value, length) { + var type = typeof value; + length = length == null ? MAX_SAFE_INTEGER : length; + + return !!length && + (type == 'number' || + (type != 'symbol' && reIsUint.test(value))) && + (value > -1 && value % 1 == 0 && value < length); +} + +module.exports = isIndex; diff --git a/node_modules/lodash/_isIterateeCall.js b/node_modules/lodash/_isIterateeCall.js new file mode 100644 index 0000000..a0bb5a9 --- /dev/null +++ b/node_modules/lodash/_isIterateeCall.js @@ -0,0 +1,30 @@ +var eq = require('./eq'), + isArrayLike = require('./isArrayLike'), + isIndex = require('./_isIndex'), + isObject = require('./isObject'); + +/** + * Checks if the given arguments are from an iteratee call. + * + * @private + * @param {*} value The potential iteratee value argument. + * @param {*} index The potential iteratee index or key argument. + * @param {*} object The potential iteratee object argument. + * @returns {boolean} Returns `true` if the arguments are from an iteratee call, + * else `false`. + */ +function isIterateeCall(value, index, object) { + if (!isObject(object)) { + return false; + } + var type = typeof index; + if (type == 'number' + ? (isArrayLike(object) && isIndex(index, object.length)) + : (type == 'string' && index in object) + ) { + return eq(object[index], value); + } + return false; +} + +module.exports = isIterateeCall; diff --git a/node_modules/lodash/_isKey.js b/node_modules/lodash/_isKey.js new file mode 100644 index 0000000..ff08b06 --- /dev/null +++ b/node_modules/lodash/_isKey.js @@ -0,0 +1,29 @@ +var isArray = require('./isArray'), + isSymbol = require('./isSymbol'); + +/** Used to match property names within property paths. */ +var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, + reIsPlainProp = /^\w*$/; + +/** + * Checks if `value` is a property name and not a property path. + * + * @private + * @param {*} value The value to check. + * @param {Object} [object] The object to query keys on. + * @returns {boolean} Returns `true` if `value` is a property name, else `false`. + */ +function isKey(value, object) { + if (isArray(value)) { + return false; + } + var type = typeof value; + if (type == 'number' || type == 'symbol' || type == 'boolean' || + value == null || isSymbol(value)) { + return true; + } + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || + (object != null && value in Object(object)); +} + +module.exports = isKey; diff --git a/node_modules/lodash/_isKeyable.js b/node_modules/lodash/_isKeyable.js new file mode 100644 index 0000000..39f1828 --- /dev/null +++ b/node_modules/lodash/_isKeyable.js @@ -0,0 +1,15 @@ +/** + * Checks if `value` is suitable for use as unique object key. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is suitable, else `false`. + */ +function isKeyable(value) { + var type = typeof value; + return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') + ? (value !== '__proto__') + : (value === null); +} + +module.exports = isKeyable; diff --git a/node_modules/lodash/_isLaziable.js b/node_modules/lodash/_isLaziable.js new file mode 100644 index 0000000..a57c4f2 --- /dev/null +++ b/node_modules/lodash/_isLaziable.js @@ -0,0 +1,28 @@ +var LazyWrapper = require('./_LazyWrapper'), + getData = require('./_getData'), + getFuncName = require('./_getFuncName'), + lodash = require('./wrapperLodash'); + +/** + * Checks if `func` has a lazy counterpart. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` has a lazy counterpart, + * else `false`. + */ +function isLaziable(func) { + var funcName = getFuncName(func), + other = lodash[funcName]; + + if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) { + return false; + } + if (func === other) { + return true; + } + var data = getData(other); + return !!data && func === data[0]; +} + +module.exports = isLaziable; diff --git a/node_modules/lodash/_isMaskable.js b/node_modules/lodash/_isMaskable.js new file mode 100644 index 0000000..eb98d09 --- /dev/null +++ b/node_modules/lodash/_isMaskable.js @@ -0,0 +1,14 @@ +var coreJsData = require('./_coreJsData'), + isFunction = require('./isFunction'), + stubFalse = require('./stubFalse'); + +/** + * Checks if `func` is capable of being masked. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `func` is maskable, else `false`. + */ +var isMaskable = coreJsData ? isFunction : stubFalse; + +module.exports = isMaskable; diff --git a/node_modules/lodash/_isMasked.js b/node_modules/lodash/_isMasked.js new file mode 100644 index 0000000..4b0f21b --- /dev/null +++ b/node_modules/lodash/_isMasked.js @@ -0,0 +1,20 @@ +var coreJsData = require('./_coreJsData'); + +/** Used to detect methods masquerading as native. */ +var maskSrcKey = (function() { + var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); + return uid ? ('Symbol(src)_1.' + uid) : ''; +}()); + +/** + * Checks if `func` has its source masked. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` is masked, else `false`. + */ +function isMasked(func) { + return !!maskSrcKey && (maskSrcKey in func); +} + +module.exports = isMasked; diff --git a/node_modules/lodash/_isPrototype.js b/node_modules/lodash/_isPrototype.js new file mode 100644 index 0000000..0f29498 --- /dev/null +++ b/node_modules/lodash/_isPrototype.js @@ -0,0 +1,18 @@ +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** + * Checks if `value` is likely a prototype object. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. + */ +function isPrototype(value) { + var Ctor = value && value.constructor, + proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; + + return value === proto; +} + +module.exports = isPrototype; diff --git a/node_modules/lodash/_isStrictComparable.js b/node_modules/lodash/_isStrictComparable.js new file mode 100644 index 0000000..b59f40b --- /dev/null +++ b/node_modules/lodash/_isStrictComparable.js @@ -0,0 +1,15 @@ +var isObject = require('./isObject'); + +/** + * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` if suitable for strict + * equality comparisons, else `false`. + */ +function isStrictComparable(value) { + return value === value && !isObject(value); +} + +module.exports = isStrictComparable; diff --git a/node_modules/lodash/_iteratorToArray.js b/node_modules/lodash/_iteratorToArray.js new file mode 100644 index 0000000..4768566 --- /dev/null +++ b/node_modules/lodash/_iteratorToArray.js @@ -0,0 +1,18 @@ +/** + * Converts `iterator` to an array. + * + * @private + * @param {Object} iterator The iterator to convert. + * @returns {Array} Returns the converted array. + */ +function iteratorToArray(iterator) { + var data, + result = []; + + while (!(data = iterator.next()).done) { + result.push(data.value); + } + return result; +} + +module.exports = iteratorToArray; diff --git a/node_modules/lodash/_lazyClone.js b/node_modules/lodash/_lazyClone.js new file mode 100644 index 0000000..d8a51f8 --- /dev/null +++ b/node_modules/lodash/_lazyClone.js @@ -0,0 +1,23 @@ +var LazyWrapper = require('./_LazyWrapper'), + copyArray = require('./_copyArray'); + +/** + * Creates a clone of the lazy wrapper object. + * + * @private + * @name clone + * @memberOf LazyWrapper + * @returns {Object} Returns the cloned `LazyWrapper` object. + */ +function lazyClone() { + var result = new LazyWrapper(this.__wrapped__); + result.__actions__ = copyArray(this.__actions__); + result.__dir__ = this.__dir__; + result.__filtered__ = this.__filtered__; + result.__iteratees__ = copyArray(this.__iteratees__); + result.__takeCount__ = this.__takeCount__; + result.__views__ = copyArray(this.__views__); + return result; +} + +module.exports = lazyClone; diff --git a/node_modules/lodash/_lazyReverse.js b/node_modules/lodash/_lazyReverse.js new file mode 100644 index 0000000..c5b5219 --- /dev/null +++ b/node_modules/lodash/_lazyReverse.js @@ -0,0 +1,23 @@ +var LazyWrapper = require('./_LazyWrapper'); + +/** + * Reverses the direction of lazy iteration. + * + * @private + * @name reverse + * @memberOf LazyWrapper + * @returns {Object} Returns the new reversed `LazyWrapper` object. + */ +function lazyReverse() { + if (this.__filtered__) { + var result = new LazyWrapper(this); + result.__dir__ = -1; + result.__filtered__ = true; + } else { + result = this.clone(); + result.__dir__ *= -1; + } + return result; +} + +module.exports = lazyReverse; diff --git a/node_modules/lodash/_lazyValue.js b/node_modules/lodash/_lazyValue.js new file mode 100644 index 0000000..371ca8d --- /dev/null +++ b/node_modules/lodash/_lazyValue.js @@ -0,0 +1,69 @@ +var baseWrapperValue = require('./_baseWrapperValue'), + getView = require('./_getView'), + isArray = require('./isArray'); + +/** Used to indicate the type of lazy iteratees. */ +var LAZY_FILTER_FLAG = 1, + LAZY_MAP_FLAG = 2; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMin = Math.min; + +/** + * Extracts the unwrapped value from its lazy wrapper. + * + * @private + * @name value + * @memberOf LazyWrapper + * @returns {*} Returns the unwrapped value. + */ +function lazyValue() { + var array = this.__wrapped__.value(), + dir = this.__dir__, + isArr = isArray(array), + isRight = dir < 0, + arrLength = isArr ? array.length : 0, + view = getView(0, arrLength, this.__views__), + start = view.start, + end = view.end, + length = end - start, + index = isRight ? end : (start - 1), + iteratees = this.__iteratees__, + iterLength = iteratees.length, + resIndex = 0, + takeCount = nativeMin(length, this.__takeCount__); + + if (!isArr || (!isRight && arrLength == length && takeCount == length)) { + return baseWrapperValue(array, this.__actions__); + } + var result = []; + + outer: + while (length-- && resIndex < takeCount) { + index += dir; + + var iterIndex = -1, + value = array[index]; + + while (++iterIndex < iterLength) { + var data = iteratees[iterIndex], + iteratee = data.iteratee, + type = data.type, + computed = iteratee(value); + + if (type == LAZY_MAP_FLAG) { + value = computed; + } else if (!computed) { + if (type == LAZY_FILTER_FLAG) { + continue outer; + } else { + break outer; + } + } + } + result[resIndex++] = value; + } + return result; +} + +module.exports = lazyValue; diff --git a/node_modules/lodash/_listCacheClear.js b/node_modules/lodash/_listCacheClear.js new file mode 100644 index 0000000..acbe39a --- /dev/null +++ b/node_modules/lodash/_listCacheClear.js @@ -0,0 +1,13 @@ +/** + * Removes all key-value entries from the list cache. + * + * @private + * @name clear + * @memberOf ListCache + */ +function listCacheClear() { + this.__data__ = []; + this.size = 0; +} + +module.exports = listCacheClear; diff --git a/node_modules/lodash/_listCacheDelete.js b/node_modules/lodash/_listCacheDelete.js new file mode 100644 index 0000000..b1384ad --- /dev/null +++ b/node_modules/lodash/_listCacheDelete.js @@ -0,0 +1,35 @@ +var assocIndexOf = require('./_assocIndexOf'); + +/** Used for built-in method references. */ +var arrayProto = Array.prototype; + +/** Built-in value references. */ +var splice = arrayProto.splice; + +/** + * Removes `key` and its value from the list cache. + * + * @private + * @name delete + * @memberOf ListCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function listCacheDelete(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + --this.size; + return true; +} + +module.exports = listCacheDelete; diff --git a/node_modules/lodash/_listCacheGet.js b/node_modules/lodash/_listCacheGet.js new file mode 100644 index 0000000..f8192fc --- /dev/null +++ b/node_modules/lodash/_listCacheGet.js @@ -0,0 +1,19 @@ +var assocIndexOf = require('./_assocIndexOf'); + +/** + * Gets the list cache value for `key`. + * + * @private + * @name get + * @memberOf ListCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function listCacheGet(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + return index < 0 ? undefined : data[index][1]; +} + +module.exports = listCacheGet; diff --git a/node_modules/lodash/_listCacheHas.js b/node_modules/lodash/_listCacheHas.js new file mode 100644 index 0000000..2adf671 --- /dev/null +++ b/node_modules/lodash/_listCacheHas.js @@ -0,0 +1,16 @@ +var assocIndexOf = require('./_assocIndexOf'); + +/** + * Checks if a list cache value for `key` exists. + * + * @private + * @name has + * @memberOf ListCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function listCacheHas(key) { + return assocIndexOf(this.__data__, key) > -1; +} + +module.exports = listCacheHas; diff --git a/node_modules/lodash/_listCacheSet.js b/node_modules/lodash/_listCacheSet.js new file mode 100644 index 0000000..5855c95 --- /dev/null +++ b/node_modules/lodash/_listCacheSet.js @@ -0,0 +1,26 @@ +var assocIndexOf = require('./_assocIndexOf'); + +/** + * Sets the list cache `key` to `value`. + * + * @private + * @name set + * @memberOf ListCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the list cache instance. + */ +function listCacheSet(key, value) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + ++this.size; + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; +} + +module.exports = listCacheSet; diff --git a/node_modules/lodash/_mapCacheClear.js b/node_modules/lodash/_mapCacheClear.js new file mode 100644 index 0000000..bc9ca20 --- /dev/null +++ b/node_modules/lodash/_mapCacheClear.js @@ -0,0 +1,21 @@ +var Hash = require('./_Hash'), + ListCache = require('./_ListCache'), + Map = require('./_Map'); + +/** + * Removes all key-value entries from the map. + * + * @private + * @name clear + * @memberOf MapCache + */ +function mapCacheClear() { + this.size = 0; + this.__data__ = { + 'hash': new Hash, + 'map': new (Map || ListCache), + 'string': new Hash + }; +} + +module.exports = mapCacheClear; diff --git a/node_modules/lodash/_mapCacheDelete.js b/node_modules/lodash/_mapCacheDelete.js new file mode 100644 index 0000000..946ca3c --- /dev/null +++ b/node_modules/lodash/_mapCacheDelete.js @@ -0,0 +1,18 @@ +var getMapData = require('./_getMapData'); + +/** + * Removes `key` and its value from the map. + * + * @private + * @name delete + * @memberOf MapCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function mapCacheDelete(key) { + var result = getMapData(this, key)['delete'](key); + this.size -= result ? 1 : 0; + return result; +} + +module.exports = mapCacheDelete; diff --git a/node_modules/lodash/_mapCacheGet.js b/node_modules/lodash/_mapCacheGet.js new file mode 100644 index 0000000..f29f55c --- /dev/null +++ b/node_modules/lodash/_mapCacheGet.js @@ -0,0 +1,16 @@ +var getMapData = require('./_getMapData'); + +/** + * Gets the map value for `key`. + * + * @private + * @name get + * @memberOf MapCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function mapCacheGet(key) { + return getMapData(this, key).get(key); +} + +module.exports = mapCacheGet; diff --git a/node_modules/lodash/_mapCacheHas.js b/node_modules/lodash/_mapCacheHas.js new file mode 100644 index 0000000..a1214c0 --- /dev/null +++ b/node_modules/lodash/_mapCacheHas.js @@ -0,0 +1,16 @@ +var getMapData = require('./_getMapData'); + +/** + * Checks if a map value for `key` exists. + * + * @private + * @name has + * @memberOf MapCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function mapCacheHas(key) { + return getMapData(this, key).has(key); +} + +module.exports = mapCacheHas; diff --git a/node_modules/lodash/_mapCacheSet.js b/node_modules/lodash/_mapCacheSet.js new file mode 100644 index 0000000..7346849 --- /dev/null +++ b/node_modules/lodash/_mapCacheSet.js @@ -0,0 +1,22 @@ +var getMapData = require('./_getMapData'); + +/** + * Sets the map `key` to `value`. + * + * @private + * @name set + * @memberOf MapCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the map cache instance. + */ +function mapCacheSet(key, value) { + var data = getMapData(this, key), + size = data.size; + + data.set(key, value); + this.size += data.size == size ? 0 : 1; + return this; +} + +module.exports = mapCacheSet; diff --git a/node_modules/lodash/_mapToArray.js b/node_modules/lodash/_mapToArray.js new file mode 100644 index 0000000..fe3dd53 --- /dev/null +++ b/node_modules/lodash/_mapToArray.js @@ -0,0 +1,18 @@ +/** + * Converts `map` to its key-value pairs. + * + * @private + * @param {Object} map The map to convert. + * @returns {Array} Returns the key-value pairs. + */ +function mapToArray(map) { + var index = -1, + result = Array(map.size); + + map.forEach(function(value, key) { + result[++index] = [key, value]; + }); + return result; +} + +module.exports = mapToArray; diff --git a/node_modules/lodash/_matchesStrictComparable.js b/node_modules/lodash/_matchesStrictComparable.js new file mode 100644 index 0000000..f608af9 --- /dev/null +++ b/node_modules/lodash/_matchesStrictComparable.js @@ -0,0 +1,20 @@ +/** + * A specialized version of `matchesProperty` for source values suitable + * for strict equality comparisons, i.e. `===`. + * + * @private + * @param {string} key The key of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. + */ +function matchesStrictComparable(key, srcValue) { + return function(object) { + if (object == null) { + return false; + } + return object[key] === srcValue && + (srcValue !== undefined || (key in Object(object))); + }; +} + +module.exports = matchesStrictComparable; diff --git a/node_modules/lodash/_memoizeCapped.js b/node_modules/lodash/_memoizeCapped.js new file mode 100644 index 0000000..7f71c8f --- /dev/null +++ b/node_modules/lodash/_memoizeCapped.js @@ -0,0 +1,26 @@ +var memoize = require('./memoize'); + +/** Used as the maximum memoize cache size. */ +var MAX_MEMOIZE_SIZE = 500; + +/** + * A specialized version of `_.memoize` which clears the memoized function's + * cache when it exceeds `MAX_MEMOIZE_SIZE`. + * + * @private + * @param {Function} func The function to have its output memoized. + * @returns {Function} Returns the new memoized function. + */ +function memoizeCapped(func) { + var result = memoize(func, function(key) { + if (cache.size === MAX_MEMOIZE_SIZE) { + cache.clear(); + } + return key; + }); + + var cache = result.cache; + return result; +} + +module.exports = memoizeCapped; diff --git a/node_modules/lodash/_mergeData.js b/node_modules/lodash/_mergeData.js new file mode 100644 index 0000000..cb570f9 --- /dev/null +++ b/node_modules/lodash/_mergeData.js @@ -0,0 +1,90 @@ +var composeArgs = require('./_composeArgs'), + composeArgsRight = require('./_composeArgsRight'), + replaceHolders = require('./_replaceHolders'); + +/** Used as the internal argument placeholder. */ +var PLACEHOLDER = '__lodash_placeholder__'; + +/** Used to compose bitmasks for function metadata. */ +var WRAP_BIND_FLAG = 1, + WRAP_BIND_KEY_FLAG = 2, + WRAP_CURRY_BOUND_FLAG = 4, + WRAP_CURRY_FLAG = 8, + WRAP_ARY_FLAG = 128, + WRAP_REARG_FLAG = 256; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMin = Math.min; + +/** + * Merges the function metadata of `source` into `data`. + * + * Merging metadata reduces the number of wrappers used to invoke a function. + * This is possible because methods like `_.bind`, `_.curry`, and `_.partial` + * may be applied regardless of execution order. Methods like `_.ary` and + * `_.rearg` modify function arguments, making the order in which they are + * executed important, preventing the merging of metadata. However, we make + * an exception for a safe combined case where curried functions have `_.ary` + * and or `_.rearg` applied. + * + * @private + * @param {Array} data The destination metadata. + * @param {Array} source The source metadata. + * @returns {Array} Returns `data`. + */ +function mergeData(data, source) { + var bitmask = data[1], + srcBitmask = source[1], + newBitmask = bitmask | srcBitmask, + isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG); + + var isCombo = + ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) || + ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) || + ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG)); + + // Exit early if metadata can't be merged. + if (!(isCommon || isCombo)) { + return data; + } + // Use source `thisArg` if available. + if (srcBitmask & WRAP_BIND_FLAG) { + data[2] = source[2]; + // Set when currying a bound function. + newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG; + } + // Compose partial arguments. + var value = source[3]; + if (value) { + var partials = data[3]; + data[3] = partials ? composeArgs(partials, value, source[4]) : value; + data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4]; + } + // Compose partial right arguments. + value = source[5]; + if (value) { + partials = data[5]; + data[5] = partials ? composeArgsRight(partials, value, source[6]) : value; + data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6]; + } + // Use source `argPos` if available. + value = source[7]; + if (value) { + data[7] = value; + } + // Use source `ary` if it's smaller. + if (srcBitmask & WRAP_ARY_FLAG) { + data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]); + } + // Use source `arity` if one is not provided. + if (data[9] == null) { + data[9] = source[9]; + } + // Use source `func` and merge bitmasks. + data[0] = source[0]; + data[1] = newBitmask; + + return data; +} + +module.exports = mergeData; diff --git a/node_modules/lodash/_metaMap.js b/node_modules/lodash/_metaMap.js new file mode 100644 index 0000000..0157a0b --- /dev/null +++ b/node_modules/lodash/_metaMap.js @@ -0,0 +1,6 @@ +var WeakMap = require('./_WeakMap'); + +/** Used to store function metadata. */ +var metaMap = WeakMap && new WeakMap; + +module.exports = metaMap; diff --git a/node_modules/lodash/_nativeCreate.js b/node_modules/lodash/_nativeCreate.js new file mode 100644 index 0000000..c7aede8 --- /dev/null +++ b/node_modules/lodash/_nativeCreate.js @@ -0,0 +1,6 @@ +var getNative = require('./_getNative'); + +/* Built-in method references that are verified to be native. */ +var nativeCreate = getNative(Object, 'create'); + +module.exports = nativeCreate; diff --git a/node_modules/lodash/_nativeKeys.js b/node_modules/lodash/_nativeKeys.js new file mode 100644 index 0000000..479a104 --- /dev/null +++ b/node_modules/lodash/_nativeKeys.js @@ -0,0 +1,6 @@ +var overArg = require('./_overArg'); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeKeys = overArg(Object.keys, Object); + +module.exports = nativeKeys; diff --git a/node_modules/lodash/_nativeKeysIn.js b/node_modules/lodash/_nativeKeysIn.js new file mode 100644 index 0000000..00ee505 --- /dev/null +++ b/node_modules/lodash/_nativeKeysIn.js @@ -0,0 +1,20 @@ +/** + * This function is like + * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * except that it includes inherited enumerable properties. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function nativeKeysIn(object) { + var result = []; + if (object != null) { + for (var key in Object(object)) { + result.push(key); + } + } + return result; +} + +module.exports = nativeKeysIn; diff --git a/node_modules/lodash/_nodeUtil.js b/node_modules/lodash/_nodeUtil.js new file mode 100644 index 0000000..983d78f --- /dev/null +++ b/node_modules/lodash/_nodeUtil.js @@ -0,0 +1,30 @@ +var freeGlobal = require('./_freeGlobal'); + +/** Detect free variable `exports`. */ +var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; + +/** Detect free variable `module`. */ +var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; + +/** Detect the popular CommonJS extension `module.exports`. */ +var moduleExports = freeModule && freeModule.exports === freeExports; + +/** Detect free variable `process` from Node.js. */ +var freeProcess = moduleExports && freeGlobal.process; + +/** Used to access faster Node.js helpers. */ +var nodeUtil = (function() { + try { + // Use `util.types` for Node.js 10+. + var types = freeModule && freeModule.require && freeModule.require('util').types; + + if (types) { + return types; + } + + // Legacy `process.binding('util')` for Node.js < 10. + return freeProcess && freeProcess.binding && freeProcess.binding('util'); + } catch (e) {} +}()); + +module.exports = nodeUtil; diff --git a/node_modules/lodash/_objectToString.js b/node_modules/lodash/_objectToString.js new file mode 100644 index 0000000..c614ec0 --- /dev/null +++ b/node_modules/lodash/_objectToString.js @@ -0,0 +1,22 @@ +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var nativeObjectToString = objectProto.toString; + +/** + * Converts `value` to a string using `Object.prototype.toString`. + * + * @private + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + */ +function objectToString(value) { + return nativeObjectToString.call(value); +} + +module.exports = objectToString; diff --git a/node_modules/lodash/_overArg.js b/node_modules/lodash/_overArg.js new file mode 100644 index 0000000..651c5c5 --- /dev/null +++ b/node_modules/lodash/_overArg.js @@ -0,0 +1,15 @@ +/** + * Creates a unary function that invokes `func` with its argument transformed. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. + */ +function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; +} + +module.exports = overArg; diff --git a/node_modules/lodash/_overRest.js b/node_modules/lodash/_overRest.js new file mode 100644 index 0000000..c7cdef3 --- /dev/null +++ b/node_modules/lodash/_overRest.js @@ -0,0 +1,36 @@ +var apply = require('./_apply'); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * A specialized version of `baseRest` which transforms the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @param {Function} transform The rest array transform. + * @returns {Function} Returns the new function. + */ +function overRest(func, start, transform) { + start = nativeMax(start === undefined ? (func.length - 1) : start, 0); + return function() { + var args = arguments, + index = -1, + length = nativeMax(args.length - start, 0), + array = Array(length); + + while (++index < length) { + array[index] = args[start + index]; + } + index = -1; + var otherArgs = Array(start + 1); + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = transform(array); + return apply(func, this, otherArgs); + }; +} + +module.exports = overRest; diff --git a/node_modules/lodash/_parent.js b/node_modules/lodash/_parent.js new file mode 100644 index 0000000..f174328 --- /dev/null +++ b/node_modules/lodash/_parent.js @@ -0,0 +1,16 @@ +var baseGet = require('./_baseGet'), + baseSlice = require('./_baseSlice'); + +/** + * Gets the parent value at `path` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Array} path The path to get the parent value of. + * @returns {*} Returns the parent value. + */ +function parent(object, path) { + return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1)); +} + +module.exports = parent; diff --git a/node_modules/lodash/_reEscape.js b/node_modules/lodash/_reEscape.js new file mode 100644 index 0000000..7f47eda --- /dev/null +++ b/node_modules/lodash/_reEscape.js @@ -0,0 +1,4 @@ +/** Used to match template delimiters. */ +var reEscape = /<%-([\s\S]+?)%>/g; + +module.exports = reEscape; diff --git a/node_modules/lodash/_reEvaluate.js b/node_modules/lodash/_reEvaluate.js new file mode 100644 index 0000000..6adfc31 --- /dev/null +++ b/node_modules/lodash/_reEvaluate.js @@ -0,0 +1,4 @@ +/** Used to match template delimiters. */ +var reEvaluate = /<%([\s\S]+?)%>/g; + +module.exports = reEvaluate; diff --git a/node_modules/lodash/_reInterpolate.js b/node_modules/lodash/_reInterpolate.js new file mode 100644 index 0000000..d02ff0b --- /dev/null +++ b/node_modules/lodash/_reInterpolate.js @@ -0,0 +1,4 @@ +/** Used to match template delimiters. */ +var reInterpolate = /<%=([\s\S]+?)%>/g; + +module.exports = reInterpolate; diff --git a/node_modules/lodash/_realNames.js b/node_modules/lodash/_realNames.js new file mode 100644 index 0000000..aa0d529 --- /dev/null +++ b/node_modules/lodash/_realNames.js @@ -0,0 +1,4 @@ +/** Used to lookup unminified function names. */ +var realNames = {}; + +module.exports = realNames; diff --git a/node_modules/lodash/_reorder.js b/node_modules/lodash/_reorder.js new file mode 100644 index 0000000..a3502b0 --- /dev/null +++ b/node_modules/lodash/_reorder.js @@ -0,0 +1,29 @@ +var copyArray = require('./_copyArray'), + isIndex = require('./_isIndex'); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMin = Math.min; + +/** + * Reorder `array` according to the specified indexes where the element at + * the first index is assigned as the first element, the element at + * the second index is assigned as the second element, and so on. + * + * @private + * @param {Array} array The array to reorder. + * @param {Array} indexes The arranged array indexes. + * @returns {Array} Returns `array`. + */ +function reorder(array, indexes) { + var arrLength = array.length, + length = nativeMin(indexes.length, arrLength), + oldArray = copyArray(array); + + while (length--) { + var index = indexes[length]; + array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined; + } + return array; +} + +module.exports = reorder; diff --git a/node_modules/lodash/_replaceHolders.js b/node_modules/lodash/_replaceHolders.js new file mode 100644 index 0000000..74360ec --- /dev/null +++ b/node_modules/lodash/_replaceHolders.js @@ -0,0 +1,29 @@ +/** Used as the internal argument placeholder. */ +var PLACEHOLDER = '__lodash_placeholder__'; + +/** + * Replaces all `placeholder` elements in `array` with an internal placeholder + * and returns an array of their indexes. + * + * @private + * @param {Array} array The array to modify. + * @param {*} placeholder The placeholder to replace. + * @returns {Array} Returns the new array of placeholder indexes. + */ +function replaceHolders(array, placeholder) { + var index = -1, + length = array.length, + resIndex = 0, + result = []; + + while (++index < length) { + var value = array[index]; + if (value === placeholder || value === PLACEHOLDER) { + array[index] = PLACEHOLDER; + result[resIndex++] = index; + } + } + return result; +} + +module.exports = replaceHolders; diff --git a/node_modules/lodash/_root.js b/node_modules/lodash/_root.js new file mode 100644 index 0000000..d2852be --- /dev/null +++ b/node_modules/lodash/_root.js @@ -0,0 +1,9 @@ +var freeGlobal = require('./_freeGlobal'); + +/** Detect free variable `self`. */ +var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + +/** Used as a reference to the global object. */ +var root = freeGlobal || freeSelf || Function('return this')(); + +module.exports = root; diff --git a/node_modules/lodash/_safeGet.js b/node_modules/lodash/_safeGet.js new file mode 100644 index 0000000..b070897 --- /dev/null +++ b/node_modules/lodash/_safeGet.js @@ -0,0 +1,21 @@ +/** + * Gets the value at `key`, unless `key` is "__proto__" or "constructor". + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ +function safeGet(object, key) { + if (key === 'constructor' && typeof object[key] === 'function') { + return; + } + + if (key == '__proto__') { + return; + } + + return object[key]; +} + +module.exports = safeGet; diff --git a/node_modules/lodash/_setCacheAdd.js b/node_modules/lodash/_setCacheAdd.js new file mode 100644 index 0000000..1081a74 --- /dev/null +++ b/node_modules/lodash/_setCacheAdd.js @@ -0,0 +1,19 @@ +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; + +/** + * Adds `value` to the array cache. + * + * @private + * @name add + * @memberOf SetCache + * @alias push + * @param {*} value The value to cache. + * @returns {Object} Returns the cache instance. + */ +function setCacheAdd(value) { + this.__data__.set(value, HASH_UNDEFINED); + return this; +} + +module.exports = setCacheAdd; diff --git a/node_modules/lodash/_setCacheHas.js b/node_modules/lodash/_setCacheHas.js new file mode 100644 index 0000000..9a49255 --- /dev/null +++ b/node_modules/lodash/_setCacheHas.js @@ -0,0 +1,14 @@ +/** + * Checks if `value` is in the array cache. + * + * @private + * @name has + * @memberOf SetCache + * @param {*} value The value to search for. + * @returns {number} Returns `true` if `value` is found, else `false`. + */ +function setCacheHas(value) { + return this.__data__.has(value); +} + +module.exports = setCacheHas; diff --git a/node_modules/lodash/_setData.js b/node_modules/lodash/_setData.js new file mode 100644 index 0000000..e5cf3eb --- /dev/null +++ b/node_modules/lodash/_setData.js @@ -0,0 +1,20 @@ +var baseSetData = require('./_baseSetData'), + shortOut = require('./_shortOut'); + +/** + * Sets metadata for `func`. + * + * **Note:** If this function becomes hot, i.e. is invoked a lot in a short + * period of time, it will trip its breaker and transition to an identity + * function to avoid garbage collection pauses in V8. See + * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070) + * for more details. + * + * @private + * @param {Function} func The function to associate metadata with. + * @param {*} data The metadata. + * @returns {Function} Returns `func`. + */ +var setData = shortOut(baseSetData); + +module.exports = setData; diff --git a/node_modules/lodash/_setToArray.js b/node_modules/lodash/_setToArray.js new file mode 100644 index 0000000..b87f074 --- /dev/null +++ b/node_modules/lodash/_setToArray.js @@ -0,0 +1,18 @@ +/** + * Converts `set` to an array of its values. + * + * @private + * @param {Object} set The set to convert. + * @returns {Array} Returns the values. + */ +function setToArray(set) { + var index = -1, + result = Array(set.size); + + set.forEach(function(value) { + result[++index] = value; + }); + return result; +} + +module.exports = setToArray; diff --git a/node_modules/lodash/_setToPairs.js b/node_modules/lodash/_setToPairs.js new file mode 100644 index 0000000..36ad37a --- /dev/null +++ b/node_modules/lodash/_setToPairs.js @@ -0,0 +1,18 @@ +/** + * Converts `set` to its value-value pairs. + * + * @private + * @param {Object} set The set to convert. + * @returns {Array} Returns the value-value pairs. + */ +function setToPairs(set) { + var index = -1, + result = Array(set.size); + + set.forEach(function(value) { + result[++index] = [value, value]; + }); + return result; +} + +module.exports = setToPairs; diff --git a/node_modules/lodash/_setToString.js b/node_modules/lodash/_setToString.js new file mode 100644 index 0000000..6ca8419 --- /dev/null +++ b/node_modules/lodash/_setToString.js @@ -0,0 +1,14 @@ +var baseSetToString = require('./_baseSetToString'), + shortOut = require('./_shortOut'); + +/** + * Sets the `toString` method of `func` to return `string`. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ +var setToString = shortOut(baseSetToString); + +module.exports = setToString; diff --git a/node_modules/lodash/_setWrapToString.js b/node_modules/lodash/_setWrapToString.js new file mode 100644 index 0000000..decdc44 --- /dev/null +++ b/node_modules/lodash/_setWrapToString.js @@ -0,0 +1,21 @@ +var getWrapDetails = require('./_getWrapDetails'), + insertWrapDetails = require('./_insertWrapDetails'), + setToString = require('./_setToString'), + updateWrapDetails = require('./_updateWrapDetails'); + +/** + * Sets the `toString` method of `wrapper` to mimic the source of `reference` + * with wrapper details in a comment at the top of the source body. + * + * @private + * @param {Function} wrapper The function to modify. + * @param {Function} reference The reference function. + * @param {number} bitmask The bitmask flags. See `createWrap` for more details. + * @returns {Function} Returns `wrapper`. + */ +function setWrapToString(wrapper, reference, bitmask) { + var source = (reference + ''); + return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask))); +} + +module.exports = setWrapToString; diff --git a/node_modules/lodash/_shortOut.js b/node_modules/lodash/_shortOut.js new file mode 100644 index 0000000..3300a07 --- /dev/null +++ b/node_modules/lodash/_shortOut.js @@ -0,0 +1,37 @@ +/** Used to detect hot functions by number of calls within a span of milliseconds. */ +var HOT_COUNT = 800, + HOT_SPAN = 16; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeNow = Date.now; + +/** + * Creates a function that'll short out and invoke `identity` instead + * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` + * milliseconds. + * + * @private + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new shortable function. + */ +function shortOut(func) { + var count = 0, + lastCalled = 0; + + return function() { + var stamp = nativeNow(), + remaining = HOT_SPAN - (stamp - lastCalled); + + lastCalled = stamp; + if (remaining > 0) { + if (++count >= HOT_COUNT) { + return arguments[0]; + } + } else { + count = 0; + } + return func.apply(undefined, arguments); + }; +} + +module.exports = shortOut; diff --git a/node_modules/lodash/_shuffleSelf.js b/node_modules/lodash/_shuffleSelf.js new file mode 100644 index 0000000..8bcc4f5 --- /dev/null +++ b/node_modules/lodash/_shuffleSelf.js @@ -0,0 +1,28 @@ +var baseRandom = require('./_baseRandom'); + +/** + * A specialized version of `_.shuffle` which mutates and sets the size of `array`. + * + * @private + * @param {Array} array The array to shuffle. + * @param {number} [size=array.length] The size of `array`. + * @returns {Array} Returns `array`. + */ +function shuffleSelf(array, size) { + var index = -1, + length = array.length, + lastIndex = length - 1; + + size = size === undefined ? length : size; + while (++index < size) { + var rand = baseRandom(index, lastIndex), + value = array[rand]; + + array[rand] = array[index]; + array[index] = value; + } + array.length = size; + return array; +} + +module.exports = shuffleSelf; diff --git a/node_modules/lodash/_stackClear.js b/node_modules/lodash/_stackClear.js new file mode 100644 index 0000000..ce8e5a9 --- /dev/null +++ b/node_modules/lodash/_stackClear.js @@ -0,0 +1,15 @@ +var ListCache = require('./_ListCache'); + +/** + * Removes all key-value entries from the stack. + * + * @private + * @name clear + * @memberOf Stack + */ +function stackClear() { + this.__data__ = new ListCache; + this.size = 0; +} + +module.exports = stackClear; diff --git a/node_modules/lodash/_stackDelete.js b/node_modules/lodash/_stackDelete.js new file mode 100644 index 0000000..ff9887a --- /dev/null +++ b/node_modules/lodash/_stackDelete.js @@ -0,0 +1,18 @@ +/** + * Removes `key` and its value from the stack. + * + * @private + * @name delete + * @memberOf Stack + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function stackDelete(key) { + var data = this.__data__, + result = data['delete'](key); + + this.size = data.size; + return result; +} + +module.exports = stackDelete; diff --git a/node_modules/lodash/_stackGet.js b/node_modules/lodash/_stackGet.js new file mode 100644 index 0000000..1cdf004 --- /dev/null +++ b/node_modules/lodash/_stackGet.js @@ -0,0 +1,14 @@ +/** + * Gets the stack value for `key`. + * + * @private + * @name get + * @memberOf Stack + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function stackGet(key) { + return this.__data__.get(key); +} + +module.exports = stackGet; diff --git a/node_modules/lodash/_stackHas.js b/node_modules/lodash/_stackHas.js new file mode 100644 index 0000000..16a3ad1 --- /dev/null +++ b/node_modules/lodash/_stackHas.js @@ -0,0 +1,14 @@ +/** + * Checks if a stack value for `key` exists. + * + * @private + * @name has + * @memberOf Stack + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function stackHas(key) { + return this.__data__.has(key); +} + +module.exports = stackHas; diff --git a/node_modules/lodash/_stackSet.js b/node_modules/lodash/_stackSet.js new file mode 100644 index 0000000..b790ac5 --- /dev/null +++ b/node_modules/lodash/_stackSet.js @@ -0,0 +1,34 @@ +var ListCache = require('./_ListCache'), + Map = require('./_Map'), + MapCache = require('./_MapCache'); + +/** Used as the size to enable large array optimizations. */ +var LARGE_ARRAY_SIZE = 200; + +/** + * Sets the stack `key` to `value`. + * + * @private + * @name set + * @memberOf Stack + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the stack cache instance. + */ +function stackSet(key, value) { + var data = this.__data__; + if (data instanceof ListCache) { + var pairs = data.__data__; + if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { + pairs.push([key, value]); + this.size = ++data.size; + return this; + } + data = this.__data__ = new MapCache(pairs); + } + data.set(key, value); + this.size = data.size; + return this; +} + +module.exports = stackSet; diff --git a/node_modules/lodash/_strictIndexOf.js b/node_modules/lodash/_strictIndexOf.js new file mode 100644 index 0000000..0486a49 --- /dev/null +++ b/node_modules/lodash/_strictIndexOf.js @@ -0,0 +1,23 @@ +/** + * A specialized version of `_.indexOf` which performs strict equality + * comparisons of values, i.e. `===`. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function strictIndexOf(array, value, fromIndex) { + var index = fromIndex - 1, + length = array.length; + + while (++index < length) { + if (array[index] === value) { + return index; + } + } + return -1; +} + +module.exports = strictIndexOf; diff --git a/node_modules/lodash/_strictLastIndexOf.js b/node_modules/lodash/_strictLastIndexOf.js new file mode 100644 index 0000000..d7310dc --- /dev/null +++ b/node_modules/lodash/_strictLastIndexOf.js @@ -0,0 +1,21 @@ +/** + * A specialized version of `_.lastIndexOf` which performs strict equality + * comparisons of values, i.e. `===`. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function strictLastIndexOf(array, value, fromIndex) { + var index = fromIndex + 1; + while (index--) { + if (array[index] === value) { + return index; + } + } + return index; +} + +module.exports = strictLastIndexOf; diff --git a/node_modules/lodash/_stringSize.js b/node_modules/lodash/_stringSize.js new file mode 100644 index 0000000..17ef462 --- /dev/null +++ b/node_modules/lodash/_stringSize.js @@ -0,0 +1,18 @@ +var asciiSize = require('./_asciiSize'), + hasUnicode = require('./_hasUnicode'), + unicodeSize = require('./_unicodeSize'); + +/** + * Gets the number of symbols in `string`. + * + * @private + * @param {string} string The string to inspect. + * @returns {number} Returns the string size. + */ +function stringSize(string) { + return hasUnicode(string) + ? unicodeSize(string) + : asciiSize(string); +} + +module.exports = stringSize; diff --git a/node_modules/lodash/_stringToArray.js b/node_modules/lodash/_stringToArray.js new file mode 100644 index 0000000..d161158 --- /dev/null +++ b/node_modules/lodash/_stringToArray.js @@ -0,0 +1,18 @@ +var asciiToArray = require('./_asciiToArray'), + hasUnicode = require('./_hasUnicode'), + unicodeToArray = require('./_unicodeToArray'); + +/** + * Converts `string` to an array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the converted array. + */ +function stringToArray(string) { + return hasUnicode(string) + ? unicodeToArray(string) + : asciiToArray(string); +} + +module.exports = stringToArray; diff --git a/node_modules/lodash/_stringToPath.js b/node_modules/lodash/_stringToPath.js new file mode 100644 index 0000000..8f39f8a --- /dev/null +++ b/node_modules/lodash/_stringToPath.js @@ -0,0 +1,27 @@ +var memoizeCapped = require('./_memoizeCapped'); + +/** Used to match property names within property paths. */ +var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; + +/** Used to match backslashes in property paths. */ +var reEscapeChar = /\\(\\)?/g; + +/** + * Converts `string` to a property path array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the property path array. + */ +var stringToPath = memoizeCapped(function(string) { + var result = []; + if (string.charCodeAt(0) === 46 /* . */) { + result.push(''); + } + string.replace(rePropName, function(match, number, quote, subString) { + result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match)); + }); + return result; +}); + +module.exports = stringToPath; diff --git a/node_modules/lodash/_toKey.js b/node_modules/lodash/_toKey.js new file mode 100644 index 0000000..c6d645c --- /dev/null +++ b/node_modules/lodash/_toKey.js @@ -0,0 +1,21 @@ +var isSymbol = require('./isSymbol'); + +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0; + +/** + * Converts `value` to a string key if it's not a string or symbol. + * + * @private + * @param {*} value The value to inspect. + * @returns {string|symbol} Returns the key. + */ +function toKey(value) { + if (typeof value == 'string' || isSymbol(value)) { + return value; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; +} + +module.exports = toKey; diff --git a/node_modules/lodash/_toSource.js b/node_modules/lodash/_toSource.js new file mode 100644 index 0000000..a020b38 --- /dev/null +++ b/node_modules/lodash/_toSource.js @@ -0,0 +1,26 @@ +/** Used for built-in method references. */ +var funcProto = Function.prototype; + +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; + +/** + * Converts `func` to its source code. + * + * @private + * @param {Function} func The function to convert. + * @returns {string} Returns the source code. + */ +function toSource(func) { + if (func != null) { + try { + return funcToString.call(func); + } catch (e) {} + try { + return (func + ''); + } catch (e) {} + } + return ''; +} + +module.exports = toSource; diff --git a/node_modules/lodash/_unescapeHtmlChar.js b/node_modules/lodash/_unescapeHtmlChar.js new file mode 100644 index 0000000..a71fecb --- /dev/null +++ b/node_modules/lodash/_unescapeHtmlChar.js @@ -0,0 +1,21 @@ +var basePropertyOf = require('./_basePropertyOf'); + +/** Used to map HTML entities to characters. */ +var htmlUnescapes = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + ''': "'" +}; + +/** + * Used by `_.unescape` to convert HTML entities to characters. + * + * @private + * @param {string} chr The matched character to unescape. + * @returns {string} Returns the unescaped character. + */ +var unescapeHtmlChar = basePropertyOf(htmlUnescapes); + +module.exports = unescapeHtmlChar; diff --git a/node_modules/lodash/_unicodeSize.js b/node_modules/lodash/_unicodeSize.js new file mode 100644 index 0000000..68137ec --- /dev/null +++ b/node_modules/lodash/_unicodeSize.js @@ -0,0 +1,44 @@ +/** Used to compose unicode character classes. */ +var rsAstralRange = '\\ud800-\\udfff', + rsComboMarksRange = '\\u0300-\\u036f', + reComboHalfMarksRange = '\\ufe20-\\ufe2f', + rsComboSymbolsRange = '\\u20d0-\\u20ff', + rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, + rsVarRange = '\\ufe0e\\ufe0f'; + +/** Used to compose unicode capture groups. */ +var rsAstral = '[' + rsAstralRange + ']', + rsCombo = '[' + rsComboRange + ']', + rsFitz = '\\ud83c[\\udffb-\\udfff]', + rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', + rsNonAstral = '[^' + rsAstralRange + ']', + rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', + rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', + rsZWJ = '\\u200d'; + +/** Used to compose unicode regexes. */ +var reOptMod = rsModifier + '?', + rsOptVar = '[' + rsVarRange + ']?', + rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', + rsSeq = rsOptVar + reOptMod + rsOptJoin, + rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; + +/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */ +var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g'); + +/** + * Gets the size of a Unicode `string`. + * + * @private + * @param {string} string The string inspect. + * @returns {number} Returns the string size. + */ +function unicodeSize(string) { + var result = reUnicode.lastIndex = 0; + while (reUnicode.test(string)) { + ++result; + } + return result; +} + +module.exports = unicodeSize; diff --git a/node_modules/lodash/_unicodeToArray.js b/node_modules/lodash/_unicodeToArray.js new file mode 100644 index 0000000..2a725c0 --- /dev/null +++ b/node_modules/lodash/_unicodeToArray.js @@ -0,0 +1,40 @@ +/** Used to compose unicode character classes. */ +var rsAstralRange = '\\ud800-\\udfff', + rsComboMarksRange = '\\u0300-\\u036f', + reComboHalfMarksRange = '\\ufe20-\\ufe2f', + rsComboSymbolsRange = '\\u20d0-\\u20ff', + rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, + rsVarRange = '\\ufe0e\\ufe0f'; + +/** Used to compose unicode capture groups. */ +var rsAstral = '[' + rsAstralRange + ']', + rsCombo = '[' + rsComboRange + ']', + rsFitz = '\\ud83c[\\udffb-\\udfff]', + rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', + rsNonAstral = '[^' + rsAstralRange + ']', + rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', + rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', + rsZWJ = '\\u200d'; + +/** Used to compose unicode regexes. */ +var reOptMod = rsModifier + '?', + rsOptVar = '[' + rsVarRange + ']?', + rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', + rsSeq = rsOptVar + reOptMod + rsOptJoin, + rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; + +/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */ +var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g'); + +/** + * Converts a Unicode `string` to an array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the converted array. + */ +function unicodeToArray(string) { + return string.match(reUnicode) || []; +} + +module.exports = unicodeToArray; diff --git a/node_modules/lodash/_unicodeWords.js b/node_modules/lodash/_unicodeWords.js new file mode 100644 index 0000000..e72e6e0 --- /dev/null +++ b/node_modules/lodash/_unicodeWords.js @@ -0,0 +1,69 @@ +/** Used to compose unicode character classes. */ +var rsAstralRange = '\\ud800-\\udfff', + rsComboMarksRange = '\\u0300-\\u036f', + reComboHalfMarksRange = '\\ufe20-\\ufe2f', + rsComboSymbolsRange = '\\u20d0-\\u20ff', + rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, + rsDingbatRange = '\\u2700-\\u27bf', + rsLowerRange = 'a-z\\xdf-\\xf6\\xf8-\\xff', + rsMathOpRange = '\\xac\\xb1\\xd7\\xf7', + rsNonCharRange = '\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf', + rsPunctuationRange = '\\u2000-\\u206f', + rsSpaceRange = ' \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000', + rsUpperRange = 'A-Z\\xc0-\\xd6\\xd8-\\xde', + rsVarRange = '\\ufe0e\\ufe0f', + rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange; + +/** Used to compose unicode capture groups. */ +var rsApos = "['\u2019]", + rsBreak = '[' + rsBreakRange + ']', + rsCombo = '[' + rsComboRange + ']', + rsDigits = '\\d+', + rsDingbat = '[' + rsDingbatRange + ']', + rsLower = '[' + rsLowerRange + ']', + rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']', + rsFitz = '\\ud83c[\\udffb-\\udfff]', + rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', + rsNonAstral = '[^' + rsAstralRange + ']', + rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', + rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', + rsUpper = '[' + rsUpperRange + ']', + rsZWJ = '\\u200d'; + +/** Used to compose unicode regexes. */ +var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')', + rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')', + rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?', + rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?', + reOptMod = rsModifier + '?', + rsOptVar = '[' + rsVarRange + ']?', + rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', + rsOrdLower = '\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])', + rsOrdUpper = '\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])', + rsSeq = rsOptVar + reOptMod + rsOptJoin, + rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq; + +/** Used to match complex or compound words. */ +var reUnicodeWord = RegExp([ + rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')', + rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')', + rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower, + rsUpper + '+' + rsOptContrUpper, + rsOrdUpper, + rsOrdLower, + rsDigits, + rsEmoji +].join('|'), 'g'); + +/** + * Splits a Unicode `string` into an array of its words. + * + * @private + * @param {string} The string to inspect. + * @returns {Array} Returns the words of `string`. + */ +function unicodeWords(string) { + return string.match(reUnicodeWord) || []; +} + +module.exports = unicodeWords; diff --git a/node_modules/lodash/_updateWrapDetails.js b/node_modules/lodash/_updateWrapDetails.js new file mode 100644 index 0000000..8759fbd --- /dev/null +++ b/node_modules/lodash/_updateWrapDetails.js @@ -0,0 +1,46 @@ +var arrayEach = require('./_arrayEach'), + arrayIncludes = require('./_arrayIncludes'); + +/** Used to compose bitmasks for function metadata. */ +var WRAP_BIND_FLAG = 1, + WRAP_BIND_KEY_FLAG = 2, + WRAP_CURRY_FLAG = 8, + WRAP_CURRY_RIGHT_FLAG = 16, + WRAP_PARTIAL_FLAG = 32, + WRAP_PARTIAL_RIGHT_FLAG = 64, + WRAP_ARY_FLAG = 128, + WRAP_REARG_FLAG = 256, + WRAP_FLIP_FLAG = 512; + +/** Used to associate wrap methods with their bit flags. */ +var wrapFlags = [ + ['ary', WRAP_ARY_FLAG], + ['bind', WRAP_BIND_FLAG], + ['bindKey', WRAP_BIND_KEY_FLAG], + ['curry', WRAP_CURRY_FLAG], + ['curryRight', WRAP_CURRY_RIGHT_FLAG], + ['flip', WRAP_FLIP_FLAG], + ['partial', WRAP_PARTIAL_FLAG], + ['partialRight', WRAP_PARTIAL_RIGHT_FLAG], + ['rearg', WRAP_REARG_FLAG] +]; + +/** + * Updates wrapper `details` based on `bitmask` flags. + * + * @private + * @returns {Array} details The details to modify. + * @param {number} bitmask The bitmask flags. See `createWrap` for more details. + * @returns {Array} Returns `details`. + */ +function updateWrapDetails(details, bitmask) { + arrayEach(wrapFlags, function(pair) { + var value = '_.' + pair[0]; + if ((bitmask & pair[1]) && !arrayIncludes(details, value)) { + details.push(value); + } + }); + return details.sort(); +} + +module.exports = updateWrapDetails; diff --git a/node_modules/lodash/_wrapperClone.js b/node_modules/lodash/_wrapperClone.js new file mode 100644 index 0000000..7bb58a2 --- /dev/null +++ b/node_modules/lodash/_wrapperClone.js @@ -0,0 +1,23 @@ +var LazyWrapper = require('./_LazyWrapper'), + LodashWrapper = require('./_LodashWrapper'), + copyArray = require('./_copyArray'); + +/** + * Creates a clone of `wrapper`. + * + * @private + * @param {Object} wrapper The wrapper to clone. + * @returns {Object} Returns the cloned wrapper. + */ +function wrapperClone(wrapper) { + if (wrapper instanceof LazyWrapper) { + return wrapper.clone(); + } + var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__); + result.__actions__ = copyArray(wrapper.__actions__); + result.__index__ = wrapper.__index__; + result.__values__ = wrapper.__values__; + return result; +} + +module.exports = wrapperClone; diff --git a/node_modules/lodash/add.js b/node_modules/lodash/add.js new file mode 100644 index 0000000..f069515 --- /dev/null +++ b/node_modules/lodash/add.js @@ -0,0 +1,22 @@ +var createMathOperation = require('./_createMathOperation'); + +/** + * Adds two numbers. + * + * @static + * @memberOf _ + * @since 3.4.0 + * @category Math + * @param {number} augend The first number in an addition. + * @param {number} addend The second number in an addition. + * @returns {number} Returns the total. + * @example + * + * _.add(6, 4); + * // => 10 + */ +var add = createMathOperation(function(augend, addend) { + return augend + addend; +}, 0); + +module.exports = add; diff --git a/node_modules/lodash/after.js b/node_modules/lodash/after.js new file mode 100644 index 0000000..3900c97 --- /dev/null +++ b/node_modules/lodash/after.js @@ -0,0 +1,42 @@ +var toInteger = require('./toInteger'); + +/** Error message constants. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/** + * The opposite of `_.before`; this method creates a function that invokes + * `func` once it's called `n` or more times. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {number} n The number of calls before `func` is invoked. + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new restricted function. + * @example + * + * var saves = ['profile', 'settings']; + * + * var done = _.after(saves.length, function() { + * console.log('done saving!'); + * }); + * + * _.forEach(saves, function(type) { + * asyncSave({ 'type': type, 'complete': done }); + * }); + * // => Logs 'done saving!' after the two async saves have completed. + */ +function after(n, func) { + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + n = toInteger(n); + return function() { + if (--n < 1) { + return func.apply(this, arguments); + } + }; +} + +module.exports = after; diff --git a/node_modules/lodash/array.js b/node_modules/lodash/array.js new file mode 100644 index 0000000..af688d3 --- /dev/null +++ b/node_modules/lodash/array.js @@ -0,0 +1,67 @@ +module.exports = { + 'chunk': require('./chunk'), + 'compact': require('./compact'), + 'concat': require('./concat'), + 'difference': require('./difference'), + 'differenceBy': require('./differenceBy'), + 'differenceWith': require('./differenceWith'), + 'drop': require('./drop'), + 'dropRight': require('./dropRight'), + 'dropRightWhile': require('./dropRightWhile'), + 'dropWhile': require('./dropWhile'), + 'fill': require('./fill'), + 'findIndex': require('./findIndex'), + 'findLastIndex': require('./findLastIndex'), + 'first': require('./first'), + 'flatten': require('./flatten'), + 'flattenDeep': require('./flattenDeep'), + 'flattenDepth': require('./flattenDepth'), + 'fromPairs': require('./fromPairs'), + 'head': require('./head'), + 'indexOf': require('./indexOf'), + 'initial': require('./initial'), + 'intersection': require('./intersection'), + 'intersectionBy': require('./intersectionBy'), + 'intersectionWith': require('./intersectionWith'), + 'join': require('./join'), + 'last': require('./last'), + 'lastIndexOf': require('./lastIndexOf'), + 'nth': require('./nth'), + 'pull': require('./pull'), + 'pullAll': require('./pullAll'), + 'pullAllBy': require('./pullAllBy'), + 'pullAllWith': require('./pullAllWith'), + 'pullAt': require('./pullAt'), + 'remove': require('./remove'), + 'reverse': require('./reverse'), + 'slice': require('./slice'), + 'sortedIndex': require('./sortedIndex'), + 'sortedIndexBy': require('./sortedIndexBy'), + 'sortedIndexOf': require('./sortedIndexOf'), + 'sortedLastIndex': require('./sortedLastIndex'), + 'sortedLastIndexBy': require('./sortedLastIndexBy'), + 'sortedLastIndexOf': require('./sortedLastIndexOf'), + 'sortedUniq': require('./sortedUniq'), + 'sortedUniqBy': require('./sortedUniqBy'), + 'tail': require('./tail'), + 'take': require('./take'), + 'takeRight': require('./takeRight'), + 'takeRightWhile': require('./takeRightWhile'), + 'takeWhile': require('./takeWhile'), + 'union': require('./union'), + 'unionBy': require('./unionBy'), + 'unionWith': require('./unionWith'), + 'uniq': require('./uniq'), + 'uniqBy': require('./uniqBy'), + 'uniqWith': require('./uniqWith'), + 'unzip': require('./unzip'), + 'unzipWith': require('./unzipWith'), + 'without': require('./without'), + 'xor': require('./xor'), + 'xorBy': require('./xorBy'), + 'xorWith': require('./xorWith'), + 'zip': require('./zip'), + 'zipObject': require('./zipObject'), + 'zipObjectDeep': require('./zipObjectDeep'), + 'zipWith': require('./zipWith') +}; diff --git a/node_modules/lodash/ary.js b/node_modules/lodash/ary.js new file mode 100644 index 0000000..70c87d0 --- /dev/null +++ b/node_modules/lodash/ary.js @@ -0,0 +1,29 @@ +var createWrap = require('./_createWrap'); + +/** Used to compose bitmasks for function metadata. */ +var WRAP_ARY_FLAG = 128; + +/** + * Creates a function that invokes `func`, with up to `n` arguments, + * ignoring any additional arguments. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Function + * @param {Function} func The function to cap arguments for. + * @param {number} [n=func.length] The arity cap. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Function} Returns the new capped function. + * @example + * + * _.map(['6', '8', '10'], _.ary(parseInt, 1)); + * // => [6, 8, 10] + */ +function ary(func, n, guard) { + n = guard ? undefined : n; + n = (func && n == null) ? func.length : n; + return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n); +} + +module.exports = ary; diff --git a/node_modules/lodash/assign.js b/node_modules/lodash/assign.js new file mode 100644 index 0000000..909db26 --- /dev/null +++ b/node_modules/lodash/assign.js @@ -0,0 +1,58 @@ +var assignValue = require('./_assignValue'), + copyObject = require('./_copyObject'), + createAssigner = require('./_createAssigner'), + isArrayLike = require('./isArrayLike'), + isPrototype = require('./_isPrototype'), + keys = require('./keys'); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Assigns own enumerable string keyed properties of source objects to the + * destination object. Source objects are applied from left to right. + * Subsequent sources overwrite property assignments of previous sources. + * + * **Note:** This method mutates `object` and is loosely based on + * [`Object.assign`](https://mdn.io/Object/assign). + * + * @static + * @memberOf _ + * @since 0.10.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @see _.assignIn + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * function Bar() { + * this.c = 3; + * } + * + * Foo.prototype.b = 2; + * Bar.prototype.d = 4; + * + * _.assign({ 'a': 0 }, new Foo, new Bar); + * // => { 'a': 1, 'c': 3 } + */ +var assign = createAssigner(function(object, source) { + if (isPrototype(source) || isArrayLike(source)) { + copyObject(source, keys(source), object); + return; + } + for (var key in source) { + if (hasOwnProperty.call(source, key)) { + assignValue(object, key, source[key]); + } + } +}); + +module.exports = assign; diff --git a/node_modules/lodash/assignIn.js b/node_modules/lodash/assignIn.js new file mode 100644 index 0000000..e663473 --- /dev/null +++ b/node_modules/lodash/assignIn.js @@ -0,0 +1,40 @@ +var copyObject = require('./_copyObject'), + createAssigner = require('./_createAssigner'), + keysIn = require('./keysIn'); + +/** + * This method is like `_.assign` except that it iterates over own and + * inherited source properties. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @alias extend + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @see _.assign + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * function Bar() { + * this.c = 3; + * } + * + * Foo.prototype.b = 2; + * Bar.prototype.d = 4; + * + * _.assignIn({ 'a': 0 }, new Foo, new Bar); + * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 } + */ +var assignIn = createAssigner(function(object, source) { + copyObject(source, keysIn(source), object); +}); + +module.exports = assignIn; diff --git a/node_modules/lodash/assignInWith.js b/node_modules/lodash/assignInWith.js new file mode 100644 index 0000000..68fcc0b --- /dev/null +++ b/node_modules/lodash/assignInWith.js @@ -0,0 +1,38 @@ +var copyObject = require('./_copyObject'), + createAssigner = require('./_createAssigner'), + keysIn = require('./keysIn'); + +/** + * This method is like `_.assignIn` except that it accepts `customizer` + * which is invoked to produce the assigned values. If `customizer` returns + * `undefined`, assignment is handled by the method instead. The `customizer` + * is invoked with five arguments: (objValue, srcValue, key, object, source). + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @alias extendWith + * @category Object + * @param {Object} object The destination object. + * @param {...Object} sources The source objects. + * @param {Function} [customizer] The function to customize assigned values. + * @returns {Object} Returns `object`. + * @see _.assignWith + * @example + * + * function customizer(objValue, srcValue) { + * return _.isUndefined(objValue) ? srcValue : objValue; + * } + * + * var defaults = _.partialRight(_.assignInWith, customizer); + * + * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); + * // => { 'a': 1, 'b': 2 } + */ +var assignInWith = createAssigner(function(object, source, srcIndex, customizer) { + copyObject(source, keysIn(source), object, customizer); +}); + +module.exports = assignInWith; diff --git a/node_modules/lodash/assignWith.js b/node_modules/lodash/assignWith.js new file mode 100644 index 0000000..7dc6c76 --- /dev/null +++ b/node_modules/lodash/assignWith.js @@ -0,0 +1,37 @@ +var copyObject = require('./_copyObject'), + createAssigner = require('./_createAssigner'), + keys = require('./keys'); + +/** + * This method is like `_.assign` except that it accepts `customizer` + * which is invoked to produce the assigned values. If `customizer` returns + * `undefined`, assignment is handled by the method instead. The `customizer` + * is invoked with five arguments: (objValue, srcValue, key, object, source). + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} sources The source objects. + * @param {Function} [customizer] The function to customize assigned values. + * @returns {Object} Returns `object`. + * @see _.assignInWith + * @example + * + * function customizer(objValue, srcValue) { + * return _.isUndefined(objValue) ? srcValue : objValue; + * } + * + * var defaults = _.partialRight(_.assignWith, customizer); + * + * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); + * // => { 'a': 1, 'b': 2 } + */ +var assignWith = createAssigner(function(object, source, srcIndex, customizer) { + copyObject(source, keys(source), object, customizer); +}); + +module.exports = assignWith; diff --git a/node_modules/lodash/at.js b/node_modules/lodash/at.js new file mode 100644 index 0000000..781ee9e --- /dev/null +++ b/node_modules/lodash/at.js @@ -0,0 +1,23 @@ +var baseAt = require('./_baseAt'), + flatRest = require('./_flatRest'); + +/** + * Creates an array of values corresponding to `paths` of `object`. + * + * @static + * @memberOf _ + * @since 1.0.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {...(string|string[])} [paths] The property paths to pick. + * @returns {Array} Returns the picked values. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] }; + * + * _.at(object, ['a[0].b.c', 'a[1]']); + * // => [3, 4] + */ +var at = flatRest(baseAt); + +module.exports = at; diff --git a/node_modules/lodash/attempt.js b/node_modules/lodash/attempt.js new file mode 100644 index 0000000..624d015 --- /dev/null +++ b/node_modules/lodash/attempt.js @@ -0,0 +1,35 @@ +var apply = require('./_apply'), + baseRest = require('./_baseRest'), + isError = require('./isError'); + +/** + * Attempts to invoke `func`, returning either the result or the caught error + * object. Any additional arguments are provided to `func` when it's invoked. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Util + * @param {Function} func The function to attempt. + * @param {...*} [args] The arguments to invoke `func` with. + * @returns {*} Returns the `func` result or error object. + * @example + * + * // Avoid throwing errors for invalid selectors. + * var elements = _.attempt(function(selector) { + * return document.querySelectorAll(selector); + * }, '>_>'); + * + * if (_.isError(elements)) { + * elements = []; + * } + */ +var attempt = baseRest(function(func, args) { + try { + return apply(func, undefined, args); + } catch (e) { + return isError(e) ? e : new Error(e); + } +}); + +module.exports = attempt; diff --git a/node_modules/lodash/before.js b/node_modules/lodash/before.js new file mode 100644 index 0000000..a3e0a16 --- /dev/null +++ b/node_modules/lodash/before.js @@ -0,0 +1,40 @@ +var toInteger = require('./toInteger'); + +/** Error message constants. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/** + * Creates a function that invokes `func`, with the `this` binding and arguments + * of the created function, while it's called less than `n` times. Subsequent + * calls to the created function return the result of the last `func` invocation. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Function + * @param {number} n The number of calls at which `func` is no longer invoked. + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new restricted function. + * @example + * + * jQuery(element).on('click', _.before(5, addContactToList)); + * // => Allows adding up to 4 contacts to the list. + */ +function before(n, func) { + var result; + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + n = toInteger(n); + return function() { + if (--n > 0) { + result = func.apply(this, arguments); + } + if (n <= 1) { + func = undefined; + } + return result; + }; +} + +module.exports = before; diff --git a/node_modules/lodash/bind.js b/node_modules/lodash/bind.js new file mode 100644 index 0000000..b1076e9 --- /dev/null +++ b/node_modules/lodash/bind.js @@ -0,0 +1,57 @@ +var baseRest = require('./_baseRest'), + createWrap = require('./_createWrap'), + getHolder = require('./_getHolder'), + replaceHolders = require('./_replaceHolders'); + +/** Used to compose bitmasks for function metadata. */ +var WRAP_BIND_FLAG = 1, + WRAP_PARTIAL_FLAG = 32; + +/** + * Creates a function that invokes `func` with the `this` binding of `thisArg` + * and `partials` prepended to the arguments it receives. + * + * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds, + * may be used as a placeholder for partially applied arguments. + * + * **Note:** Unlike native `Function#bind`, this method doesn't set the "length" + * property of bound functions. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to bind. + * @param {*} thisArg The `this` binding of `func`. + * @param {...*} [partials] The arguments to be partially applied. + * @returns {Function} Returns the new bound function. + * @example + * + * function greet(greeting, punctuation) { + * return greeting + ' ' + this.user + punctuation; + * } + * + * var object = { 'user': 'fred' }; + * + * var bound = _.bind(greet, object, 'hi'); + * bound('!'); + * // => 'hi fred!' + * + * // Bound with placeholders. + * var bound = _.bind(greet, object, _, '!'); + * bound('hi'); + * // => 'hi fred!' + */ +var bind = baseRest(function(func, thisArg, partials) { + var bitmask = WRAP_BIND_FLAG; + if (partials.length) { + var holders = replaceHolders(partials, getHolder(bind)); + bitmask |= WRAP_PARTIAL_FLAG; + } + return createWrap(func, bitmask, thisArg, partials, holders); +}); + +// Assign default placeholders. +bind.placeholder = {}; + +module.exports = bind; diff --git a/node_modules/lodash/bindAll.js b/node_modules/lodash/bindAll.js new file mode 100644 index 0000000..a35706d --- /dev/null +++ b/node_modules/lodash/bindAll.js @@ -0,0 +1,41 @@ +var arrayEach = require('./_arrayEach'), + baseAssignValue = require('./_baseAssignValue'), + bind = require('./bind'), + flatRest = require('./_flatRest'), + toKey = require('./_toKey'); + +/** + * Binds methods of an object to the object itself, overwriting the existing + * method. + * + * **Note:** This method doesn't set the "length" property of bound functions. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Util + * @param {Object} object The object to bind and assign the bound methods to. + * @param {...(string|string[])} methodNames The object method names to bind. + * @returns {Object} Returns `object`. + * @example + * + * var view = { + * 'label': 'docs', + * 'click': function() { + * console.log('clicked ' + this.label); + * } + * }; + * + * _.bindAll(view, ['click']); + * jQuery(element).on('click', view.click); + * // => Logs 'clicked docs' when clicked. + */ +var bindAll = flatRest(function(object, methodNames) { + arrayEach(methodNames, function(key) { + key = toKey(key); + baseAssignValue(object, key, bind(object[key], object)); + }); + return object; +}); + +module.exports = bindAll; diff --git a/node_modules/lodash/bindKey.js b/node_modules/lodash/bindKey.js new file mode 100644 index 0000000..f7fd64c --- /dev/null +++ b/node_modules/lodash/bindKey.js @@ -0,0 +1,68 @@ +var baseRest = require('./_baseRest'), + createWrap = require('./_createWrap'), + getHolder = require('./_getHolder'), + replaceHolders = require('./_replaceHolders'); + +/** Used to compose bitmasks for function metadata. */ +var WRAP_BIND_FLAG = 1, + WRAP_BIND_KEY_FLAG = 2, + WRAP_PARTIAL_FLAG = 32; + +/** + * Creates a function that invokes the method at `object[key]` with `partials` + * prepended to the arguments it receives. + * + * This method differs from `_.bind` by allowing bound functions to reference + * methods that may be redefined or don't yet exist. See + * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern) + * for more details. + * + * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic + * builds, may be used as a placeholder for partially applied arguments. + * + * @static + * @memberOf _ + * @since 0.10.0 + * @category Function + * @param {Object} object The object to invoke the method on. + * @param {string} key The key of the method. + * @param {...*} [partials] The arguments to be partially applied. + * @returns {Function} Returns the new bound function. + * @example + * + * var object = { + * 'user': 'fred', + * 'greet': function(greeting, punctuation) { + * return greeting + ' ' + this.user + punctuation; + * } + * }; + * + * var bound = _.bindKey(object, 'greet', 'hi'); + * bound('!'); + * // => 'hi fred!' + * + * object.greet = function(greeting, punctuation) { + * return greeting + 'ya ' + this.user + punctuation; + * }; + * + * bound('!'); + * // => 'hiya fred!' + * + * // Bound with placeholders. + * var bound = _.bindKey(object, 'greet', _, '!'); + * bound('hi'); + * // => 'hiya fred!' + */ +var bindKey = baseRest(function(object, key, partials) { + var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG; + if (partials.length) { + var holders = replaceHolders(partials, getHolder(bindKey)); + bitmask |= WRAP_PARTIAL_FLAG; + } + return createWrap(key, bitmask, object, partials, holders); +}); + +// Assign default placeholders. +bindKey.placeholder = {}; + +module.exports = bindKey; diff --git a/node_modules/lodash/camelCase.js b/node_modules/lodash/camelCase.js new file mode 100644 index 0000000..d7390de --- /dev/null +++ b/node_modules/lodash/camelCase.js @@ -0,0 +1,29 @@ +var capitalize = require('./capitalize'), + createCompounder = require('./_createCompounder'); + +/** + * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to convert. + * @returns {string} Returns the camel cased string. + * @example + * + * _.camelCase('Foo Bar'); + * // => 'fooBar' + * + * _.camelCase('--foo-bar--'); + * // => 'fooBar' + * + * _.camelCase('__FOO_BAR__'); + * // => 'fooBar' + */ +var camelCase = createCompounder(function(result, word, index) { + word = word.toLowerCase(); + return result + (index ? capitalize(word) : word); +}); + +module.exports = camelCase; diff --git a/node_modules/lodash/capitalize.js b/node_modules/lodash/capitalize.js new file mode 100644 index 0000000..3e1600e --- /dev/null +++ b/node_modules/lodash/capitalize.js @@ -0,0 +1,23 @@ +var toString = require('./toString'), + upperFirst = require('./upperFirst'); + +/** + * Converts the first character of `string` to upper case and the remaining + * to lower case. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to capitalize. + * @returns {string} Returns the capitalized string. + * @example + * + * _.capitalize('FRED'); + * // => 'Fred' + */ +function capitalize(string) { + return upperFirst(toString(string).toLowerCase()); +} + +module.exports = capitalize; diff --git a/node_modules/lodash/castArray.js b/node_modules/lodash/castArray.js new file mode 100644 index 0000000..e470bdb --- /dev/null +++ b/node_modules/lodash/castArray.js @@ -0,0 +1,44 @@ +var isArray = require('./isArray'); + +/** + * Casts `value` as an array if it's not one. + * + * @static + * @memberOf _ + * @since 4.4.0 + * @category Lang + * @param {*} value The value to inspect. + * @returns {Array} Returns the cast array. + * @example + * + * _.castArray(1); + * // => [1] + * + * _.castArray({ 'a': 1 }); + * // => [{ 'a': 1 }] + * + * _.castArray('abc'); + * // => ['abc'] + * + * _.castArray(null); + * // => [null] + * + * _.castArray(undefined); + * // => [undefined] + * + * _.castArray(); + * // => [] + * + * var array = [1, 2, 3]; + * console.log(_.castArray(array) === array); + * // => true + */ +function castArray() { + if (!arguments.length) { + return []; + } + var value = arguments[0]; + return isArray(value) ? value : [value]; +} + +module.exports = castArray; diff --git a/node_modules/lodash/ceil.js b/node_modules/lodash/ceil.js new file mode 100644 index 0000000..56c8722 --- /dev/null +++ b/node_modules/lodash/ceil.js @@ -0,0 +1,26 @@ +var createRound = require('./_createRound'); + +/** + * Computes `number` rounded up to `precision`. + * + * @static + * @memberOf _ + * @since 3.10.0 + * @category Math + * @param {number} number The number to round up. + * @param {number} [precision=0] The precision to round up to. + * @returns {number} Returns the rounded up number. + * @example + * + * _.ceil(4.006); + * // => 5 + * + * _.ceil(6.004, 2); + * // => 6.01 + * + * _.ceil(6040, -2); + * // => 6100 + */ +var ceil = createRound('ceil'); + +module.exports = ceil; diff --git a/node_modules/lodash/chain.js b/node_modules/lodash/chain.js new file mode 100644 index 0000000..f6cd647 --- /dev/null +++ b/node_modules/lodash/chain.js @@ -0,0 +1,38 @@ +var lodash = require('./wrapperLodash'); + +/** + * Creates a `lodash` wrapper instance that wraps `value` with explicit method + * chain sequences enabled. The result of such sequences must be unwrapped + * with `_#value`. + * + * @static + * @memberOf _ + * @since 1.3.0 + * @category Seq + * @param {*} value The value to wrap. + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36 }, + * { 'user': 'fred', 'age': 40 }, + * { 'user': 'pebbles', 'age': 1 } + * ]; + * + * var youngest = _ + * .chain(users) + * .sortBy('age') + * .map(function(o) { + * return o.user + ' is ' + o.age; + * }) + * .head() + * .value(); + * // => 'pebbles is 1' + */ +function chain(value) { + var result = lodash(value); + result.__chain__ = true; + return result; +} + +module.exports = chain; diff --git a/node_modules/lodash/chunk.js b/node_modules/lodash/chunk.js new file mode 100644 index 0000000..5b562fe --- /dev/null +++ b/node_modules/lodash/chunk.js @@ -0,0 +1,50 @@ +var baseSlice = require('./_baseSlice'), + isIterateeCall = require('./_isIterateeCall'), + toInteger = require('./toInteger'); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeCeil = Math.ceil, + nativeMax = Math.max; + +/** + * Creates an array of elements split into groups the length of `size`. + * If `array` can't be split evenly, the final chunk will be the remaining + * elements. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to process. + * @param {number} [size=1] The length of each chunk + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Array} Returns the new array of chunks. + * @example + * + * _.chunk(['a', 'b', 'c', 'd'], 2); + * // => [['a', 'b'], ['c', 'd']] + * + * _.chunk(['a', 'b', 'c', 'd'], 3); + * // => [['a', 'b', 'c'], ['d']] + */ +function chunk(array, size, guard) { + if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) { + size = 1; + } else { + size = nativeMax(toInteger(size), 0); + } + var length = array == null ? 0 : array.length; + if (!length || size < 1) { + return []; + } + var index = 0, + resIndex = 0, + result = Array(nativeCeil(length / size)); + + while (index < length) { + result[resIndex++] = baseSlice(array, index, (index += size)); + } + return result; +} + +module.exports = chunk; diff --git a/node_modules/lodash/clamp.js b/node_modules/lodash/clamp.js new file mode 100644 index 0000000..91a72c9 --- /dev/null +++ b/node_modules/lodash/clamp.js @@ -0,0 +1,39 @@ +var baseClamp = require('./_baseClamp'), + toNumber = require('./toNumber'); + +/** + * Clamps `number` within the inclusive `lower` and `upper` bounds. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Number + * @param {number} number The number to clamp. + * @param {number} [lower] The lower bound. + * @param {number} upper The upper bound. + * @returns {number} Returns the clamped number. + * @example + * + * _.clamp(-10, -5, 5); + * // => -5 + * + * _.clamp(10, -5, 5); + * // => 5 + */ +function clamp(number, lower, upper) { + if (upper === undefined) { + upper = lower; + lower = undefined; + } + if (upper !== undefined) { + upper = toNumber(upper); + upper = upper === upper ? upper : 0; + } + if (lower !== undefined) { + lower = toNumber(lower); + lower = lower === lower ? lower : 0; + } + return baseClamp(toNumber(number), lower, upper); +} + +module.exports = clamp; diff --git a/node_modules/lodash/clone.js b/node_modules/lodash/clone.js new file mode 100644 index 0000000..dd439d6 --- /dev/null +++ b/node_modules/lodash/clone.js @@ -0,0 +1,36 @@ +var baseClone = require('./_baseClone'); + +/** Used to compose bitmasks for cloning. */ +var CLONE_SYMBOLS_FLAG = 4; + +/** + * Creates a shallow clone of `value`. + * + * **Note:** This method is loosely based on the + * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm) + * and supports cloning arrays, array buffers, booleans, date objects, maps, + * numbers, `Object` objects, regexes, sets, strings, symbols, and typed + * arrays. The own enumerable properties of `arguments` objects are cloned + * as plain objects. An empty object is returned for uncloneable values such + * as error objects, functions, DOM nodes, and WeakMaps. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to clone. + * @returns {*} Returns the cloned value. + * @see _.cloneDeep + * @example + * + * var objects = [{ 'a': 1 }, { 'b': 2 }]; + * + * var shallow = _.clone(objects); + * console.log(shallow[0] === objects[0]); + * // => true + */ +function clone(value) { + return baseClone(value, CLONE_SYMBOLS_FLAG); +} + +module.exports = clone; diff --git a/node_modules/lodash/cloneDeep.js b/node_modules/lodash/cloneDeep.js new file mode 100644 index 0000000..4425fbe --- /dev/null +++ b/node_modules/lodash/cloneDeep.js @@ -0,0 +1,29 @@ +var baseClone = require('./_baseClone'); + +/** Used to compose bitmasks for cloning. */ +var CLONE_DEEP_FLAG = 1, + CLONE_SYMBOLS_FLAG = 4; + +/** + * This method is like `_.clone` except that it recursively clones `value`. + * + * @static + * @memberOf _ + * @since 1.0.0 + * @category Lang + * @param {*} value The value to recursively clone. + * @returns {*} Returns the deep cloned value. + * @see _.clone + * @example + * + * var objects = [{ 'a': 1 }, { 'b': 2 }]; + * + * var deep = _.cloneDeep(objects); + * console.log(deep[0] === objects[0]); + * // => false + */ +function cloneDeep(value) { + return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG); +} + +module.exports = cloneDeep; diff --git a/node_modules/lodash/cloneDeepWith.js b/node_modules/lodash/cloneDeepWith.js new file mode 100644 index 0000000..fd9c6c0 --- /dev/null +++ b/node_modules/lodash/cloneDeepWith.js @@ -0,0 +1,40 @@ +var baseClone = require('./_baseClone'); + +/** Used to compose bitmasks for cloning. */ +var CLONE_DEEP_FLAG = 1, + CLONE_SYMBOLS_FLAG = 4; + +/** + * This method is like `_.cloneWith` except that it recursively clones `value`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to recursively clone. + * @param {Function} [customizer] The function to customize cloning. + * @returns {*} Returns the deep cloned value. + * @see _.cloneWith + * @example + * + * function customizer(value) { + * if (_.isElement(value)) { + * return value.cloneNode(true); + * } + * } + * + * var el = _.cloneDeepWith(document.body, customizer); + * + * console.log(el === document.body); + * // => false + * console.log(el.nodeName); + * // => 'BODY' + * console.log(el.childNodes.length); + * // => 20 + */ +function cloneDeepWith(value, customizer) { + customizer = typeof customizer == 'function' ? customizer : undefined; + return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer); +} + +module.exports = cloneDeepWith; diff --git a/node_modules/lodash/cloneWith.js b/node_modules/lodash/cloneWith.js new file mode 100644 index 0000000..d2f4e75 --- /dev/null +++ b/node_modules/lodash/cloneWith.js @@ -0,0 +1,42 @@ +var baseClone = require('./_baseClone'); + +/** Used to compose bitmasks for cloning. */ +var CLONE_SYMBOLS_FLAG = 4; + +/** + * This method is like `_.clone` except that it accepts `customizer` which + * is invoked to produce the cloned value. If `customizer` returns `undefined`, + * cloning is handled by the method instead. The `customizer` is invoked with + * up to four arguments; (value [, index|key, object, stack]). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to clone. + * @param {Function} [customizer] The function to customize cloning. + * @returns {*} Returns the cloned value. + * @see _.cloneDeepWith + * @example + * + * function customizer(value) { + * if (_.isElement(value)) { + * return value.cloneNode(false); + * } + * } + * + * var el = _.cloneWith(document.body, customizer); + * + * console.log(el === document.body); + * // => false + * console.log(el.nodeName); + * // => 'BODY' + * console.log(el.childNodes.length); + * // => 0 + */ +function cloneWith(value, customizer) { + customizer = typeof customizer == 'function' ? customizer : undefined; + return baseClone(value, CLONE_SYMBOLS_FLAG, customizer); +} + +module.exports = cloneWith; diff --git a/node_modules/lodash/collection.js b/node_modules/lodash/collection.js new file mode 100644 index 0000000..77fe837 --- /dev/null +++ b/node_modules/lodash/collection.js @@ -0,0 +1,30 @@ +module.exports = { + 'countBy': require('./countBy'), + 'each': require('./each'), + 'eachRight': require('./eachRight'), + 'every': require('./every'), + 'filter': require('./filter'), + 'find': require('./find'), + 'findLast': require('./findLast'), + 'flatMap': require('./flatMap'), + 'flatMapDeep': require('./flatMapDeep'), + 'flatMapDepth': require('./flatMapDepth'), + 'forEach': require('./forEach'), + 'forEachRight': require('./forEachRight'), + 'groupBy': require('./groupBy'), + 'includes': require('./includes'), + 'invokeMap': require('./invokeMap'), + 'keyBy': require('./keyBy'), + 'map': require('./map'), + 'orderBy': require('./orderBy'), + 'partition': require('./partition'), + 'reduce': require('./reduce'), + 'reduceRight': require('./reduceRight'), + 'reject': require('./reject'), + 'sample': require('./sample'), + 'sampleSize': require('./sampleSize'), + 'shuffle': require('./shuffle'), + 'size': require('./size'), + 'some': require('./some'), + 'sortBy': require('./sortBy') +}; diff --git a/node_modules/lodash/commit.js b/node_modules/lodash/commit.js new file mode 100644 index 0000000..fe4db71 --- /dev/null +++ b/node_modules/lodash/commit.js @@ -0,0 +1,33 @@ +var LodashWrapper = require('./_LodashWrapper'); + +/** + * Executes the chain sequence and returns the wrapped result. + * + * @name commit + * @memberOf _ + * @since 3.2.0 + * @category Seq + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * var array = [1, 2]; + * var wrapped = _(array).push(3); + * + * console.log(array); + * // => [1, 2] + * + * wrapped = wrapped.commit(); + * console.log(array); + * // => [1, 2, 3] + * + * wrapped.last(); + * // => 3 + * + * console.log(array); + * // => [1, 2, 3] + */ +function wrapperCommit() { + return new LodashWrapper(this.value(), this.__chain__); +} + +module.exports = wrapperCommit; diff --git a/node_modules/lodash/compact.js b/node_modules/lodash/compact.js new file mode 100644 index 0000000..031fab4 --- /dev/null +++ b/node_modules/lodash/compact.js @@ -0,0 +1,31 @@ +/** + * Creates an array with all falsey values removed. The values `false`, `null`, + * `0`, `""`, `undefined`, and `NaN` are falsey. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to compact. + * @returns {Array} Returns the new array of filtered values. + * @example + * + * _.compact([0, 1, false, 2, '', 3]); + * // => [1, 2, 3] + */ +function compact(array) { + var index = -1, + length = array == null ? 0 : array.length, + resIndex = 0, + result = []; + + while (++index < length) { + var value = array[index]; + if (value) { + result[resIndex++] = value; + } + } + return result; +} + +module.exports = compact; diff --git a/node_modules/lodash/concat.js b/node_modules/lodash/concat.js new file mode 100644 index 0000000..1da48a4 --- /dev/null +++ b/node_modules/lodash/concat.js @@ -0,0 +1,43 @@ +var arrayPush = require('./_arrayPush'), + baseFlatten = require('./_baseFlatten'), + copyArray = require('./_copyArray'), + isArray = require('./isArray'); + +/** + * Creates a new array concatenating `array` with any additional arrays + * and/or values. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to concatenate. + * @param {...*} [values] The values to concatenate. + * @returns {Array} Returns the new concatenated array. + * @example + * + * var array = [1]; + * var other = _.concat(array, 2, [3], [[4]]); + * + * console.log(other); + * // => [1, 2, 3, [4]] + * + * console.log(array); + * // => [1] + */ +function concat() { + var length = arguments.length; + if (!length) { + return []; + } + var args = Array(length - 1), + array = arguments[0], + index = length; + + while (index--) { + args[index - 1] = arguments[index]; + } + return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1)); +} + +module.exports = concat; diff --git a/node_modules/lodash/cond.js b/node_modules/lodash/cond.js new file mode 100644 index 0000000..6455598 --- /dev/null +++ b/node_modules/lodash/cond.js @@ -0,0 +1,60 @@ +var apply = require('./_apply'), + arrayMap = require('./_arrayMap'), + baseIteratee = require('./_baseIteratee'), + baseRest = require('./_baseRest'); + +/** Error message constants. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/** + * Creates a function that iterates over `pairs` and invokes the corresponding + * function of the first predicate to return truthy. The predicate-function + * pairs are invoked with the `this` binding and arguments of the created + * function. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Util + * @param {Array} pairs The predicate-function pairs. + * @returns {Function} Returns the new composite function. + * @example + * + * var func = _.cond([ + * [_.matches({ 'a': 1 }), _.constant('matches A')], + * [_.conforms({ 'b': _.isNumber }), _.constant('matches B')], + * [_.stubTrue, _.constant('no match')] + * ]); + * + * func({ 'a': 1, 'b': 2 }); + * // => 'matches A' + * + * func({ 'a': 0, 'b': 1 }); + * // => 'matches B' + * + * func({ 'a': '1', 'b': '2' }); + * // => 'no match' + */ +function cond(pairs) { + var length = pairs == null ? 0 : pairs.length, + toIteratee = baseIteratee; + + pairs = !length ? [] : arrayMap(pairs, function(pair) { + if (typeof pair[1] != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + return [toIteratee(pair[0]), pair[1]]; + }); + + return baseRest(function(args) { + var index = -1; + while (++index < length) { + var pair = pairs[index]; + if (apply(pair[0], this, args)) { + return apply(pair[1], this, args); + } + } + }); +} + +module.exports = cond; diff --git a/node_modules/lodash/conforms.js b/node_modules/lodash/conforms.js new file mode 100644 index 0000000..5501a94 --- /dev/null +++ b/node_modules/lodash/conforms.js @@ -0,0 +1,35 @@ +var baseClone = require('./_baseClone'), + baseConforms = require('./_baseConforms'); + +/** Used to compose bitmasks for cloning. */ +var CLONE_DEEP_FLAG = 1; + +/** + * Creates a function that invokes the predicate properties of `source` with + * the corresponding property values of a given object, returning `true` if + * all predicates return truthy, else `false`. + * + * **Note:** The created function is equivalent to `_.conformsTo` with + * `source` partially applied. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Util + * @param {Object} source The object of property predicates to conform to. + * @returns {Function} Returns the new spec function. + * @example + * + * var objects = [ + * { 'a': 2, 'b': 1 }, + * { 'a': 1, 'b': 2 } + * ]; + * + * _.filter(objects, _.conforms({ 'b': function(n) { return n > 1; } })); + * // => [{ 'a': 1, 'b': 2 }] + */ +function conforms(source) { + return baseConforms(baseClone(source, CLONE_DEEP_FLAG)); +} + +module.exports = conforms; diff --git a/node_modules/lodash/conformsTo.js b/node_modules/lodash/conformsTo.js new file mode 100644 index 0000000..b8a93eb --- /dev/null +++ b/node_modules/lodash/conformsTo.js @@ -0,0 +1,32 @@ +var baseConformsTo = require('./_baseConformsTo'), + keys = require('./keys'); + +/** + * Checks if `object` conforms to `source` by invoking the predicate + * properties of `source` with the corresponding property values of `object`. + * + * **Note:** This method is equivalent to `_.conforms` when `source` is + * partially applied. + * + * @static + * @memberOf _ + * @since 4.14.0 + * @category Lang + * @param {Object} object The object to inspect. + * @param {Object} source The object of property predicates to conform to. + * @returns {boolean} Returns `true` if `object` conforms, else `false`. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * + * _.conformsTo(object, { 'b': function(n) { return n > 1; } }); + * // => true + * + * _.conformsTo(object, { 'b': function(n) { return n > 2; } }); + * // => false + */ +function conformsTo(object, source) { + return source == null || baseConformsTo(object, source, keys(source)); +} + +module.exports = conformsTo; diff --git a/node_modules/lodash/constant.js b/node_modules/lodash/constant.js new file mode 100644 index 0000000..655ece3 --- /dev/null +++ b/node_modules/lodash/constant.js @@ -0,0 +1,26 @@ +/** + * Creates a function that returns `value`. + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Util + * @param {*} value The value to return from the new function. + * @returns {Function} Returns the new constant function. + * @example + * + * var objects = _.times(2, _.constant({ 'a': 1 })); + * + * console.log(objects); + * // => [{ 'a': 1 }, { 'a': 1 }] + * + * console.log(objects[0] === objects[1]); + * // => true + */ +function constant(value) { + return function() { + return value; + }; +} + +module.exports = constant; diff --git a/node_modules/lodash/core.js b/node_modules/lodash/core.js new file mode 100644 index 0000000..6d70dca --- /dev/null +++ b/node_modules/lodash/core.js @@ -0,0 +1,3877 @@ +/** + * @license + * Lodash (Custom Build) + * Build: `lodash core -o ./dist/lodash.core.js` + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */ +;(function() { + + /** Used as a safe reference for `undefined` in pre-ES5 environments. */ + var undefined; + + /** Used as the semantic version number. */ + var VERSION = '4.17.20'; + + /** Error message constants. */ + var FUNC_ERROR_TEXT = 'Expected a function'; + + /** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + + /** Used to compose bitmasks for function metadata. */ + var WRAP_BIND_FLAG = 1, + WRAP_PARTIAL_FLAG = 32; + + /** Used as references for various `Number` constants. */ + var INFINITY = 1 / 0, + MAX_SAFE_INTEGER = 9007199254740991; + + /** `Object#toString` result references. */ + var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + asyncTag = '[object AsyncFunction]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + genTag = '[object GeneratorFunction]', + numberTag = '[object Number]', + objectTag = '[object Object]', + proxyTag = '[object Proxy]', + regexpTag = '[object RegExp]', + stringTag = '[object String]'; + + /** Used to match HTML entities and HTML characters. */ + var reUnescapedHtml = /[&<>"']/g, + reHasUnescapedHtml = RegExp(reUnescapedHtml.source); + + /** Used to detect unsigned integer values. */ + var reIsUint = /^(?:0|[1-9]\d*)$/; + + /** Used to map characters to HTML entities. */ + var htmlEscapes = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''' + }; + + /** Detect free variable `global` from Node.js. */ + var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; + + /** Detect free variable `self`. */ + var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + + /** Used as a reference to the global object. */ + var root = freeGlobal || freeSelf || Function('return this')(); + + /** Detect free variable `exports`. */ + var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; + + /** Detect free variable `module`. */ + var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; + + /*--------------------------------------------------------------------------*/ + + /** + * Appends the elements of `values` to `array`. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to append. + * @returns {Array} Returns `array`. + */ + function arrayPush(array, values) { + array.push.apply(array, values); + return array; + } + + /** + * The base implementation of `_.findIndex` and `_.findLastIndex` without + * support for iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} predicate The function invoked per iteration. + * @param {number} fromIndex The index to search from. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function baseFindIndex(array, predicate, fromIndex, fromRight) { + var length = array.length, + index = fromIndex + (fromRight ? 1 : -1); + + while ((fromRight ? index-- : ++index < length)) { + if (predicate(array[index], index, array)) { + return index; + } + } + return -1; + } + + /** + * The base implementation of `_.property` without support for deep paths. + * + * @private + * @param {string} key The key of the property to get. + * @returns {Function} Returns the new accessor function. + */ + function baseProperty(key) { + return function(object) { + return object == null ? undefined : object[key]; + }; + } + + /** + * The base implementation of `_.propertyOf` without support for deep paths. + * + * @private + * @param {Object} object The object to query. + * @returns {Function} Returns the new accessor function. + */ + function basePropertyOf(object) { + return function(key) { + return object == null ? undefined : object[key]; + }; + } + + /** + * The base implementation of `_.reduce` and `_.reduceRight`, without support + * for iteratee shorthands, which iterates over `collection` using `eachFunc`. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {*} accumulator The initial value. + * @param {boolean} initAccum Specify using the first or last element of + * `collection` as the initial value. + * @param {Function} eachFunc The function to iterate over `collection`. + * @returns {*} Returns the accumulated value. + */ + function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { + eachFunc(collection, function(value, index, collection) { + accumulator = initAccum + ? (initAccum = false, value) + : iteratee(accumulator, value, index, collection); + }); + return accumulator; + } + + /** + * The base implementation of `_.values` and `_.valuesIn` which creates an + * array of `object` property values corresponding to the property names + * of `props`. + * + * @private + * @param {Object} object The object to query. + * @param {Array} props The property names to get values for. + * @returns {Object} Returns the array of property values. + */ + function baseValues(object, props) { + return baseMap(props, function(key) { + return object[key]; + }); + } + + /** + * Used by `_.escape` to convert characters to HTML entities. + * + * @private + * @param {string} chr The matched character to escape. + * @returns {string} Returns the escaped character. + */ + var escapeHtmlChar = basePropertyOf(htmlEscapes); + + /** + * Creates a unary function that invokes `func` with its argument transformed. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. + */ + function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; + } + + /*--------------------------------------------------------------------------*/ + + /** Used for built-in method references. */ + var arrayProto = Array.prototype, + objectProto = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** Used to generate unique IDs. */ + var idCounter = 0; + + /** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ + var nativeObjectToString = objectProto.toString; + + /** Used to restore the original `_` reference in `_.noConflict`. */ + var oldDash = root._; + + /** Built-in value references. */ + var objectCreate = Object.create, + propertyIsEnumerable = objectProto.propertyIsEnumerable; + + /* Built-in method references for those with the same name as other `lodash` methods. */ + var nativeIsFinite = root.isFinite, + nativeKeys = overArg(Object.keys, Object), + nativeMax = Math.max; + + /*------------------------------------------------------------------------*/ + + /** + * Creates a `lodash` object which wraps `value` to enable implicit method + * chain sequences. Methods that operate on and return arrays, collections, + * and functions can be chained together. Methods that retrieve a single value + * or may return a primitive value will automatically end the chain sequence + * and return the unwrapped value. Otherwise, the value must be unwrapped + * with `_#value`. + * + * Explicit chain sequences, which must be unwrapped with `_#value`, may be + * enabled using `_.chain`. + * + * The execution of chained methods is lazy, that is, it's deferred until + * `_#value` is implicitly or explicitly called. + * + * Lazy evaluation allows several methods to support shortcut fusion. + * Shortcut fusion is an optimization to merge iteratee calls; this avoids + * the creation of intermediate arrays and can greatly reduce the number of + * iteratee executions. Sections of a chain sequence qualify for shortcut + * fusion if the section is applied to an array and iteratees accept only + * one argument. The heuristic for whether a section qualifies for shortcut + * fusion is subject to change. + * + * Chaining is supported in custom builds as long as the `_#value` method is + * directly or indirectly included in the build. + * + * In addition to lodash methods, wrappers have `Array` and `String` methods. + * + * The wrapper `Array` methods are: + * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift` + * + * The wrapper `String` methods are: + * `replace` and `split` + * + * The wrapper methods that support shortcut fusion are: + * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`, + * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`, + * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray` + * + * The chainable wrapper methods are: + * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`, + * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`, + * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`, + * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`, + * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`, + * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`, + * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`, + * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`, + * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`, + * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`, + * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`, + * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`, + * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`, + * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`, + * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`, + * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`, + * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`, + * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`, + * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`, + * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`, + * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`, + * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`, + * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`, + * `zipObject`, `zipObjectDeep`, and `zipWith` + * + * The wrapper methods that are **not** chainable by default are: + * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`, + * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`, + * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`, + * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`, + * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`, + * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`, + * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`, + * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, + * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`, + * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`, + * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, + * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`, + * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`, + * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`, + * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`, + * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`, + * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`, + * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`, + * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`, + * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`, + * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`, + * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`, + * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`, + * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`, + * `upperFirst`, `value`, and `words` + * + * @name _ + * @constructor + * @category Seq + * @param {*} value The value to wrap in a `lodash` instance. + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * function square(n) { + * return n * n; + * } + * + * var wrapped = _([1, 2, 3]); + * + * // Returns an unwrapped value. + * wrapped.reduce(_.add); + * // => 6 + * + * // Returns a wrapped value. + * var squares = wrapped.map(square); + * + * _.isArray(squares); + * // => false + * + * _.isArray(squares.value()); + * // => true + */ + function lodash(value) { + return value instanceof LodashWrapper + ? value + : new LodashWrapper(value); + } + + /** + * The base implementation of `_.create` without support for assigning + * properties to the created object. + * + * @private + * @param {Object} proto The object to inherit from. + * @returns {Object} Returns the new object. + */ + var baseCreate = (function() { + function object() {} + return function(proto) { + if (!isObject(proto)) { + return {}; + } + if (objectCreate) { + return objectCreate(proto); + } + object.prototype = proto; + var result = new object; + object.prototype = undefined; + return result; + }; + }()); + + /** + * The base constructor for creating `lodash` wrapper objects. + * + * @private + * @param {*} value The value to wrap. + * @param {boolean} [chainAll] Enable explicit method chain sequences. + */ + function LodashWrapper(value, chainAll) { + this.__wrapped__ = value; + this.__actions__ = []; + this.__chain__ = !!chainAll; + } + + LodashWrapper.prototype = baseCreate(lodash.prototype); + LodashWrapper.prototype.constructor = LodashWrapper; + + /*------------------------------------------------------------------------*/ + + /** + * Assigns `value` to `key` of `object` if the existing value is not equivalent + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ + function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || + (value === undefined && !(key in object))) { + baseAssignValue(object, key, value); + } + } + + /** + * The base implementation of `assignValue` and `assignMergeValue` without + * value checks. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ + function baseAssignValue(object, key, value) { + object[key] = value; + } + + /** + * The base implementation of `_.delay` and `_.defer` which accepts `args` + * to provide to `func`. + * + * @private + * @param {Function} func The function to delay. + * @param {number} wait The number of milliseconds to delay invocation. + * @param {Array} args The arguments to provide to `func`. + * @returns {number|Object} Returns the timer id or timeout object. + */ + function baseDelay(func, wait, args) { + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + return setTimeout(function() { func.apply(undefined, args); }, wait); + } + + /** + * The base implementation of `_.forEach` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + */ + var baseEach = createBaseEach(baseForOwn); + + /** + * The base implementation of `_.every` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if all elements pass the predicate check, + * else `false` + */ + function baseEvery(collection, predicate) { + var result = true; + baseEach(collection, function(value, index, collection) { + result = !!predicate(value, index, collection); + return result; + }); + return result; + } + + /** + * The base implementation of methods like `_.max` and `_.min` which accepts a + * `comparator` to determine the extremum value. + * + * @private + * @param {Array} array The array to iterate over. + * @param {Function} iteratee The iteratee invoked per iteration. + * @param {Function} comparator The comparator used to compare values. + * @returns {*} Returns the extremum value. + */ + function baseExtremum(array, iteratee, comparator) { + var index = -1, + length = array.length; + + while (++index < length) { + var value = array[index], + current = iteratee(value); + + if (current != null && (computed === undefined + ? (current === current && !false) + : comparator(current, computed) + )) { + var computed = current, + result = value; + } + } + return result; + } + + /** + * The base implementation of `_.filter` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + */ + function baseFilter(collection, predicate) { + var result = []; + baseEach(collection, function(value, index, collection) { + if (predicate(value, index, collection)) { + result.push(value); + } + }); + return result; + } + + /** + * The base implementation of `_.flatten` with support for restricting flattening. + * + * @private + * @param {Array} array The array to flatten. + * @param {number} depth The maximum recursion depth. + * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. + * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. + * @param {Array} [result=[]] The initial result value. + * @returns {Array} Returns the new flattened array. + */ + function baseFlatten(array, depth, predicate, isStrict, result) { + var index = -1, + length = array.length; + + predicate || (predicate = isFlattenable); + result || (result = []); + + while (++index < length) { + var value = array[index]; + if (depth > 0 && predicate(value)) { + if (depth > 1) { + // Recursively flatten arrays (susceptible to call stack limits). + baseFlatten(value, depth - 1, predicate, isStrict, result); + } else { + arrayPush(result, value); + } + } else if (!isStrict) { + result[result.length] = value; + } + } + return result; + } + + /** + * The base implementation of `baseForOwn` which iterates over `object` + * properties returned by `keysFunc` and invokes `iteratee` for each property. + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */ + var baseFor = createBaseFor(); + + /** + * The base implementation of `_.forOwn` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Object} Returns `object`. + */ + function baseForOwn(object, iteratee) { + return object && baseFor(object, iteratee, keys); + } + + /** + * The base implementation of `_.functions` which creates an array of + * `object` function property names filtered from `props`. + * + * @private + * @param {Object} object The object to inspect. + * @param {Array} props The property names to filter. + * @returns {Array} Returns the function names. + */ + function baseFunctions(object, props) { + return baseFilter(props, function(key) { + return isFunction(object[key]); + }); + } + + /** + * The base implementation of `getTag` without fallbacks for buggy environments. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ + function baseGetTag(value) { + return objectToString(value); + } + + /** + * The base implementation of `_.gt` which doesn't coerce arguments. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if `value` is greater than `other`, + * else `false`. + */ + function baseGt(value, other) { + return value > other; + } + + /** + * The base implementation of `_.isArguments`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + */ + var baseIsArguments = noop; + + /** + * The base implementation of `_.isDate` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a date object, else `false`. + */ + function baseIsDate(value) { + return isObjectLike(value) && baseGetTag(value) == dateTag; + } + + /** + * The base implementation of `_.isEqual` which supports partial comparisons + * and tracks traversed objects. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {boolean} bitmask The bitmask flags. + * 1 - Unordered comparison + * 2 - Partial comparison + * @param {Function} [customizer] The function to customize comparisons. + * @param {Object} [stack] Tracks traversed `value` and `other` objects. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + */ + function baseIsEqual(value, other, bitmask, customizer, stack) { + if (value === other) { + return true; + } + if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { + return value !== value && other !== other; + } + return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); + } + + /** + * A specialized version of `baseIsEqual` for arrays and objects which performs + * deep comparisons and tracks traversed objects enabling objects with circular + * references to be compared. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} [stack] Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { + var objIsArr = isArray(object), + othIsArr = isArray(other), + objTag = objIsArr ? arrayTag : baseGetTag(object), + othTag = othIsArr ? arrayTag : baseGetTag(other); + + objTag = objTag == argsTag ? objectTag : objTag; + othTag = othTag == argsTag ? objectTag : othTag; + + var objIsObj = objTag == objectTag, + othIsObj = othTag == objectTag, + isSameTag = objTag == othTag; + + stack || (stack = []); + var objStack = find(stack, function(entry) { + return entry[0] == object; + }); + var othStack = find(stack, function(entry) { + return entry[0] == other; + }); + if (objStack && othStack) { + return objStack[1] == other; + } + stack.push([object, other]); + stack.push([other, object]); + if (isSameTag && !objIsObj) { + var result = (objIsArr) + ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) + : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); + stack.pop(); + return result; + } + if (!(bitmask & COMPARE_PARTIAL_FLAG)) { + var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), + othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); + + if (objIsWrapped || othIsWrapped) { + var objUnwrapped = objIsWrapped ? object.value() : object, + othUnwrapped = othIsWrapped ? other.value() : other; + + var result = equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); + stack.pop(); + return result; + } + } + if (!isSameTag) { + return false; + } + var result = equalObjects(object, other, bitmask, customizer, equalFunc, stack); + stack.pop(); + return result; + } + + /** + * The base implementation of `_.isRegExp` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. + */ + function baseIsRegExp(value) { + return isObjectLike(value) && baseGetTag(value) == regexpTag; + } + + /** + * The base implementation of `_.iteratee`. + * + * @private + * @param {*} [value=_.identity] The value to convert to an iteratee. + * @returns {Function} Returns the iteratee. + */ + function baseIteratee(func) { + if (typeof func == 'function') { + return func; + } + if (func == null) { + return identity; + } + return (typeof func == 'object' ? baseMatches : baseProperty)(func); + } + + /** + * The base implementation of `_.lt` which doesn't coerce arguments. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if `value` is less than `other`, + * else `false`. + */ + function baseLt(value, other) { + return value < other; + } + + /** + * The base implementation of `_.map` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ + function baseMap(collection, iteratee) { + var index = -1, + result = isArrayLike(collection) ? Array(collection.length) : []; + + baseEach(collection, function(value, key, collection) { + result[++index] = iteratee(value, key, collection); + }); + return result; + } + + /** + * The base implementation of `_.matches` which doesn't clone `source`. + * + * @private + * @param {Object} source The object of property values to match. + * @returns {Function} Returns the new spec function. + */ + function baseMatches(source) { + var props = nativeKeys(source); + return function(object) { + var length = props.length; + if (object == null) { + return !length; + } + object = Object(object); + while (length--) { + var key = props[length]; + if (!(key in object && + baseIsEqual(source[key], object[key], COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG) + )) { + return false; + } + } + return true; + }; + } + + /** + * The base implementation of `_.pick` without support for individual + * property identifiers. + * + * @private + * @param {Object} object The source object. + * @param {string[]} paths The property paths to pick. + * @returns {Object} Returns the new object. + */ + function basePick(object, props) { + object = Object(object); + return reduce(props, function(result, key) { + if (key in object) { + result[key] = object[key]; + } + return result; + }, {}); + } + + /** + * The base implementation of `_.rest` which doesn't validate or coerce arguments. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + */ + function baseRest(func, start) { + return setToString(overRest(func, start, identity), func + ''); + } + + /** + * The base implementation of `_.slice` without an iteratee call guard. + * + * @private + * @param {Array} array The array to slice. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns the slice of `array`. + */ + function baseSlice(array, start, end) { + var index = -1, + length = array.length; + + if (start < 0) { + start = -start > length ? 0 : (length + start); + } + end = end > length ? length : end; + if (end < 0) { + end += length; + } + length = start > end ? 0 : ((end - start) >>> 0); + start >>>= 0; + + var result = Array(length); + while (++index < length) { + result[index] = array[index + start]; + } + return result; + } + + /** + * Copies the values of `source` to `array`. + * + * @private + * @param {Array} source The array to copy values from. + * @param {Array} [array=[]] The array to copy values to. + * @returns {Array} Returns `array`. + */ + function copyArray(source) { + return baseSlice(source, 0, source.length); + } + + /** + * The base implementation of `_.some` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ + function baseSome(collection, predicate) { + var result; + + baseEach(collection, function(value, index, collection) { + result = predicate(value, index, collection); + return !result; + }); + return !!result; + } + + /** + * The base implementation of `wrapperValue` which returns the result of + * performing a sequence of actions on the unwrapped `value`, where each + * successive action is supplied the return value of the previous. + * + * @private + * @param {*} value The unwrapped value. + * @param {Array} actions Actions to perform to resolve the unwrapped value. + * @returns {*} Returns the resolved value. + */ + function baseWrapperValue(value, actions) { + var result = value; + return reduce(actions, function(result, action) { + return action.func.apply(action.thisArg, arrayPush([result], action.args)); + }, result); + } + + /** + * Compares values to sort them in ascending order. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {number} Returns the sort order indicator for `value`. + */ + function compareAscending(value, other) { + if (value !== other) { + var valIsDefined = value !== undefined, + valIsNull = value === null, + valIsReflexive = value === value, + valIsSymbol = false; + + var othIsDefined = other !== undefined, + othIsNull = other === null, + othIsReflexive = other === other, + othIsSymbol = false; + + if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) || + (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) || + (valIsNull && othIsDefined && othIsReflexive) || + (!valIsDefined && othIsReflexive) || + !valIsReflexive) { + return 1; + } + if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) || + (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) || + (othIsNull && valIsDefined && valIsReflexive) || + (!othIsDefined && valIsReflexive) || + !othIsReflexive) { + return -1; + } + } + return 0; + } + + /** + * Copies properties of `source` to `object`. + * + * @private + * @param {Object} source The object to copy properties from. + * @param {Array} props The property identifiers to copy. + * @param {Object} [object={}] The object to copy properties to. + * @param {Function} [customizer] The function to customize copied values. + * @returns {Object} Returns `object`. + */ + function copyObject(source, props, object, customizer) { + var isNew = !object; + object || (object = {}); + + var index = -1, + length = props.length; + + while (++index < length) { + var key = props[index]; + + var newValue = customizer + ? customizer(object[key], source[key], key, object, source) + : undefined; + + if (newValue === undefined) { + newValue = source[key]; + } + if (isNew) { + baseAssignValue(object, key, newValue); + } else { + assignValue(object, key, newValue); + } + } + return object; + } + + /** + * Creates a function like `_.assign`. + * + * @private + * @param {Function} assigner The function to assign values. + * @returns {Function} Returns the new assigner function. + */ + function createAssigner(assigner) { + return baseRest(function(object, sources) { + var index = -1, + length = sources.length, + customizer = length > 1 ? sources[length - 1] : undefined; + + customizer = (assigner.length > 3 && typeof customizer == 'function') + ? (length--, customizer) + : undefined; + + object = Object(object); + while (++index < length) { + var source = sources[index]; + if (source) { + assigner(object, source, index, customizer); + } + } + return object; + }); + } + + /** + * Creates a `baseEach` or `baseEachRight` function. + * + * @private + * @param {Function} eachFunc The function to iterate over a collection. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ + function createBaseEach(eachFunc, fromRight) { + return function(collection, iteratee) { + if (collection == null) { + return collection; + } + if (!isArrayLike(collection)) { + return eachFunc(collection, iteratee); + } + var length = collection.length, + index = fromRight ? length : -1, + iterable = Object(collection); + + while ((fromRight ? index-- : ++index < length)) { + if (iteratee(iterable[index], index, iterable) === false) { + break; + } + } + return collection; + }; + } + + /** + * Creates a base function for methods like `_.forIn` and `_.forOwn`. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ + function createBaseFor(fromRight) { + return function(object, iteratee, keysFunc) { + var index = -1, + iterable = Object(object), + props = keysFunc(object), + length = props.length; + + while (length--) { + var key = props[fromRight ? length : ++index]; + if (iteratee(iterable[key], key, iterable) === false) { + break; + } + } + return object; + }; + } + + /** + * Creates a function that produces an instance of `Ctor` regardless of + * whether it was invoked as part of a `new` expression or by `call` or `apply`. + * + * @private + * @param {Function} Ctor The constructor to wrap. + * @returns {Function} Returns the new wrapped function. + */ + function createCtor(Ctor) { + return function() { + // Use a `switch` statement to work with class constructors. See + // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist + // for more details. + var args = arguments; + var thisBinding = baseCreate(Ctor.prototype), + result = Ctor.apply(thisBinding, args); + + // Mimic the constructor's `return` behavior. + // See https://es5.github.io/#x13.2.2 for more details. + return isObject(result) ? result : thisBinding; + }; + } + + /** + * Creates a `_.find` or `_.findLast` function. + * + * @private + * @param {Function} findIndexFunc The function to find the collection index. + * @returns {Function} Returns the new find function. + */ + function createFind(findIndexFunc) { + return function(collection, predicate, fromIndex) { + var iterable = Object(collection); + if (!isArrayLike(collection)) { + var iteratee = baseIteratee(predicate, 3); + collection = keys(collection); + predicate = function(key) { return iteratee(iterable[key], key, iterable); }; + } + var index = findIndexFunc(collection, predicate, fromIndex); + return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined; + }; + } + + /** + * Creates a function that wraps `func` to invoke it with the `this` binding + * of `thisArg` and `partials` prepended to the arguments it receives. + * + * @private + * @param {Function} func The function to wrap. + * @param {number} bitmask The bitmask flags. See `createWrap` for more details. + * @param {*} thisArg The `this` binding of `func`. + * @param {Array} partials The arguments to prepend to those provided to + * the new function. + * @returns {Function} Returns the new wrapped function. + */ + function createPartial(func, bitmask, thisArg, partials) { + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + var isBind = bitmask & WRAP_BIND_FLAG, + Ctor = createCtor(func); + + function wrapper() { + var argsIndex = -1, + argsLength = arguments.length, + leftIndex = -1, + leftLength = partials.length, + args = Array(leftLength + argsLength), + fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; + + while (++leftIndex < leftLength) { + args[leftIndex] = partials[leftIndex]; + } + while (argsLength--) { + args[leftIndex++] = arguments[++argsIndex]; + } + return fn.apply(isBind ? thisArg : this, args); + } + return wrapper; + } + + /** + * A specialized version of `baseIsEqualDeep` for arrays with support for + * partial deep comparisons. + * + * @private + * @param {Array} array The array to compare. + * @param {Array} other The other array to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `array` and `other` objects. + * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. + */ + function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, + arrLength = array.length, + othLength = other.length; + + if (arrLength != othLength && !(isPartial && othLength > arrLength)) { + return false; + } + // Check that cyclic values are equal. + var arrStacked = stack.get(array); + var othStacked = stack.get(other); + if (arrStacked && othStacked) { + return arrStacked == other && othStacked == array; + } + var index = -1, + result = true, + seen = (bitmask & COMPARE_UNORDERED_FLAG) ? [] : undefined; + + // Ignore non-index properties. + while (++index < arrLength) { + var arrValue = array[index], + othValue = other[index]; + + var compared; + if (compared !== undefined) { + if (compared) { + continue; + } + result = false; + break; + } + // Recursively compare arrays (susceptible to call stack limits). + if (seen) { + if (!baseSome(other, function(othValue, othIndex) { + if (!indexOf(seen, othIndex) && + (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + return seen.push(othIndex); + } + })) { + result = false; + break; + } + } else if (!( + arrValue === othValue || + equalFunc(arrValue, othValue, bitmask, customizer, stack) + )) { + result = false; + break; + } + } + return result; + } + + /** + * A specialized version of `baseIsEqualDeep` for comparing objects of + * the same `toStringTag`. + * + * **Note:** This function only supports comparing values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {string} tag The `toStringTag` of the objects to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { + switch (tag) { + + case boolTag: + case dateTag: + case numberTag: + // Coerce booleans to `1` or `0` and dates to milliseconds. + // Invalid dates are coerced to `NaN`. + return eq(+object, +other); + + case errorTag: + return object.name == other.name && object.message == other.message; + + case regexpTag: + case stringTag: + // Coerce regexes to strings and treat strings, primitives and objects, + // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring + // for more details. + return object == (other + ''); + + } + return false; + } + + /** + * A specialized version of `baseIsEqualDeep` for objects with support for + * partial deep comparisons. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, + objProps = keys(object), + objLength = objProps.length, + othProps = keys(other), + othLength = othProps.length; + + if (objLength != othLength && !isPartial) { + return false; + } + var index = objLength; + while (index--) { + var key = objProps[index]; + if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { + return false; + } + } + // Check that cyclic values are equal. + var objStacked = stack.get(object); + var othStacked = stack.get(other); + if (objStacked && othStacked) { + return objStacked == other && othStacked == object; + } + var result = true; + + var skipCtor = isPartial; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], + othValue = other[key]; + + var compared; + // Recursively compare objects (susceptible to call stack limits). + if (!(compared === undefined + ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) + : compared + )) { + result = false; + break; + } + skipCtor || (skipCtor = key == 'constructor'); + } + if (result && !skipCtor) { + var objCtor = object.constructor, + othCtor = other.constructor; + + // Non `Object` object instances with different constructors are not equal. + if (objCtor != othCtor && + ('constructor' in object && 'constructor' in other) && + !(typeof objCtor == 'function' && objCtor instanceof objCtor && + typeof othCtor == 'function' && othCtor instanceof othCtor)) { + result = false; + } + } + return result; + } + + /** + * A specialized version of `baseRest` which flattens the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @returns {Function} Returns the new function. + */ + function flatRest(func) { + return setToString(overRest(func, undefined, flatten), func + ''); + } + + /** + * Checks if `value` is a flattenable `arguments` object or array. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. + */ + function isFlattenable(value) { + return isArray(value) || isArguments(value); + } + + /** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ + function isIndex(value, length) { + var type = typeof value; + length = length == null ? MAX_SAFE_INTEGER : length; + + return !!length && + (type == 'number' || + (type != 'symbol' && reIsUint.test(value))) && + (value > -1 && value % 1 == 0 && value < length); + } + + /** + * Checks if the given arguments are from an iteratee call. + * + * @private + * @param {*} value The potential iteratee value argument. + * @param {*} index The potential iteratee index or key argument. + * @param {*} object The potential iteratee object argument. + * @returns {boolean} Returns `true` if the arguments are from an iteratee call, + * else `false`. + */ + function isIterateeCall(value, index, object) { + if (!isObject(object)) { + return false; + } + var type = typeof index; + if (type == 'number' + ? (isArrayLike(object) && isIndex(index, object.length)) + : (type == 'string' && index in object) + ) { + return eq(object[index], value); + } + return false; + } + + /** + * This function is like + * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * except that it includes inherited enumerable properties. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ + function nativeKeysIn(object) { + var result = []; + if (object != null) { + for (var key in Object(object)) { + result.push(key); + } + } + return result; + } + + /** + * Converts `value` to a string using `Object.prototype.toString`. + * + * @private + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + */ + function objectToString(value) { + return nativeObjectToString.call(value); + } + + /** + * A specialized version of `baseRest` which transforms the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @param {Function} transform The rest array transform. + * @returns {Function} Returns the new function. + */ + function overRest(func, start, transform) { + start = nativeMax(start === undefined ? (func.length - 1) : start, 0); + return function() { + var args = arguments, + index = -1, + length = nativeMax(args.length - start, 0), + array = Array(length); + + while (++index < length) { + array[index] = args[start + index]; + } + index = -1; + var otherArgs = Array(start + 1); + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = transform(array); + return func.apply(this, otherArgs); + }; + } + + /** + * Sets the `toString` method of `func` to return `string`. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ + var setToString = identity; + + /*------------------------------------------------------------------------*/ + + /** + * Creates an array with all falsey values removed. The values `false`, `null`, + * `0`, `""`, `undefined`, and `NaN` are falsey. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to compact. + * @returns {Array} Returns the new array of filtered values. + * @example + * + * _.compact([0, 1, false, 2, '', 3]); + * // => [1, 2, 3] + */ + function compact(array) { + return baseFilter(array, Boolean); + } + + /** + * Creates a new array concatenating `array` with any additional arrays + * and/or values. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to concatenate. + * @param {...*} [values] The values to concatenate. + * @returns {Array} Returns the new concatenated array. + * @example + * + * var array = [1]; + * var other = _.concat(array, 2, [3], [[4]]); + * + * console.log(other); + * // => [1, 2, 3, [4]] + * + * console.log(array); + * // => [1] + */ + function concat() { + var length = arguments.length; + if (!length) { + return []; + } + var args = Array(length - 1), + array = arguments[0], + index = length; + + while (index--) { + args[index - 1] = arguments[index]; + } + return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1)); + } + + /** + * This method is like `_.find` except that it returns the index of the first + * element `predicate` returns truthy for instead of the element itself. + * + * @static + * @memberOf _ + * @since 1.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=0] The index to search from. + * @returns {number} Returns the index of the found element, else `-1`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': false }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': true } + * ]; + * + * _.findIndex(users, function(o) { return o.user == 'barney'; }); + * // => 0 + * + * // The `_.matches` iteratee shorthand. + * _.findIndex(users, { 'user': 'fred', 'active': false }); + * // => 1 + * + * // The `_.matchesProperty` iteratee shorthand. + * _.findIndex(users, ['active', false]); + * // => 0 + * + * // The `_.property` iteratee shorthand. + * _.findIndex(users, 'active'); + * // => 2 + */ + function findIndex(array, predicate, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = fromIndex == null ? 0 : toInteger(fromIndex); + if (index < 0) { + index = nativeMax(length + index, 0); + } + return baseFindIndex(array, baseIteratee(predicate, 3), index); + } + + /** + * Flattens `array` a single level deep. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to flatten. + * @returns {Array} Returns the new flattened array. + * @example + * + * _.flatten([1, [2, [3, [4]], 5]]); + * // => [1, 2, [3, [4]], 5] + */ + function flatten(array) { + var length = array == null ? 0 : array.length; + return length ? baseFlatten(array, 1) : []; + } + + /** + * Recursively flattens `array`. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to flatten. + * @returns {Array} Returns the new flattened array. + * @example + * + * _.flattenDeep([1, [2, [3, [4]], 5]]); + * // => [1, 2, 3, 4, 5] + */ + function flattenDeep(array) { + var length = array == null ? 0 : array.length; + return length ? baseFlatten(array, INFINITY) : []; + } + + /** + * Gets the first element of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @alias first + * @category Array + * @param {Array} array The array to query. + * @returns {*} Returns the first element of `array`. + * @example + * + * _.head([1, 2, 3]); + * // => 1 + * + * _.head([]); + * // => undefined + */ + function head(array) { + return (array && array.length) ? array[0] : undefined; + } + + /** + * Gets the index at which the first occurrence of `value` is found in `array` + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. If `fromIndex` is negative, it's used as the + * offset from the end of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} [fromIndex=0] The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + * @example + * + * _.indexOf([1, 2, 1, 2], 2); + * // => 1 + * + * // Search from the `fromIndex`. + * _.indexOf([1, 2, 1, 2], 2, 2); + * // => 3 + */ + function indexOf(array, value, fromIndex) { + var length = array == null ? 0 : array.length; + if (typeof fromIndex == 'number') { + fromIndex = fromIndex < 0 ? nativeMax(length + fromIndex, 0) : fromIndex; + } else { + fromIndex = 0; + } + var index = (fromIndex || 0) - 1, + isReflexive = value === value; + + while (++index < length) { + var other = array[index]; + if ((isReflexive ? other === value : other !== other)) { + return index; + } + } + return -1; + } + + /** + * Gets the last element of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to query. + * @returns {*} Returns the last element of `array`. + * @example + * + * _.last([1, 2, 3]); + * // => 3 + */ + function last(array) { + var length = array == null ? 0 : array.length; + return length ? array[length - 1] : undefined; + } + + /** + * Creates a slice of `array` from `start` up to, but not including, `end`. + * + * **Note:** This method is used instead of + * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are + * returned. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to slice. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns the slice of `array`. + */ + function slice(array, start, end) { + var length = array == null ? 0 : array.length; + start = start == null ? 0 : +start; + end = end === undefined ? length : +end; + return length ? baseSlice(array, start, end) : []; + } + + /*------------------------------------------------------------------------*/ + + /** + * Creates a `lodash` wrapper instance that wraps `value` with explicit method + * chain sequences enabled. The result of such sequences must be unwrapped + * with `_#value`. + * + * @static + * @memberOf _ + * @since 1.3.0 + * @category Seq + * @param {*} value The value to wrap. + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36 }, + * { 'user': 'fred', 'age': 40 }, + * { 'user': 'pebbles', 'age': 1 } + * ]; + * + * var youngest = _ + * .chain(users) + * .sortBy('age') + * .map(function(o) { + * return o.user + ' is ' + o.age; + * }) + * .head() + * .value(); + * // => 'pebbles is 1' + */ + function chain(value) { + var result = lodash(value); + result.__chain__ = true; + return result; + } + + /** + * This method invokes `interceptor` and returns `value`. The interceptor + * is invoked with one argument; (value). The purpose of this method is to + * "tap into" a method chain sequence in order to modify intermediate results. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Seq + * @param {*} value The value to provide to `interceptor`. + * @param {Function} interceptor The function to invoke. + * @returns {*} Returns `value`. + * @example + * + * _([1, 2, 3]) + * .tap(function(array) { + * // Mutate input array. + * array.pop(); + * }) + * .reverse() + * .value(); + * // => [2, 1] + */ + function tap(value, interceptor) { + interceptor(value); + return value; + } + + /** + * This method is like `_.tap` except that it returns the result of `interceptor`. + * The purpose of this method is to "pass thru" values replacing intermediate + * results in a method chain sequence. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Seq + * @param {*} value The value to provide to `interceptor`. + * @param {Function} interceptor The function to invoke. + * @returns {*} Returns the result of `interceptor`. + * @example + * + * _(' abc ') + * .chain() + * .trim() + * .thru(function(value) { + * return [value]; + * }) + * .value(); + * // => ['abc'] + */ + function thru(value, interceptor) { + return interceptor(value); + } + + /** + * Creates a `lodash` wrapper instance with explicit method chain sequences enabled. + * + * @name chain + * @memberOf _ + * @since 0.1.0 + * @category Seq + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36 }, + * { 'user': 'fred', 'age': 40 } + * ]; + * + * // A sequence without explicit chaining. + * _(users).head(); + * // => { 'user': 'barney', 'age': 36 } + * + * // A sequence with explicit chaining. + * _(users) + * .chain() + * .head() + * .pick('user') + * .value(); + * // => { 'user': 'barney' } + */ + function wrapperChain() { + return chain(this); + } + + /** + * Executes the chain sequence to resolve the unwrapped value. + * + * @name value + * @memberOf _ + * @since 0.1.0 + * @alias toJSON, valueOf + * @category Seq + * @returns {*} Returns the resolved unwrapped value. + * @example + * + * _([1, 2, 3]).value(); + * // => [1, 2, 3] + */ + function wrapperValue() { + return baseWrapperValue(this.__wrapped__, this.__actions__); + } + + /*------------------------------------------------------------------------*/ + + /** + * Checks if `predicate` returns truthy for **all** elements of `collection`. + * Iteration is stopped once `predicate` returns falsey. The predicate is + * invoked with three arguments: (value, index|key, collection). + * + * **Note:** This method returns `true` for + * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because + * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of + * elements of empty collections. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {boolean} Returns `true` if all elements pass the predicate check, + * else `false`. + * @example + * + * _.every([true, 1, null, 'yes'], Boolean); + * // => false + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': false }, + * { 'user': 'fred', 'age': 40, 'active': false } + * ]; + * + * // The `_.matches` iteratee shorthand. + * _.every(users, { 'user': 'barney', 'active': false }); + * // => false + * + * // The `_.matchesProperty` iteratee shorthand. + * _.every(users, ['active', false]); + * // => true + * + * // The `_.property` iteratee shorthand. + * _.every(users, 'active'); + * // => false + */ + function every(collection, predicate, guard) { + predicate = guard ? undefined : predicate; + return baseEvery(collection, baseIteratee(predicate)); + } + + /** + * Iterates over elements of `collection`, returning an array of all elements + * `predicate` returns truthy for. The predicate is invoked with three + * arguments: (value, index|key, collection). + * + * **Note:** Unlike `_.remove`, this method returns a new array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + * @see _.reject + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': true }, + * { 'user': 'fred', 'age': 40, 'active': false } + * ]; + * + * _.filter(users, function(o) { return !o.active; }); + * // => objects for ['fred'] + * + * // The `_.matches` iteratee shorthand. + * _.filter(users, { 'age': 36, 'active': true }); + * // => objects for ['barney'] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.filter(users, ['active', false]); + * // => objects for ['fred'] + * + * // The `_.property` iteratee shorthand. + * _.filter(users, 'active'); + * // => objects for ['barney'] + * + * // Combining several predicates using `_.overEvery` or `_.overSome`. + * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]])); + * // => objects for ['fred', 'barney'] + */ + function filter(collection, predicate) { + return baseFilter(collection, baseIteratee(predicate)); + } + + /** + * Iterates over elements of `collection`, returning the first element + * `predicate` returns truthy for. The predicate is invoked with three + * arguments: (value, index|key, collection). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=0] The index to search from. + * @returns {*} Returns the matched element, else `undefined`. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': true }, + * { 'user': 'fred', 'age': 40, 'active': false }, + * { 'user': 'pebbles', 'age': 1, 'active': true } + * ]; + * + * _.find(users, function(o) { return o.age < 40; }); + * // => object for 'barney' + * + * // The `_.matches` iteratee shorthand. + * _.find(users, { 'age': 1, 'active': true }); + * // => object for 'pebbles' + * + * // The `_.matchesProperty` iteratee shorthand. + * _.find(users, ['active', false]); + * // => object for 'fred' + * + * // The `_.property` iteratee shorthand. + * _.find(users, 'active'); + * // => object for 'barney' + */ + var find = createFind(findIndex); + + /** + * Iterates over elements of `collection` and invokes `iteratee` for each element. + * The iteratee is invoked with three arguments: (value, index|key, collection). + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * **Note:** As with other "Collections" methods, objects with a "length" + * property are iterated like arrays. To avoid this behavior use `_.forIn` + * or `_.forOwn` for object iteration. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @alias each + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + * @see _.forEachRight + * @example + * + * _.forEach([1, 2], function(value) { + * console.log(value); + * }); + * // => Logs `1` then `2`. + * + * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) { + * console.log(key); + * }); + * // => Logs 'a' then 'b' (iteration order is not guaranteed). + */ + function forEach(collection, iteratee) { + return baseEach(collection, baseIteratee(iteratee)); + } + + /** + * Creates an array of values by running each element in `collection` thru + * `iteratee`. The iteratee is invoked with three arguments: + * (value, index|key, collection). + * + * Many lodash methods are guarded to work as iteratees for methods like + * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`. + * + * The guarded methods are: + * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`, + * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`, + * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`, + * `template`, `trim`, `trimEnd`, `trimStart`, and `words` + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + * @example + * + * function square(n) { + * return n * n; + * } + * + * _.map([4, 8], square); + * // => [16, 64] + * + * _.map({ 'a': 4, 'b': 8 }, square); + * // => [16, 64] (iteration order is not guaranteed) + * + * var users = [ + * { 'user': 'barney' }, + * { 'user': 'fred' } + * ]; + * + * // The `_.property` iteratee shorthand. + * _.map(users, 'user'); + * // => ['barney', 'fred'] + */ + function map(collection, iteratee) { + return baseMap(collection, baseIteratee(iteratee)); + } + + /** + * Reduces `collection` to a value which is the accumulated result of running + * each element in `collection` thru `iteratee`, where each successive + * invocation is supplied the return value of the previous. If `accumulator` + * is not given, the first element of `collection` is used as the initial + * value. The iteratee is invoked with four arguments: + * (accumulator, value, index|key, collection). + * + * Many lodash methods are guarded to work as iteratees for methods like + * `_.reduce`, `_.reduceRight`, and `_.transform`. + * + * The guarded methods are: + * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`, + * and `sortBy` + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @param {*} [accumulator] The initial value. + * @returns {*} Returns the accumulated value. + * @see _.reduceRight + * @example + * + * _.reduce([1, 2], function(sum, n) { + * return sum + n; + * }, 0); + * // => 3 + * + * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { + * (result[value] || (result[value] = [])).push(key); + * return result; + * }, {}); + * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed) + */ + function reduce(collection, iteratee, accumulator) { + return baseReduce(collection, baseIteratee(iteratee), accumulator, arguments.length < 3, baseEach); + } + + /** + * Gets the size of `collection` by returning its length for array-like + * values or the number of own enumerable string keyed properties for objects. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object|string} collection The collection to inspect. + * @returns {number} Returns the collection size. + * @example + * + * _.size([1, 2, 3]); + * // => 3 + * + * _.size({ 'a': 1, 'b': 2 }); + * // => 2 + * + * _.size('pebbles'); + * // => 7 + */ + function size(collection) { + if (collection == null) { + return 0; + } + collection = isArrayLike(collection) ? collection : nativeKeys(collection); + return collection.length; + } + + /** + * Checks if `predicate` returns truthy for **any** element of `collection`. + * Iteration is stopped once `predicate` returns truthy. The predicate is + * invoked with three arguments: (value, index|key, collection). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + * @example + * + * _.some([null, 0, 'yes', false], Boolean); + * // => true + * + * var users = [ + * { 'user': 'barney', 'active': true }, + * { 'user': 'fred', 'active': false } + * ]; + * + * // The `_.matches` iteratee shorthand. + * _.some(users, { 'user': 'barney', 'active': false }); + * // => false + * + * // The `_.matchesProperty` iteratee shorthand. + * _.some(users, ['active', false]); + * // => true + * + * // The `_.property` iteratee shorthand. + * _.some(users, 'active'); + * // => true + */ + function some(collection, predicate, guard) { + predicate = guard ? undefined : predicate; + return baseSome(collection, baseIteratee(predicate)); + } + + /** + * Creates an array of elements, sorted in ascending order by the results of + * running each element in a collection thru each iteratee. This method + * performs a stable sort, that is, it preserves the original sort order of + * equal elements. The iteratees are invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {...(Function|Function[])} [iteratees=[_.identity]] + * The iteratees to sort by. + * @returns {Array} Returns the new sorted array. + * @example + * + * var users = [ + * { 'user': 'fred', 'age': 48 }, + * { 'user': 'barney', 'age': 36 }, + * { 'user': 'fred', 'age': 30 }, + * { 'user': 'barney', 'age': 34 } + * ]; + * + * _.sortBy(users, [function(o) { return o.user; }]); + * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]] + * + * _.sortBy(users, ['user', 'age']); + * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]] + */ + function sortBy(collection, iteratee) { + var index = 0; + iteratee = baseIteratee(iteratee); + + return baseMap(baseMap(collection, function(value, key, collection) { + return { 'value': value, 'index': index++, 'criteria': iteratee(value, key, collection) }; + }).sort(function(object, other) { + return compareAscending(object.criteria, other.criteria) || (object.index - other.index); + }), baseProperty('value')); + } + + /*------------------------------------------------------------------------*/ + + /** + * Creates a function that invokes `func`, with the `this` binding and arguments + * of the created function, while it's called less than `n` times. Subsequent + * calls to the created function return the result of the last `func` invocation. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Function + * @param {number} n The number of calls at which `func` is no longer invoked. + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new restricted function. + * @example + * + * jQuery(element).on('click', _.before(5, addContactToList)); + * // => Allows adding up to 4 contacts to the list. + */ + function before(n, func) { + var result; + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + n = toInteger(n); + return function() { + if (--n > 0) { + result = func.apply(this, arguments); + } + if (n <= 1) { + func = undefined; + } + return result; + }; + } + + /** + * Creates a function that invokes `func` with the `this` binding of `thisArg` + * and `partials` prepended to the arguments it receives. + * + * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds, + * may be used as a placeholder for partially applied arguments. + * + * **Note:** Unlike native `Function#bind`, this method doesn't set the "length" + * property of bound functions. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to bind. + * @param {*} thisArg The `this` binding of `func`. + * @param {...*} [partials] The arguments to be partially applied. + * @returns {Function} Returns the new bound function. + * @example + * + * function greet(greeting, punctuation) { + * return greeting + ' ' + this.user + punctuation; + * } + * + * var object = { 'user': 'fred' }; + * + * var bound = _.bind(greet, object, 'hi'); + * bound('!'); + * // => 'hi fred!' + * + * // Bound with placeholders. + * var bound = _.bind(greet, object, _, '!'); + * bound('hi'); + * // => 'hi fred!' + */ + var bind = baseRest(function(func, thisArg, partials) { + return createPartial(func, WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG, thisArg, partials); + }); + + /** + * Defers invoking the `func` until the current call stack has cleared. Any + * additional arguments are provided to `func` when it's invoked. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to defer. + * @param {...*} [args] The arguments to invoke `func` with. + * @returns {number} Returns the timer id. + * @example + * + * _.defer(function(text) { + * console.log(text); + * }, 'deferred'); + * // => Logs 'deferred' after one millisecond. + */ + var defer = baseRest(function(func, args) { + return baseDelay(func, 1, args); + }); + + /** + * Invokes `func` after `wait` milliseconds. Any additional arguments are + * provided to `func` when it's invoked. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to delay. + * @param {number} wait The number of milliseconds to delay invocation. + * @param {...*} [args] The arguments to invoke `func` with. + * @returns {number} Returns the timer id. + * @example + * + * _.delay(function(text) { + * console.log(text); + * }, 1000, 'later'); + * // => Logs 'later' after one second. + */ + var delay = baseRest(function(func, wait, args) { + return baseDelay(func, toNumber(wait) || 0, args); + }); + + /** + * Creates a function that negates the result of the predicate `func`. The + * `func` predicate is invoked with the `this` binding and arguments of the + * created function. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Function + * @param {Function} predicate The predicate to negate. + * @returns {Function} Returns the new negated function. + * @example + * + * function isEven(n) { + * return n % 2 == 0; + * } + * + * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven)); + * // => [1, 3, 5] + */ + function negate(predicate) { + if (typeof predicate != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + return function() { + var args = arguments; + return !predicate.apply(this, args); + }; + } + + /** + * Creates a function that is restricted to invoking `func` once. Repeat calls + * to the function return the value of the first invocation. The `func` is + * invoked with the `this` binding and arguments of the created function. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new restricted function. + * @example + * + * var initialize = _.once(createApplication); + * initialize(); + * initialize(); + * // => `createApplication` is invoked once + */ + function once(func) { + return before(2, func); + } + + /*------------------------------------------------------------------------*/ + + /** + * Creates a shallow clone of `value`. + * + * **Note:** This method is loosely based on the + * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm) + * and supports cloning arrays, array buffers, booleans, date objects, maps, + * numbers, `Object` objects, regexes, sets, strings, symbols, and typed + * arrays. The own enumerable properties of `arguments` objects are cloned + * as plain objects. An empty object is returned for uncloneable values such + * as error objects, functions, DOM nodes, and WeakMaps. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to clone. + * @returns {*} Returns the cloned value. + * @see _.cloneDeep + * @example + * + * var objects = [{ 'a': 1 }, { 'b': 2 }]; + * + * var shallow = _.clone(objects); + * console.log(shallow[0] === objects[0]); + * // => true + */ + function clone(value) { + if (!isObject(value)) { + return value; + } + return isArray(value) ? copyArray(value) : copyObject(value, nativeKeys(value)); + } + + /** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */ + function eq(value, other) { + return value === other || (value !== value && other !== other); + } + + /** + * Checks if `value` is likely an `arguments` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ + var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && + !propertyIsEnumerable.call(value, 'callee'); + }; + + /** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ + var isArray = Array.isArray; + + /** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */ + function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); + } + + /** + * Checks if `value` is classified as a boolean primitive or object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a boolean, else `false`. + * @example + * + * _.isBoolean(false); + * // => true + * + * _.isBoolean(null); + * // => false + */ + function isBoolean(value) { + return value === true || value === false || + (isObjectLike(value) && baseGetTag(value) == boolTag); + } + + /** + * Checks if `value` is classified as a `Date` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a date object, else `false`. + * @example + * + * _.isDate(new Date); + * // => true + * + * _.isDate('Mon April 23 2012'); + * // => false + */ + var isDate = baseIsDate; + + /** + * Checks if `value` is an empty object, collection, map, or set. + * + * Objects are considered empty if they have no own enumerable string keyed + * properties. + * + * Array-like values such as `arguments` objects, arrays, buffers, strings, or + * jQuery-like collections are considered empty if they have a `length` of `0`. + * Similarly, maps and sets are considered empty if they have a `size` of `0`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is empty, else `false`. + * @example + * + * _.isEmpty(null); + * // => true + * + * _.isEmpty(true); + * // => true + * + * _.isEmpty(1); + * // => true + * + * _.isEmpty([1, 2, 3]); + * // => false + * + * _.isEmpty({ 'a': 1 }); + * // => false + */ + function isEmpty(value) { + if (isArrayLike(value) && + (isArray(value) || isString(value) || + isFunction(value.splice) || isArguments(value))) { + return !value.length; + } + return !nativeKeys(value).length; + } + + /** + * Performs a deep comparison between two values to determine if they are + * equivalent. + * + * **Note:** This method supports comparing arrays, array buffers, booleans, + * date objects, error objects, maps, numbers, `Object` objects, regexes, + * sets, strings, symbols, and typed arrays. `Object` objects are compared + * by their own, not inherited, enumerable properties. Functions and DOM + * nodes are compared by strict equality, i.e. `===`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.isEqual(object, other); + * // => true + * + * object === other; + * // => false + */ + function isEqual(value, other) { + return baseIsEqual(value, other); + } + + /** + * Checks if `value` is a finite primitive number. + * + * **Note:** This method is based on + * [`Number.isFinite`](https://mdn.io/Number/isFinite). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a finite number, else `false`. + * @example + * + * _.isFinite(3); + * // => true + * + * _.isFinite(Number.MIN_VALUE); + * // => true + * + * _.isFinite(Infinity); + * // => false + * + * _.isFinite('3'); + * // => false + */ + function isFinite(value) { + return typeof value == 'number' && nativeIsFinite(value); + } + + /** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ + function isFunction(value) { + if (!isObject(value)) { + return false; + } + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 9 which returns 'object' for typed arrays and other constructors. + var tag = baseGetTag(value); + return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; + } + + /** + * Checks if `value` is a valid array-like length. + * + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false + */ + function isLength(value) { + return typeof value == 'number' && + value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + } + + /** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ + function isObject(value) { + var type = typeof value; + return value != null && (type == 'object' || type == 'function'); + } + + /** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ + function isObjectLike(value) { + return value != null && typeof value == 'object'; + } + + /** + * Checks if `value` is `NaN`. + * + * **Note:** This method is based on + * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as + * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for + * `undefined` and other non-number values. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. + * @example + * + * _.isNaN(NaN); + * // => true + * + * _.isNaN(new Number(NaN)); + * // => true + * + * isNaN(undefined); + * // => true + * + * _.isNaN(undefined); + * // => false + */ + function isNaN(value) { + // An `NaN` primitive is the only value that is not equal to itself. + // Perform the `toStringTag` check first to avoid errors with some + // ActiveX objects in IE. + return isNumber(value) && value != +value; + } + + /** + * Checks if `value` is `null`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `null`, else `false`. + * @example + * + * _.isNull(null); + * // => true + * + * _.isNull(void 0); + * // => false + */ + function isNull(value) { + return value === null; + } + + /** + * Checks if `value` is classified as a `Number` primitive or object. + * + * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are + * classified as numbers, use the `_.isFinite` method. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a number, else `false`. + * @example + * + * _.isNumber(3); + * // => true + * + * _.isNumber(Number.MIN_VALUE); + * // => true + * + * _.isNumber(Infinity); + * // => true + * + * _.isNumber('3'); + * // => false + */ + function isNumber(value) { + return typeof value == 'number' || + (isObjectLike(value) && baseGetTag(value) == numberTag); + } + + /** + * Checks if `value` is classified as a `RegExp` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. + * @example + * + * _.isRegExp(/abc/); + * // => true + * + * _.isRegExp('/abc/'); + * // => false + */ + var isRegExp = baseIsRegExp; + + /** + * Checks if `value` is classified as a `String` primitive or object. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a string, else `false`. + * @example + * + * _.isString('abc'); + * // => true + * + * _.isString(1); + * // => false + */ + function isString(value) { + return typeof value == 'string' || + (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag); + } + + /** + * Checks if `value` is `undefined`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`. + * @example + * + * _.isUndefined(void 0); + * // => true + * + * _.isUndefined(null); + * // => false + */ + function isUndefined(value) { + return value === undefined; + } + + /** + * Converts `value` to an array. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to convert. + * @returns {Array} Returns the converted array. + * @example + * + * _.toArray({ 'a': 1, 'b': 2 }); + * // => [1, 2] + * + * _.toArray('abc'); + * // => ['a', 'b', 'c'] + * + * _.toArray(1); + * // => [] + * + * _.toArray(null); + * // => [] + */ + function toArray(value) { + if (!isArrayLike(value)) { + return values(value); + } + return value.length ? copyArray(value) : []; + } + + /** + * Converts `value` to an integer. + * + * **Note:** This method is loosely based on + * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted integer. + * @example + * + * _.toInteger(3.2); + * // => 3 + * + * _.toInteger(Number.MIN_VALUE); + * // => 0 + * + * _.toInteger(Infinity); + * // => 1.7976931348623157e+308 + * + * _.toInteger('3.2'); + * // => 3 + */ + var toInteger = Number; + + /** + * Converts `value` to a number. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to process. + * @returns {number} Returns the number. + * @example + * + * _.toNumber(3.2); + * // => 3.2 + * + * _.toNumber(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toNumber(Infinity); + * // => Infinity + * + * _.toNumber('3.2'); + * // => 3.2 + */ + var toNumber = Number; + + /** + * Converts `value` to a string. An empty string is returned for `null` + * and `undefined` values. The sign of `-0` is preserved. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + * @example + * + * _.toString(null); + * // => '' + * + * _.toString(-0); + * // => '-0' + * + * _.toString([1, 2, 3]); + * // => '1,2,3' + */ + function toString(value) { + if (typeof value == 'string') { + return value; + } + return value == null ? '' : (value + ''); + } + + /*------------------------------------------------------------------------*/ + + /** + * Assigns own enumerable string keyed properties of source objects to the + * destination object. Source objects are applied from left to right. + * Subsequent sources overwrite property assignments of previous sources. + * + * **Note:** This method mutates `object` and is loosely based on + * [`Object.assign`](https://mdn.io/Object/assign). + * + * @static + * @memberOf _ + * @since 0.10.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @see _.assignIn + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * function Bar() { + * this.c = 3; + * } + * + * Foo.prototype.b = 2; + * Bar.prototype.d = 4; + * + * _.assign({ 'a': 0 }, new Foo, new Bar); + * // => { 'a': 1, 'c': 3 } + */ + var assign = createAssigner(function(object, source) { + copyObject(source, nativeKeys(source), object); + }); + + /** + * This method is like `_.assign` except that it iterates over own and + * inherited source properties. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @alias extend + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @see _.assign + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * function Bar() { + * this.c = 3; + * } + * + * Foo.prototype.b = 2; + * Bar.prototype.d = 4; + * + * _.assignIn({ 'a': 0 }, new Foo, new Bar); + * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 } + */ + var assignIn = createAssigner(function(object, source) { + copyObject(source, nativeKeysIn(source), object); + }); + + /** + * Creates an object that inherits from the `prototype` object. If a + * `properties` object is given, its own enumerable string keyed properties + * are assigned to the created object. + * + * @static + * @memberOf _ + * @since 2.3.0 + * @category Object + * @param {Object} prototype The object to inherit from. + * @param {Object} [properties] The properties to assign to the object. + * @returns {Object} Returns the new object. + * @example + * + * function Shape() { + * this.x = 0; + * this.y = 0; + * } + * + * function Circle() { + * Shape.call(this); + * } + * + * Circle.prototype = _.create(Shape.prototype, { + * 'constructor': Circle + * }); + * + * var circle = new Circle; + * circle instanceof Circle; + * // => true + * + * circle instanceof Shape; + * // => true + */ + function create(prototype, properties) { + var result = baseCreate(prototype); + return properties == null ? result : assign(result, properties); + } + + /** + * Assigns own and inherited enumerable string keyed properties of source + * objects to the destination object for all destination properties that + * resolve to `undefined`. Source objects are applied from left to right. + * Once a property is set, additional values of the same property are ignored. + * + * **Note:** This method mutates `object`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @see _.defaultsDeep + * @example + * + * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); + * // => { 'a': 1, 'b': 2 } + */ + var defaults = baseRest(function(object, sources) { + object = Object(object); + + var index = -1; + var length = sources.length; + var guard = length > 2 ? sources[2] : undefined; + + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + length = 1; + } + + while (++index < length) { + var source = sources[index]; + var props = keysIn(source); + var propsIndex = -1; + var propsLength = props.length; + + while (++propsIndex < propsLength) { + var key = props[propsIndex]; + var value = object[key]; + + if (value === undefined || + (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) { + object[key] = source[key]; + } + } + } + + return object; + }); + + /** + * Checks if `path` is a direct property of `object`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + * @example + * + * var object = { 'a': { 'b': 2 } }; + * var other = _.create({ 'a': _.create({ 'b': 2 }) }); + * + * _.has(object, 'a'); + * // => true + * + * _.has(object, 'a.b'); + * // => true + * + * _.has(object, ['a', 'b']); + * // => true + * + * _.has(other, 'a'); + * // => false + */ + function has(object, path) { + return object != null && hasOwnProperty.call(object, path); + } + + /** + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * for more details. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] + */ + var keys = nativeKeys; + + /** + * Creates an array of the own and inherited enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keysIn(new Foo); + * // => ['a', 'b', 'c'] (iteration order is not guaranteed) + */ + var keysIn = nativeKeysIn; + + /** + * Creates an object composed of the picked `object` properties. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The source object. + * @param {...(string|string[])} [paths] The property paths to pick. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.pick(object, ['a', 'c']); + * // => { 'a': 1, 'c': 3 } + */ + var pick = flatRest(function(object, paths) { + return object == null ? {} : basePick(object, paths); + }); + + /** + * This method is like `_.get` except that if the resolved value is a + * function it's invoked with the `this` binding of its parent object and + * its result is returned. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to resolve. + * @param {*} [defaultValue] The value returned for `undefined` resolved values. + * @returns {*} Returns the resolved value. + * @example + * + * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] }; + * + * _.result(object, 'a[0].b.c1'); + * // => 3 + * + * _.result(object, 'a[0].b.c2'); + * // => 4 + * + * _.result(object, 'a[0].b.c3', 'default'); + * // => 'default' + * + * _.result(object, 'a[0].b.c3', _.constant('default')); + * // => 'default' + */ + function result(object, path, defaultValue) { + var value = object == null ? undefined : object[path]; + if (value === undefined) { + value = defaultValue; + } + return isFunction(value) ? value.call(object) : value; + } + + /** + * Creates an array of the own enumerable string keyed property values of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property values. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.values(new Foo); + * // => [1, 2] (iteration order is not guaranteed) + * + * _.values('hi'); + * // => ['h', 'i'] + */ + function values(object) { + return object == null ? [] : baseValues(object, keys(object)); + } + + /*------------------------------------------------------------------------*/ + + /** + * Converts the characters "&", "<", ">", '"', and "'" in `string` to their + * corresponding HTML entities. + * + * **Note:** No other characters are escaped. To escape additional + * characters use a third-party library like [_he_](https://mths.be/he). + * + * Though the ">" character is escaped for symmetry, characters like + * ">" and "/" don't need escaping in HTML and have no special meaning + * unless they're part of a tag or unquoted attribute value. See + * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands) + * (under "semi-related fun fact") for more details. + * + * When working with HTML you should always + * [quote attribute values](http://wonko.com/post/html-escaping) to reduce + * XSS vectors. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category String + * @param {string} [string=''] The string to escape. + * @returns {string} Returns the escaped string. + * @example + * + * _.escape('fred, barney, & pebbles'); + * // => 'fred, barney, & pebbles' + */ + function escape(string) { + string = toString(string); + return (string && reHasUnescapedHtml.test(string)) + ? string.replace(reUnescapedHtml, escapeHtmlChar) + : string; + } + + /*------------------------------------------------------------------------*/ + + /** + * This method returns the first argument it receives. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Util + * @param {*} value Any value. + * @returns {*} Returns `value`. + * @example + * + * var object = { 'a': 1 }; + * + * console.log(_.identity(object) === object); + * // => true + */ + function identity(value) { + return value; + } + + /** + * Creates a function that invokes `func` with the arguments of the created + * function. If `func` is a property name, the created function returns the + * property value for a given element. If `func` is an array or object, the + * created function returns `true` for elements that contain the equivalent + * source properties, otherwise it returns `false`. + * + * @static + * @since 4.0.0 + * @memberOf _ + * @category Util + * @param {*} [func=_.identity] The value to convert to a callback. + * @returns {Function} Returns the callback. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': true }, + * { 'user': 'fred', 'age': 40, 'active': false } + * ]; + * + * // The `_.matches` iteratee shorthand. + * _.filter(users, _.iteratee({ 'user': 'barney', 'active': true })); + * // => [{ 'user': 'barney', 'age': 36, 'active': true }] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.filter(users, _.iteratee(['user', 'fred'])); + * // => [{ 'user': 'fred', 'age': 40 }] + * + * // The `_.property` iteratee shorthand. + * _.map(users, _.iteratee('user')); + * // => ['barney', 'fred'] + * + * // Create custom iteratee shorthands. + * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) { + * return !_.isRegExp(func) ? iteratee(func) : function(string) { + * return func.test(string); + * }; + * }); + * + * _.filter(['abc', 'def'], /ef/); + * // => ['def'] + */ + var iteratee = baseIteratee; + + /** + * Creates a function that performs a partial deep comparison between a given + * object and `source`, returning `true` if the given object has equivalent + * property values, else `false`. + * + * **Note:** The created function is equivalent to `_.isMatch` with `source` + * partially applied. + * + * Partial comparisons will match empty array and empty object `source` + * values against any array or object value, respectively. See `_.isEqual` + * for a list of supported value comparisons. + * + * **Note:** Multiple values can be checked by combining several matchers + * using `_.overSome` + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Util + * @param {Object} source The object of property values to match. + * @returns {Function} Returns the new spec function. + * @example + * + * var objects = [ + * { 'a': 1, 'b': 2, 'c': 3 }, + * { 'a': 4, 'b': 5, 'c': 6 } + * ]; + * + * _.filter(objects, _.matches({ 'a': 4, 'c': 6 })); + * // => [{ 'a': 4, 'b': 5, 'c': 6 }] + * + * // Checking for several possible values + * _.filter(objects, _.overSome([_.matches({ 'a': 1 }), _.matches({ 'a': 4 })])); + * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }] + */ + function matches(source) { + return baseMatches(assign({}, source)); + } + + /** + * Adds all own enumerable string keyed function properties of a source + * object to the destination object. If `object` is a function, then methods + * are added to its prototype as well. + * + * **Note:** Use `_.runInContext` to create a pristine `lodash` function to + * avoid conflicts caused by modifying the original. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Util + * @param {Function|Object} [object=lodash] The destination object. + * @param {Object} source The object of functions to add. + * @param {Object} [options={}] The options object. + * @param {boolean} [options.chain=true] Specify whether mixins are chainable. + * @returns {Function|Object} Returns `object`. + * @example + * + * function vowels(string) { + * return _.filter(string, function(v) { + * return /[aeiou]/i.test(v); + * }); + * } + * + * _.mixin({ 'vowels': vowels }); + * _.vowels('fred'); + * // => ['e'] + * + * _('fred').vowels().value(); + * // => ['e'] + * + * _.mixin({ 'vowels': vowels }, { 'chain': false }); + * _('fred').vowels(); + * // => ['e'] + */ + function mixin(object, source, options) { + var props = keys(source), + methodNames = baseFunctions(source, props); + + if (options == null && + !(isObject(source) && (methodNames.length || !props.length))) { + options = source; + source = object; + object = this; + methodNames = baseFunctions(source, keys(source)); + } + var chain = !(isObject(options) && 'chain' in options) || !!options.chain, + isFunc = isFunction(object); + + baseEach(methodNames, function(methodName) { + var func = source[methodName]; + object[methodName] = func; + if (isFunc) { + object.prototype[methodName] = function() { + var chainAll = this.__chain__; + if (chain || chainAll) { + var result = object(this.__wrapped__), + actions = result.__actions__ = copyArray(this.__actions__); + + actions.push({ 'func': func, 'args': arguments, 'thisArg': object }); + result.__chain__ = chainAll; + return result; + } + return func.apply(object, arrayPush([this.value()], arguments)); + }; + } + }); + + return object; + } + + /** + * Reverts the `_` variable to its previous value and returns a reference to + * the `lodash` function. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Util + * @returns {Function} Returns the `lodash` function. + * @example + * + * var lodash = _.noConflict(); + */ + function noConflict() { + if (root._ === this) { + root._ = oldDash; + } + return this; + } + + /** + * This method returns `undefined`. + * + * @static + * @memberOf _ + * @since 2.3.0 + * @category Util + * @example + * + * _.times(2, _.noop); + * // => [undefined, undefined] + */ + function noop() { + // No operation performed. + } + + /** + * Generates a unique ID. If `prefix` is given, the ID is appended to it. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Util + * @param {string} [prefix=''] The value to prefix the ID with. + * @returns {string} Returns the unique ID. + * @example + * + * _.uniqueId('contact_'); + * // => 'contact_104' + * + * _.uniqueId(); + * // => '105' + */ + function uniqueId(prefix) { + var id = ++idCounter; + return toString(prefix) + id; + } + + /*------------------------------------------------------------------------*/ + + /** + * Computes the maximum value of `array`. If `array` is empty or falsey, + * `undefined` is returned. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Math + * @param {Array} array The array to iterate over. + * @returns {*} Returns the maximum value. + * @example + * + * _.max([4, 2, 8, 6]); + * // => 8 + * + * _.max([]); + * // => undefined + */ + function max(array) { + return (array && array.length) + ? baseExtremum(array, identity, baseGt) + : undefined; + } + + /** + * Computes the minimum value of `array`. If `array` is empty or falsey, + * `undefined` is returned. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Math + * @param {Array} array The array to iterate over. + * @returns {*} Returns the minimum value. + * @example + * + * _.min([4, 2, 8, 6]); + * // => 2 + * + * _.min([]); + * // => undefined + */ + function min(array) { + return (array && array.length) + ? baseExtremum(array, identity, baseLt) + : undefined; + } + + /*------------------------------------------------------------------------*/ + + // Add methods that return wrapped values in chain sequences. + lodash.assignIn = assignIn; + lodash.before = before; + lodash.bind = bind; + lodash.chain = chain; + lodash.compact = compact; + lodash.concat = concat; + lodash.create = create; + lodash.defaults = defaults; + lodash.defer = defer; + lodash.delay = delay; + lodash.filter = filter; + lodash.flatten = flatten; + lodash.flattenDeep = flattenDeep; + lodash.iteratee = iteratee; + lodash.keys = keys; + lodash.map = map; + lodash.matches = matches; + lodash.mixin = mixin; + lodash.negate = negate; + lodash.once = once; + lodash.pick = pick; + lodash.slice = slice; + lodash.sortBy = sortBy; + lodash.tap = tap; + lodash.thru = thru; + lodash.toArray = toArray; + lodash.values = values; + + // Add aliases. + lodash.extend = assignIn; + + // Add methods to `lodash.prototype`. + mixin(lodash, lodash); + + /*------------------------------------------------------------------------*/ + + // Add methods that return unwrapped values in chain sequences. + lodash.clone = clone; + lodash.escape = escape; + lodash.every = every; + lodash.find = find; + lodash.forEach = forEach; + lodash.has = has; + lodash.head = head; + lodash.identity = identity; + lodash.indexOf = indexOf; + lodash.isArguments = isArguments; + lodash.isArray = isArray; + lodash.isBoolean = isBoolean; + lodash.isDate = isDate; + lodash.isEmpty = isEmpty; + lodash.isEqual = isEqual; + lodash.isFinite = isFinite; + lodash.isFunction = isFunction; + lodash.isNaN = isNaN; + lodash.isNull = isNull; + lodash.isNumber = isNumber; + lodash.isObject = isObject; + lodash.isRegExp = isRegExp; + lodash.isString = isString; + lodash.isUndefined = isUndefined; + lodash.last = last; + lodash.max = max; + lodash.min = min; + lodash.noConflict = noConflict; + lodash.noop = noop; + lodash.reduce = reduce; + lodash.result = result; + lodash.size = size; + lodash.some = some; + lodash.uniqueId = uniqueId; + + // Add aliases. + lodash.each = forEach; + lodash.first = head; + + mixin(lodash, (function() { + var source = {}; + baseForOwn(lodash, function(func, methodName) { + if (!hasOwnProperty.call(lodash.prototype, methodName)) { + source[methodName] = func; + } + }); + return source; + }()), { 'chain': false }); + + /*------------------------------------------------------------------------*/ + + /** + * The semantic version number. + * + * @static + * @memberOf _ + * @type {string} + */ + lodash.VERSION = VERSION; + + // Add `Array` methods to `lodash.prototype`. + baseEach(['pop', 'join', 'replace', 'reverse', 'split', 'push', 'shift', 'sort', 'splice', 'unshift'], function(methodName) { + var func = (/^(?:replace|split)$/.test(methodName) ? String.prototype : arrayProto)[methodName], + chainName = /^(?:push|sort|unshift)$/.test(methodName) ? 'tap' : 'thru', + retUnwrapped = /^(?:pop|join|replace|shift)$/.test(methodName); + + lodash.prototype[methodName] = function() { + var args = arguments; + if (retUnwrapped && !this.__chain__) { + var value = this.value(); + return func.apply(isArray(value) ? value : [], args); + } + return this[chainName](function(value) { + return func.apply(isArray(value) ? value : [], args); + }); + }; + }); + + // Add chain sequence methods to the `lodash` wrapper. + lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue; + + /*--------------------------------------------------------------------------*/ + + // Some AMD build optimizers, like r.js, check for condition patterns like: + if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) { + // Expose Lodash on the global object to prevent errors when Lodash is + // loaded by a script tag in the presence of an AMD loader. + // See http://requirejs.org/docs/errors.html#mismatch for more details. + // Use `_.noConflict` to remove Lodash from the global object. + root._ = lodash; + + // Define as an anonymous module so, through path mapping, it can be + // referenced as the "underscore" module. + define(function() { + return lodash; + }); + } + // Check for `exports` after `define` in case a build optimizer adds it. + else if (freeModule) { + // Export for Node.js. + (freeModule.exports = lodash)._ = lodash; + // Export for CommonJS support. + freeExports._ = lodash; + } + else { + // Export to the global object. + root._ = lodash; + } +}.call(this)); diff --git a/node_modules/lodash/core.min.js b/node_modules/lodash/core.min.js new file mode 100644 index 0000000..f409525 --- /dev/null +++ b/node_modules/lodash/core.min.js @@ -0,0 +1,30 @@ +/** + * @license + * Lodash (Custom Build) lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE + * Build: `lodash core -o ./dist/lodash.core.js` + */ +;(function(){function n(n,t){return n.push.apply(n,t),n}function t(n,t,r,e){for(var u=n.length,o=r+(e?1:-1);e?o--:++o0&&e(f)?r>1?y(f,r-1,e,u,o):n(o,f):u||(o[o.length]=f)}return o}function g(n,t){return n&&Vt(n,t,cr)}function _(n,t){return v(t,function(t){return Tn(n[t])})}function b(n){return W(n)}function j(n,t){return n>t}function d(n){return In(n)&&b(n)==ht}function m(n,t,r,e,u){return n===t||(null==n||null==t||!In(n)&&!In(t)?n!==n&&t!==t:O(n,t,r,e,m,u))}function O(n,t,r,e,u,o){ +var i=Zt(n),c=Zt(t),f=i?lt:b(n),a=c?lt:b(t);f=f==at?bt:f,a=a==at?bt:a;var l=f==bt,p=a==bt,s=f==a;o||(o=[]);var h=Lt(o,function(t){return t[0]==n}),v=Lt(o,function(n){return n[0]==t});if(h&&v)return h[1]==t;if(o.push([n,t]),o.push([t,n]),s&&!l){var y=i?J(n,t,r,e,u,o):M(n,t,f,r,e,u,o);return o.pop(),y}if(!(r&et)){var g=l&&Rt.call(n,"__wrapped__"),_=p&&Rt.call(t,"__wrapped__");if(g||_){var j=g?n.value():n,d=_?t.value():t,y=u(j,d,r,e,o);return o.pop(),y}}if(!s)return false;var y=U(n,t,r,e,u,o);return o.pop(), +y}function x(n){return In(n)&&b(n)==dt}function w(n){return typeof n=="function"?n:null==n?Hn:(typeof n=="object"?N:r)(n)}function A(n,t){return nu?0:u+t),r=r>u?u:r,r<0&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0;for(var o=Array(u);++et||o&&i&&f&&!c&&!a||e&&i&&f||!r&&f||!u)return 1; +if(!e&&!o&&!a&&n1?r[u-1]:nt;for(o=n.length>3&&typeof o=="function"?(u--,o):nt,t=Object(t);++e-1?u[o?t[i]:i]:nt}}function G(n,t,r,e){function u(){for(var t=-1,c=arguments.length,f=-1,a=e.length,l=Array(a+c),p=this&&this!==kt&&this instanceof u?i:n;++fc))return false;var a=o.get(n),l=o.get(t);if(a&&l)return a==t&&l==n;for(var p=-1,s=true,h=r&ut?[]:nt;++p-1&&n%1==0&&n0&&(r=t.apply(this,arguments)),n<=1&&(t=nt),r}}function mn(n){if(typeof n!="function")throw new TypeError(rt);return function(){return!n.apply(this,arguments)}; +}function On(n){return dn(2,n)}function xn(n){return Bn(n)?Zt(n)?S(n):$(n,Gt(n)):n}function wn(n,t){return n===t||n!==n&&t!==t}function An(n){return null!=n&&Sn(n.length)&&!Tn(n)}function En(n){return n===true||n===false||In(n)&&b(n)==st}function Nn(n){return An(n)&&(Zt(n)||Dn(n)||Tn(n.splice)||Yt(n))?!n.length:!Gt(n).length}function kn(n,t){return m(n,t)}function Fn(n){return typeof n=="number"&&Ct(n)}function Tn(n){if(!Bn(n))return false;var t=b(n);return t==yt||t==gt||t==pt||t==jt}function Sn(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=ft; +}function Bn(n){var t=typeof n;return null!=n&&("object"==t||"function"==t)}function In(n){return null!=n&&typeof n=="object"}function Rn(n){return qn(n)&&n!=+n}function $n(n){return null===n}function qn(n){return typeof n=="number"||In(n)&&b(n)==_t}function Dn(n){return typeof n=="string"||!Zt(n)&&In(n)&&b(n)==mt}function Pn(n){return n===nt}function zn(n){return An(n)?n.length?S(n):[]:Un(n)}function Cn(n){return typeof n=="string"?n:null==n?"":n+""}function Gn(n,t){var r=Mt(n);return null==t?r:ur(r,t); +}function Jn(n,t){return null!=n&&Rt.call(n,t)}function Mn(n,t,r){var e=null==n?nt:n[t];return e===nt&&(e=r),Tn(e)?e.call(n):e}function Un(n){return null==n?[]:o(n,cr(n))}function Vn(n){return n=Cn(n),n&&xt.test(n)?n.replace(Ot,St):n}function Hn(n){return n}function Kn(n){return N(ur({},n))}function Ln(t,r,e){var u=cr(r),o=_(r,u);null!=e||Bn(r)&&(o.length||!u.length)||(e=r,r=t,t=this,o=_(r,cr(r)));var i=!(Bn(e)&&"chain"in e&&!e.chain),c=Tn(t);return Ut(o,function(e){var u=r[e];t[e]=u,c&&(t.prototype[e]=function(){ +var r=this.__chain__;if(i||r){var e=t(this.__wrapped__);return(e.__actions__=S(this.__actions__)).push({func:u,args:arguments,thisArg:t}),e.__chain__=r,e}return u.apply(t,n([this.value()],arguments))})}),t}function Qn(){return kt._===this&&(kt._=Dt),this}function Wn(){}function Xn(n){var t=++$t;return Cn(n)+t}function Yn(n){return n&&n.length?h(n,Hn,j):nt}function Zn(n){return n&&n.length?h(n,Hn,A):nt}var nt,tt="4.17.20",rt="Expected a function",et=1,ut=2,ot=1,it=32,ct=1/0,ft=9007199254740991,at="[object Arguments]",lt="[object Array]",pt="[object AsyncFunction]",st="[object Boolean]",ht="[object Date]",vt="[object Error]",yt="[object Function]",gt="[object GeneratorFunction]",_t="[object Number]",bt="[object Object]",jt="[object Proxy]",dt="[object RegExp]",mt="[object String]",Ot=/[&<>"']/g,xt=RegExp(Ot.source),wt=/^(?:0|[1-9]\d*)$/,At={ +"&":"&","<":"<",">":">",'"':""","'":"'"},Et=typeof global=="object"&&global&&global.Object===Object&&global,Nt=typeof self=="object"&&self&&self.Object===Object&&self,kt=Et||Nt||Function("return this")(),Ft=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Tt=Ft&&typeof module=="object"&&module&&!module.nodeType&&module,St=e(At),Bt=Array.prototype,It=Object.prototype,Rt=It.hasOwnProperty,$t=0,qt=It.toString,Dt=kt._,Pt=Object.create,zt=It.propertyIsEnumerable,Ct=kt.isFinite,Gt=i(Object.keys,Object),Jt=Math.max,Mt=function(){ +function n(){}return function(t){if(!Bn(t))return{};if(Pt)return Pt(t);n.prototype=t;var r=new n;return n.prototype=nt,r}}();f.prototype=Mt(c.prototype),f.prototype.constructor=f;var Ut=D(g),Vt=P(),Ht=Wn,Kt=Hn,Lt=C(nn),Qt=F(function(n,t,r){return G(n,ot|it,t,r)}),Wt=F(function(n,t){return p(n,1,t)}),Xt=F(function(n,t,r){return p(n,er(t)||0,r)}),Yt=Ht(function(){return arguments}())?Ht:function(n){return In(n)&&Rt.call(n,"callee")&&!zt.call(n,"callee")},Zt=Array.isArray,nr=d,tr=x,rr=Number,er=Number,ur=q(function(n,t){ +$(t,Gt(t),n)}),or=q(function(n,t){$(t,Q(t),n)}),ir=F(function(n,t){n=Object(n);var r=-1,e=t.length,u=e>2?t[2]:nt;for(u&&L(t[0],t[1],u)&&(e=1);++r { '4': 1, '6': 2 } + * + * // The `_.property` iteratee shorthand. + * _.countBy(['one', 'two', 'three'], 'length'); + * // => { '3': 2, '5': 1 } + */ +var countBy = createAggregator(function(result, value, key) { + if (hasOwnProperty.call(result, key)) { + ++result[key]; + } else { + baseAssignValue(result, key, 1); + } +}); + +module.exports = countBy; diff --git a/node_modules/lodash/create.js b/node_modules/lodash/create.js new file mode 100644 index 0000000..919edb8 --- /dev/null +++ b/node_modules/lodash/create.js @@ -0,0 +1,43 @@ +var baseAssign = require('./_baseAssign'), + baseCreate = require('./_baseCreate'); + +/** + * Creates an object that inherits from the `prototype` object. If a + * `properties` object is given, its own enumerable string keyed properties + * are assigned to the created object. + * + * @static + * @memberOf _ + * @since 2.3.0 + * @category Object + * @param {Object} prototype The object to inherit from. + * @param {Object} [properties] The properties to assign to the object. + * @returns {Object} Returns the new object. + * @example + * + * function Shape() { + * this.x = 0; + * this.y = 0; + * } + * + * function Circle() { + * Shape.call(this); + * } + * + * Circle.prototype = _.create(Shape.prototype, { + * 'constructor': Circle + * }); + * + * var circle = new Circle; + * circle instanceof Circle; + * // => true + * + * circle instanceof Shape; + * // => true + */ +function create(prototype, properties) { + var result = baseCreate(prototype); + return properties == null ? result : baseAssign(result, properties); +} + +module.exports = create; diff --git a/node_modules/lodash/curry.js b/node_modules/lodash/curry.js new file mode 100644 index 0000000..918db1a --- /dev/null +++ b/node_modules/lodash/curry.js @@ -0,0 +1,57 @@ +var createWrap = require('./_createWrap'); + +/** Used to compose bitmasks for function metadata. */ +var WRAP_CURRY_FLAG = 8; + +/** + * Creates a function that accepts arguments of `func` and either invokes + * `func` returning its result, if at least `arity` number of arguments have + * been provided, or returns a function that accepts the remaining `func` + * arguments, and so on. The arity of `func` may be specified if `func.length` + * is not sufficient. + * + * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds, + * may be used as a placeholder for provided arguments. + * + * **Note:** This method doesn't set the "length" property of curried functions. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Function + * @param {Function} func The function to curry. + * @param {number} [arity=func.length] The arity of `func`. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Function} Returns the new curried function. + * @example + * + * var abc = function(a, b, c) { + * return [a, b, c]; + * }; + * + * var curried = _.curry(abc); + * + * curried(1)(2)(3); + * // => [1, 2, 3] + * + * curried(1, 2)(3); + * // => [1, 2, 3] + * + * curried(1, 2, 3); + * // => [1, 2, 3] + * + * // Curried with placeholders. + * curried(1)(_, 3)(2); + * // => [1, 2, 3] + */ +function curry(func, arity, guard) { + arity = guard ? undefined : arity; + var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity); + result.placeholder = curry.placeholder; + return result; +} + +// Assign default placeholders. +curry.placeholder = {}; + +module.exports = curry; diff --git a/node_modules/lodash/curryRight.js b/node_modules/lodash/curryRight.js new file mode 100644 index 0000000..c85b6f3 --- /dev/null +++ b/node_modules/lodash/curryRight.js @@ -0,0 +1,54 @@ +var createWrap = require('./_createWrap'); + +/** Used to compose bitmasks for function metadata. */ +var WRAP_CURRY_RIGHT_FLAG = 16; + +/** + * This method is like `_.curry` except that arguments are applied to `func` + * in the manner of `_.partialRight` instead of `_.partial`. + * + * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic + * builds, may be used as a placeholder for provided arguments. + * + * **Note:** This method doesn't set the "length" property of curried functions. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Function + * @param {Function} func The function to curry. + * @param {number} [arity=func.length] The arity of `func`. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Function} Returns the new curried function. + * @example + * + * var abc = function(a, b, c) { + * return [a, b, c]; + * }; + * + * var curried = _.curryRight(abc); + * + * curried(3)(2)(1); + * // => [1, 2, 3] + * + * curried(2, 3)(1); + * // => [1, 2, 3] + * + * curried(1, 2, 3); + * // => [1, 2, 3] + * + * // Curried with placeholders. + * curried(3)(1, _)(2); + * // => [1, 2, 3] + */ +function curryRight(func, arity, guard) { + arity = guard ? undefined : arity; + var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity); + result.placeholder = curryRight.placeholder; + return result; +} + +// Assign default placeholders. +curryRight.placeholder = {}; + +module.exports = curryRight; diff --git a/node_modules/lodash/date.js b/node_modules/lodash/date.js new file mode 100644 index 0000000..cbf5b41 --- /dev/null +++ b/node_modules/lodash/date.js @@ -0,0 +1,3 @@ +module.exports = { + 'now': require('./now') +}; diff --git a/node_modules/lodash/debounce.js b/node_modules/lodash/debounce.js new file mode 100644 index 0000000..8f751d5 --- /dev/null +++ b/node_modules/lodash/debounce.js @@ -0,0 +1,191 @@ +var isObject = require('./isObject'), + now = require('./now'), + toNumber = require('./toNumber'); + +/** Error message constants. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max, + nativeMin = Math.min; + +/** + * Creates a debounced function that delays invoking `func` until after `wait` + * milliseconds have elapsed since the last time the debounced function was + * invoked. The debounced function comes with a `cancel` method to cancel + * delayed `func` invocations and a `flush` method to immediately invoke them. + * Provide `options` to indicate whether `func` should be invoked on the + * leading and/or trailing edge of the `wait` timeout. The `func` is invoked + * with the last arguments provided to the debounced function. Subsequent + * calls to the debounced function return the result of the last `func` + * invocation. + * + * **Note:** If `leading` and `trailing` options are `true`, `func` is + * invoked on the trailing edge of the timeout only if the debounced function + * is invoked more than once during the `wait` timeout. + * + * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred + * until to the next tick, similar to `setTimeout` with a timeout of `0`. + * + * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) + * for details over the differences between `_.debounce` and `_.throttle`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to debounce. + * @param {number} [wait=0] The number of milliseconds to delay. + * @param {Object} [options={}] The options object. + * @param {boolean} [options.leading=false] + * Specify invoking on the leading edge of the timeout. + * @param {number} [options.maxWait] + * The maximum time `func` is allowed to be delayed before it's invoked. + * @param {boolean} [options.trailing=true] + * Specify invoking on the trailing edge of the timeout. + * @returns {Function} Returns the new debounced function. + * @example + * + * // Avoid costly calculations while the window size is in flux. + * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); + * + * // Invoke `sendMail` when clicked, debouncing subsequent calls. + * jQuery(element).on('click', _.debounce(sendMail, 300, { + * 'leading': true, + * 'trailing': false + * })); + * + * // Ensure `batchLog` is invoked once after 1 second of debounced calls. + * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); + * var source = new EventSource('/stream'); + * jQuery(source).on('message', debounced); + * + * // Cancel the trailing debounced invocation. + * jQuery(window).on('popstate', debounced.cancel); + */ +function debounce(func, wait, options) { + var lastArgs, + lastThis, + maxWait, + result, + timerId, + lastCallTime, + lastInvokeTime = 0, + leading = false, + maxing = false, + trailing = true; + + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + wait = toNumber(wait) || 0; + if (isObject(options)) { + leading = !!options.leading; + maxing = 'maxWait' in options; + maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; + trailing = 'trailing' in options ? !!options.trailing : trailing; + } + + function invokeFunc(time) { + var args = lastArgs, + thisArg = lastThis; + + lastArgs = lastThis = undefined; + lastInvokeTime = time; + result = func.apply(thisArg, args); + return result; + } + + function leadingEdge(time) { + // Reset any `maxWait` timer. + lastInvokeTime = time; + // Start the timer for the trailing edge. + timerId = setTimeout(timerExpired, wait); + // Invoke the leading edge. + return leading ? invokeFunc(time) : result; + } + + function remainingWait(time) { + var timeSinceLastCall = time - lastCallTime, + timeSinceLastInvoke = time - lastInvokeTime, + timeWaiting = wait - timeSinceLastCall; + + return maxing + ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) + : timeWaiting; + } + + function shouldInvoke(time) { + var timeSinceLastCall = time - lastCallTime, + timeSinceLastInvoke = time - lastInvokeTime; + + // Either this is the first call, activity has stopped and we're at the + // trailing edge, the system time has gone backwards and we're treating + // it as the trailing edge, or we've hit the `maxWait` limit. + return (lastCallTime === undefined || (timeSinceLastCall >= wait) || + (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)); + } + + function timerExpired() { + var time = now(); + if (shouldInvoke(time)) { + return trailingEdge(time); + } + // Restart the timer. + timerId = setTimeout(timerExpired, remainingWait(time)); + } + + function trailingEdge(time) { + timerId = undefined; + + // Only invoke if we have `lastArgs` which means `func` has been + // debounced at least once. + if (trailing && lastArgs) { + return invokeFunc(time); + } + lastArgs = lastThis = undefined; + return result; + } + + function cancel() { + if (timerId !== undefined) { + clearTimeout(timerId); + } + lastInvokeTime = 0; + lastArgs = lastCallTime = lastThis = timerId = undefined; + } + + function flush() { + return timerId === undefined ? result : trailingEdge(now()); + } + + function debounced() { + var time = now(), + isInvoking = shouldInvoke(time); + + lastArgs = arguments; + lastThis = this; + lastCallTime = time; + + if (isInvoking) { + if (timerId === undefined) { + return leadingEdge(lastCallTime); + } + if (maxing) { + // Handle invocations in a tight loop. + clearTimeout(timerId); + timerId = setTimeout(timerExpired, wait); + return invokeFunc(lastCallTime); + } + } + if (timerId === undefined) { + timerId = setTimeout(timerExpired, wait); + } + return result; + } + debounced.cancel = cancel; + debounced.flush = flush; + return debounced; +} + +module.exports = debounce; diff --git a/node_modules/lodash/deburr.js b/node_modules/lodash/deburr.js new file mode 100644 index 0000000..f85e314 --- /dev/null +++ b/node_modules/lodash/deburr.js @@ -0,0 +1,45 @@ +var deburrLetter = require('./_deburrLetter'), + toString = require('./toString'); + +/** Used to match Latin Unicode letters (excluding mathematical operators). */ +var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g; + +/** Used to compose unicode character classes. */ +var rsComboMarksRange = '\\u0300-\\u036f', + reComboHalfMarksRange = '\\ufe20-\\ufe2f', + rsComboSymbolsRange = '\\u20d0-\\u20ff', + rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange; + +/** Used to compose unicode capture groups. */ +var rsCombo = '[' + rsComboRange + ']'; + +/** + * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and + * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols). + */ +var reComboMark = RegExp(rsCombo, 'g'); + +/** + * Deburrs `string` by converting + * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table) + * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A) + * letters to basic Latin letters and removing + * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to deburr. + * @returns {string} Returns the deburred string. + * @example + * + * _.deburr('déjà vu'); + * // => 'deja vu' + */ +function deburr(string) { + string = toString(string); + return string && string.replace(reLatin, deburrLetter).replace(reComboMark, ''); +} + +module.exports = deburr; diff --git a/node_modules/lodash/defaultTo.js b/node_modules/lodash/defaultTo.js new file mode 100644 index 0000000..5b33359 --- /dev/null +++ b/node_modules/lodash/defaultTo.js @@ -0,0 +1,25 @@ +/** + * Checks `value` to determine whether a default value should be returned in + * its place. The `defaultValue` is returned if `value` is `NaN`, `null`, + * or `undefined`. + * + * @static + * @memberOf _ + * @since 4.14.0 + * @category Util + * @param {*} value The value to check. + * @param {*} defaultValue The default value. + * @returns {*} Returns the resolved value. + * @example + * + * _.defaultTo(1, 10); + * // => 1 + * + * _.defaultTo(undefined, 10); + * // => 10 + */ +function defaultTo(value, defaultValue) { + return (value == null || value !== value) ? defaultValue : value; +} + +module.exports = defaultTo; diff --git a/node_modules/lodash/defaults.js b/node_modules/lodash/defaults.js new file mode 100644 index 0000000..c74df04 --- /dev/null +++ b/node_modules/lodash/defaults.js @@ -0,0 +1,64 @@ +var baseRest = require('./_baseRest'), + eq = require('./eq'), + isIterateeCall = require('./_isIterateeCall'), + keysIn = require('./keysIn'); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Assigns own and inherited enumerable string keyed properties of source + * objects to the destination object for all destination properties that + * resolve to `undefined`. Source objects are applied from left to right. + * Once a property is set, additional values of the same property are ignored. + * + * **Note:** This method mutates `object`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @see _.defaultsDeep + * @example + * + * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); + * // => { 'a': 1, 'b': 2 } + */ +var defaults = baseRest(function(object, sources) { + object = Object(object); + + var index = -1; + var length = sources.length; + var guard = length > 2 ? sources[2] : undefined; + + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + length = 1; + } + + while (++index < length) { + var source = sources[index]; + var props = keysIn(source); + var propsIndex = -1; + var propsLength = props.length; + + while (++propsIndex < propsLength) { + var key = props[propsIndex]; + var value = object[key]; + + if (value === undefined || + (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) { + object[key] = source[key]; + } + } + } + + return object; +}); + +module.exports = defaults; diff --git a/node_modules/lodash/defaultsDeep.js b/node_modules/lodash/defaultsDeep.js new file mode 100644 index 0000000..9b5fa3e --- /dev/null +++ b/node_modules/lodash/defaultsDeep.js @@ -0,0 +1,30 @@ +var apply = require('./_apply'), + baseRest = require('./_baseRest'), + customDefaultsMerge = require('./_customDefaultsMerge'), + mergeWith = require('./mergeWith'); + +/** + * This method is like `_.defaults` except that it recursively assigns + * default properties. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 3.10.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @see _.defaults + * @example + * + * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } }); + * // => { 'a': { 'b': 2, 'c': 3 } } + */ +var defaultsDeep = baseRest(function(args) { + args.push(undefined, customDefaultsMerge); + return apply(mergeWith, undefined, args); +}); + +module.exports = defaultsDeep; diff --git a/node_modules/lodash/defer.js b/node_modules/lodash/defer.js new file mode 100644 index 0000000..f6d6c6f --- /dev/null +++ b/node_modules/lodash/defer.js @@ -0,0 +1,26 @@ +var baseDelay = require('./_baseDelay'), + baseRest = require('./_baseRest'); + +/** + * Defers invoking the `func` until the current call stack has cleared. Any + * additional arguments are provided to `func` when it's invoked. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to defer. + * @param {...*} [args] The arguments to invoke `func` with. + * @returns {number} Returns the timer id. + * @example + * + * _.defer(function(text) { + * console.log(text); + * }, 'deferred'); + * // => Logs 'deferred' after one millisecond. + */ +var defer = baseRest(function(func, args) { + return baseDelay(func, 1, args); +}); + +module.exports = defer; diff --git a/node_modules/lodash/delay.js b/node_modules/lodash/delay.js new file mode 100644 index 0000000..bd55479 --- /dev/null +++ b/node_modules/lodash/delay.js @@ -0,0 +1,28 @@ +var baseDelay = require('./_baseDelay'), + baseRest = require('./_baseRest'), + toNumber = require('./toNumber'); + +/** + * Invokes `func` after `wait` milliseconds. Any additional arguments are + * provided to `func` when it's invoked. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to delay. + * @param {number} wait The number of milliseconds to delay invocation. + * @param {...*} [args] The arguments to invoke `func` with. + * @returns {number} Returns the timer id. + * @example + * + * _.delay(function(text) { + * console.log(text); + * }, 1000, 'later'); + * // => Logs 'later' after one second. + */ +var delay = baseRest(function(func, wait, args) { + return baseDelay(func, toNumber(wait) || 0, args); +}); + +module.exports = delay; diff --git a/node_modules/lodash/difference.js b/node_modules/lodash/difference.js new file mode 100644 index 0000000..fa28bb3 --- /dev/null +++ b/node_modules/lodash/difference.js @@ -0,0 +1,33 @@ +var baseDifference = require('./_baseDifference'), + baseFlatten = require('./_baseFlatten'), + baseRest = require('./_baseRest'), + isArrayLikeObject = require('./isArrayLikeObject'); + +/** + * Creates an array of `array` values not included in the other given arrays + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. The order and references of result values are + * determined by the first array. + * + * **Note:** Unlike `_.pullAll`, this method returns a new array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {...Array} [values] The values to exclude. + * @returns {Array} Returns the new array of filtered values. + * @see _.without, _.xor + * @example + * + * _.difference([2, 1], [2, 3]); + * // => [1] + */ +var difference = baseRest(function(array, values) { + return isArrayLikeObject(array) + ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true)) + : []; +}); + +module.exports = difference; diff --git a/node_modules/lodash/differenceBy.js b/node_modules/lodash/differenceBy.js new file mode 100644 index 0000000..2cd63e7 --- /dev/null +++ b/node_modules/lodash/differenceBy.js @@ -0,0 +1,44 @@ +var baseDifference = require('./_baseDifference'), + baseFlatten = require('./_baseFlatten'), + baseIteratee = require('./_baseIteratee'), + baseRest = require('./_baseRest'), + isArrayLikeObject = require('./isArrayLikeObject'), + last = require('./last'); + +/** + * This method is like `_.difference` except that it accepts `iteratee` which + * is invoked for each element of `array` and `values` to generate the criterion + * by which they're compared. The order and references of result values are + * determined by the first array. The iteratee is invoked with one argument: + * (value). + * + * **Note:** Unlike `_.pullAllBy`, this method returns a new array. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {...Array} [values] The values to exclude. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Array} Returns the new array of filtered values. + * @example + * + * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor); + * // => [1.2] + * + * // The `_.property` iteratee shorthand. + * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x'); + * // => [{ 'x': 2 }] + */ +var differenceBy = baseRest(function(array, values) { + var iteratee = last(values); + if (isArrayLikeObject(iteratee)) { + iteratee = undefined; + } + return isArrayLikeObject(array) + ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), baseIteratee(iteratee, 2)) + : []; +}); + +module.exports = differenceBy; diff --git a/node_modules/lodash/differenceWith.js b/node_modules/lodash/differenceWith.js new file mode 100644 index 0000000..c0233f4 --- /dev/null +++ b/node_modules/lodash/differenceWith.js @@ -0,0 +1,40 @@ +var baseDifference = require('./_baseDifference'), + baseFlatten = require('./_baseFlatten'), + baseRest = require('./_baseRest'), + isArrayLikeObject = require('./isArrayLikeObject'), + last = require('./last'); + +/** + * This method is like `_.difference` except that it accepts `comparator` + * which is invoked to compare elements of `array` to `values`. The order and + * references of result values are determined by the first array. The comparator + * is invoked with two arguments: (arrVal, othVal). + * + * **Note:** Unlike `_.pullAllWith`, this method returns a new array. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {...Array} [values] The values to exclude. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of filtered values. + * @example + * + * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; + * + * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual); + * // => [{ 'x': 2, 'y': 1 }] + */ +var differenceWith = baseRest(function(array, values) { + var comparator = last(values); + if (isArrayLikeObject(comparator)) { + comparator = undefined; + } + return isArrayLikeObject(array) + ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator) + : []; +}); + +module.exports = differenceWith; diff --git a/node_modules/lodash/divide.js b/node_modules/lodash/divide.js new file mode 100644 index 0000000..8cae0cd --- /dev/null +++ b/node_modules/lodash/divide.js @@ -0,0 +1,22 @@ +var createMathOperation = require('./_createMathOperation'); + +/** + * Divide two numbers. + * + * @static + * @memberOf _ + * @since 4.7.0 + * @category Math + * @param {number} dividend The first number in a division. + * @param {number} divisor The second number in a division. + * @returns {number} Returns the quotient. + * @example + * + * _.divide(6, 4); + * // => 1.5 + */ +var divide = createMathOperation(function(dividend, divisor) { + return dividend / divisor; +}, 1); + +module.exports = divide; diff --git a/node_modules/lodash/drop.js b/node_modules/lodash/drop.js new file mode 100644 index 0000000..d5c3cba --- /dev/null +++ b/node_modules/lodash/drop.js @@ -0,0 +1,38 @@ +var baseSlice = require('./_baseSlice'), + toInteger = require('./toInteger'); + +/** + * Creates a slice of `array` with `n` elements dropped from the beginning. + * + * @static + * @memberOf _ + * @since 0.5.0 + * @category Array + * @param {Array} array The array to query. + * @param {number} [n=1] The number of elements to drop. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Array} Returns the slice of `array`. + * @example + * + * _.drop([1, 2, 3]); + * // => [2, 3] + * + * _.drop([1, 2, 3], 2); + * // => [3] + * + * _.drop([1, 2, 3], 5); + * // => [] + * + * _.drop([1, 2, 3], 0); + * // => [1, 2, 3] + */ +function drop(array, n, guard) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + n = (guard || n === undefined) ? 1 : toInteger(n); + return baseSlice(array, n < 0 ? 0 : n, length); +} + +module.exports = drop; diff --git a/node_modules/lodash/dropRight.js b/node_modules/lodash/dropRight.js new file mode 100644 index 0000000..441fe99 --- /dev/null +++ b/node_modules/lodash/dropRight.js @@ -0,0 +1,39 @@ +var baseSlice = require('./_baseSlice'), + toInteger = require('./toInteger'); + +/** + * Creates a slice of `array` with `n` elements dropped from the end. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to query. + * @param {number} [n=1] The number of elements to drop. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Array} Returns the slice of `array`. + * @example + * + * _.dropRight([1, 2, 3]); + * // => [1, 2] + * + * _.dropRight([1, 2, 3], 2); + * // => [1] + * + * _.dropRight([1, 2, 3], 5); + * // => [] + * + * _.dropRight([1, 2, 3], 0); + * // => [1, 2, 3] + */ +function dropRight(array, n, guard) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + n = (guard || n === undefined) ? 1 : toInteger(n); + n = length - n; + return baseSlice(array, 0, n < 0 ? 0 : n); +} + +module.exports = dropRight; diff --git a/node_modules/lodash/dropRightWhile.js b/node_modules/lodash/dropRightWhile.js new file mode 100644 index 0000000..9ad36a0 --- /dev/null +++ b/node_modules/lodash/dropRightWhile.js @@ -0,0 +1,45 @@ +var baseIteratee = require('./_baseIteratee'), + baseWhile = require('./_baseWhile'); + +/** + * Creates a slice of `array` excluding elements dropped from the end. + * Elements are dropped until `predicate` returns falsey. The predicate is + * invoked with three arguments: (value, index, array). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to query. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the slice of `array`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': true }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': false } + * ]; + * + * _.dropRightWhile(users, function(o) { return !o.active; }); + * // => objects for ['barney'] + * + * // The `_.matches` iteratee shorthand. + * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false }); + * // => objects for ['barney', 'fred'] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.dropRightWhile(users, ['active', false]); + * // => objects for ['barney'] + * + * // The `_.property` iteratee shorthand. + * _.dropRightWhile(users, 'active'); + * // => objects for ['barney', 'fred', 'pebbles'] + */ +function dropRightWhile(array, predicate) { + return (array && array.length) + ? baseWhile(array, baseIteratee(predicate, 3), true, true) + : []; +} + +module.exports = dropRightWhile; diff --git a/node_modules/lodash/dropWhile.js b/node_modules/lodash/dropWhile.js new file mode 100644 index 0000000..903ef56 --- /dev/null +++ b/node_modules/lodash/dropWhile.js @@ -0,0 +1,45 @@ +var baseIteratee = require('./_baseIteratee'), + baseWhile = require('./_baseWhile'); + +/** + * Creates a slice of `array` excluding elements dropped from the beginning. + * Elements are dropped until `predicate` returns falsey. The predicate is + * invoked with three arguments: (value, index, array). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to query. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the slice of `array`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': false }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': true } + * ]; + * + * _.dropWhile(users, function(o) { return !o.active; }); + * // => objects for ['pebbles'] + * + * // The `_.matches` iteratee shorthand. + * _.dropWhile(users, { 'user': 'barney', 'active': false }); + * // => objects for ['fred', 'pebbles'] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.dropWhile(users, ['active', false]); + * // => objects for ['pebbles'] + * + * // The `_.property` iteratee shorthand. + * _.dropWhile(users, 'active'); + * // => objects for ['barney', 'fred', 'pebbles'] + */ +function dropWhile(array, predicate) { + return (array && array.length) + ? baseWhile(array, baseIteratee(predicate, 3), true) + : []; +} + +module.exports = dropWhile; diff --git a/node_modules/lodash/each.js b/node_modules/lodash/each.js new file mode 100644 index 0000000..8800f42 --- /dev/null +++ b/node_modules/lodash/each.js @@ -0,0 +1 @@ +module.exports = require('./forEach'); diff --git a/node_modules/lodash/eachRight.js b/node_modules/lodash/eachRight.js new file mode 100644 index 0000000..3252b2a --- /dev/null +++ b/node_modules/lodash/eachRight.js @@ -0,0 +1 @@ +module.exports = require('./forEachRight'); diff --git a/node_modules/lodash/endsWith.js b/node_modules/lodash/endsWith.js new file mode 100644 index 0000000..76fc866 --- /dev/null +++ b/node_modules/lodash/endsWith.js @@ -0,0 +1,43 @@ +var baseClamp = require('./_baseClamp'), + baseToString = require('./_baseToString'), + toInteger = require('./toInteger'), + toString = require('./toString'); + +/** + * Checks if `string` ends with the given target string. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to inspect. + * @param {string} [target] The string to search for. + * @param {number} [position=string.length] The position to search up to. + * @returns {boolean} Returns `true` if `string` ends with `target`, + * else `false`. + * @example + * + * _.endsWith('abc', 'c'); + * // => true + * + * _.endsWith('abc', 'b'); + * // => false + * + * _.endsWith('abc', 'b', 2); + * // => true + */ +function endsWith(string, target, position) { + string = toString(string); + target = baseToString(target); + + var length = string.length; + position = position === undefined + ? length + : baseClamp(toInteger(position), 0, length); + + var end = position; + position -= target.length; + return position >= 0 && string.slice(position, end) == target; +} + +module.exports = endsWith; diff --git a/node_modules/lodash/entries.js b/node_modules/lodash/entries.js new file mode 100644 index 0000000..7a88df2 --- /dev/null +++ b/node_modules/lodash/entries.js @@ -0,0 +1 @@ +module.exports = require('./toPairs'); diff --git a/node_modules/lodash/entriesIn.js b/node_modules/lodash/entriesIn.js new file mode 100644 index 0000000..f6c6331 --- /dev/null +++ b/node_modules/lodash/entriesIn.js @@ -0,0 +1 @@ +module.exports = require('./toPairsIn'); diff --git a/node_modules/lodash/eq.js b/node_modules/lodash/eq.js new file mode 100644 index 0000000..a940688 --- /dev/null +++ b/node_modules/lodash/eq.js @@ -0,0 +1,37 @@ +/** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */ +function eq(value, other) { + return value === other || (value !== value && other !== other); +} + +module.exports = eq; diff --git a/node_modules/lodash/escape.js b/node_modules/lodash/escape.js new file mode 100644 index 0000000..9247e00 --- /dev/null +++ b/node_modules/lodash/escape.js @@ -0,0 +1,43 @@ +var escapeHtmlChar = require('./_escapeHtmlChar'), + toString = require('./toString'); + +/** Used to match HTML entities and HTML characters. */ +var reUnescapedHtml = /[&<>"']/g, + reHasUnescapedHtml = RegExp(reUnescapedHtml.source); + +/** + * Converts the characters "&", "<", ">", '"', and "'" in `string` to their + * corresponding HTML entities. + * + * **Note:** No other characters are escaped. To escape additional + * characters use a third-party library like [_he_](https://mths.be/he). + * + * Though the ">" character is escaped for symmetry, characters like + * ">" and "/" don't need escaping in HTML and have no special meaning + * unless they're part of a tag or unquoted attribute value. See + * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands) + * (under "semi-related fun fact") for more details. + * + * When working with HTML you should always + * [quote attribute values](http://wonko.com/post/html-escaping) to reduce + * XSS vectors. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category String + * @param {string} [string=''] The string to escape. + * @returns {string} Returns the escaped string. + * @example + * + * _.escape('fred, barney, & pebbles'); + * // => 'fred, barney, & pebbles' + */ +function escape(string) { + string = toString(string); + return (string && reHasUnescapedHtml.test(string)) + ? string.replace(reUnescapedHtml, escapeHtmlChar) + : string; +} + +module.exports = escape; diff --git a/node_modules/lodash/escapeRegExp.js b/node_modules/lodash/escapeRegExp.js new file mode 100644 index 0000000..0a58c69 --- /dev/null +++ b/node_modules/lodash/escapeRegExp.js @@ -0,0 +1,32 @@ +var toString = require('./toString'); + +/** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + */ +var reRegExpChar = /[\\^$.*+?()[\]{}|]/g, + reHasRegExpChar = RegExp(reRegExpChar.source); + +/** + * Escapes the `RegExp` special characters "^", "$", "\", ".", "*", "+", + * "?", "(", ")", "[", "]", "{", "}", and "|" in `string`. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to escape. + * @returns {string} Returns the escaped string. + * @example + * + * _.escapeRegExp('[lodash](https://lodash.com/)'); + * // => '\[lodash\]\(https://lodash\.com/\)' + */ +function escapeRegExp(string) { + string = toString(string); + return (string && reHasRegExpChar.test(string)) + ? string.replace(reRegExpChar, '\\$&') + : string; +} + +module.exports = escapeRegExp; diff --git a/node_modules/lodash/every.js b/node_modules/lodash/every.js new file mode 100644 index 0000000..25080da --- /dev/null +++ b/node_modules/lodash/every.js @@ -0,0 +1,56 @@ +var arrayEvery = require('./_arrayEvery'), + baseEvery = require('./_baseEvery'), + baseIteratee = require('./_baseIteratee'), + isArray = require('./isArray'), + isIterateeCall = require('./_isIterateeCall'); + +/** + * Checks if `predicate` returns truthy for **all** elements of `collection`. + * Iteration is stopped once `predicate` returns falsey. The predicate is + * invoked with three arguments: (value, index|key, collection). + * + * **Note:** This method returns `true` for + * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because + * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of + * elements of empty collections. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {boolean} Returns `true` if all elements pass the predicate check, + * else `false`. + * @example + * + * _.every([true, 1, null, 'yes'], Boolean); + * // => false + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': false }, + * { 'user': 'fred', 'age': 40, 'active': false } + * ]; + * + * // The `_.matches` iteratee shorthand. + * _.every(users, { 'user': 'barney', 'active': false }); + * // => false + * + * // The `_.matchesProperty` iteratee shorthand. + * _.every(users, ['active', false]); + * // => true + * + * // The `_.property` iteratee shorthand. + * _.every(users, 'active'); + * // => false + */ +function every(collection, predicate, guard) { + var func = isArray(collection) ? arrayEvery : baseEvery; + if (guard && isIterateeCall(collection, predicate, guard)) { + predicate = undefined; + } + return func(collection, baseIteratee(predicate, 3)); +} + +module.exports = every; diff --git a/node_modules/lodash/extend.js b/node_modules/lodash/extend.js new file mode 100644 index 0000000..e00166c --- /dev/null +++ b/node_modules/lodash/extend.js @@ -0,0 +1 @@ +module.exports = require('./assignIn'); diff --git a/node_modules/lodash/extendWith.js b/node_modules/lodash/extendWith.js new file mode 100644 index 0000000..dbdcb3b --- /dev/null +++ b/node_modules/lodash/extendWith.js @@ -0,0 +1 @@ +module.exports = require('./assignInWith'); diff --git a/node_modules/lodash/fill.js b/node_modules/lodash/fill.js new file mode 100644 index 0000000..ae13aa1 --- /dev/null +++ b/node_modules/lodash/fill.js @@ -0,0 +1,45 @@ +var baseFill = require('./_baseFill'), + isIterateeCall = require('./_isIterateeCall'); + +/** + * Fills elements of `array` with `value` from `start` up to, but not + * including, `end`. + * + * **Note:** This method mutates `array`. + * + * @static + * @memberOf _ + * @since 3.2.0 + * @category Array + * @param {Array} array The array to fill. + * @param {*} value The value to fill `array` with. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns `array`. + * @example + * + * var array = [1, 2, 3]; + * + * _.fill(array, 'a'); + * console.log(array); + * // => ['a', 'a', 'a'] + * + * _.fill(Array(3), 2); + * // => [2, 2, 2] + * + * _.fill([4, 6, 8, 10], '*', 1, 3); + * // => [4, '*', '*', 10] + */ +function fill(array, value, start, end) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + if (start && typeof start != 'number' && isIterateeCall(array, value, start)) { + start = 0; + end = length; + } + return baseFill(array, value, start, end); +} + +module.exports = fill; diff --git a/node_modules/lodash/filter.js b/node_modules/lodash/filter.js new file mode 100644 index 0000000..89e0c8c --- /dev/null +++ b/node_modules/lodash/filter.js @@ -0,0 +1,52 @@ +var arrayFilter = require('./_arrayFilter'), + baseFilter = require('./_baseFilter'), + baseIteratee = require('./_baseIteratee'), + isArray = require('./isArray'); + +/** + * Iterates over elements of `collection`, returning an array of all elements + * `predicate` returns truthy for. The predicate is invoked with three + * arguments: (value, index|key, collection). + * + * **Note:** Unlike `_.remove`, this method returns a new array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + * @see _.reject + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': true }, + * { 'user': 'fred', 'age': 40, 'active': false } + * ]; + * + * _.filter(users, function(o) { return !o.active; }); + * // => objects for ['fred'] + * + * // The `_.matches` iteratee shorthand. + * _.filter(users, { 'age': 36, 'active': true }); + * // => objects for ['barney'] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.filter(users, ['active', false]); + * // => objects for ['fred'] + * + * // The `_.property` iteratee shorthand. + * _.filter(users, 'active'); + * // => objects for ['barney'] + * + * // Combining several predicates using `_.overEvery` or `_.overSome`. + * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]])); + * // => objects for ['fred', 'barney'] + */ +function filter(collection, predicate) { + var func = isArray(collection) ? arrayFilter : baseFilter; + return func(collection, baseIteratee(predicate, 3)); +} + +module.exports = filter; diff --git a/node_modules/lodash/find.js b/node_modules/lodash/find.js new file mode 100644 index 0000000..de732cc --- /dev/null +++ b/node_modules/lodash/find.js @@ -0,0 +1,42 @@ +var createFind = require('./_createFind'), + findIndex = require('./findIndex'); + +/** + * Iterates over elements of `collection`, returning the first element + * `predicate` returns truthy for. The predicate is invoked with three + * arguments: (value, index|key, collection). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=0] The index to search from. + * @returns {*} Returns the matched element, else `undefined`. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': true }, + * { 'user': 'fred', 'age': 40, 'active': false }, + * { 'user': 'pebbles', 'age': 1, 'active': true } + * ]; + * + * _.find(users, function(o) { return o.age < 40; }); + * // => object for 'barney' + * + * // The `_.matches` iteratee shorthand. + * _.find(users, { 'age': 1, 'active': true }); + * // => object for 'pebbles' + * + * // The `_.matchesProperty` iteratee shorthand. + * _.find(users, ['active', false]); + * // => object for 'fred' + * + * // The `_.property` iteratee shorthand. + * _.find(users, 'active'); + * // => object for 'barney' + */ +var find = createFind(findIndex); + +module.exports = find; diff --git a/node_modules/lodash/findIndex.js b/node_modules/lodash/findIndex.js new file mode 100644 index 0000000..4689069 --- /dev/null +++ b/node_modules/lodash/findIndex.js @@ -0,0 +1,55 @@ +var baseFindIndex = require('./_baseFindIndex'), + baseIteratee = require('./_baseIteratee'), + toInteger = require('./toInteger'); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * This method is like `_.find` except that it returns the index of the first + * element `predicate` returns truthy for instead of the element itself. + * + * @static + * @memberOf _ + * @since 1.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=0] The index to search from. + * @returns {number} Returns the index of the found element, else `-1`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': false }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': true } + * ]; + * + * _.findIndex(users, function(o) { return o.user == 'barney'; }); + * // => 0 + * + * // The `_.matches` iteratee shorthand. + * _.findIndex(users, { 'user': 'fred', 'active': false }); + * // => 1 + * + * // The `_.matchesProperty` iteratee shorthand. + * _.findIndex(users, ['active', false]); + * // => 0 + * + * // The `_.property` iteratee shorthand. + * _.findIndex(users, 'active'); + * // => 2 + */ +function findIndex(array, predicate, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = fromIndex == null ? 0 : toInteger(fromIndex); + if (index < 0) { + index = nativeMax(length + index, 0); + } + return baseFindIndex(array, baseIteratee(predicate, 3), index); +} + +module.exports = findIndex; diff --git a/node_modules/lodash/findKey.js b/node_modules/lodash/findKey.js new file mode 100644 index 0000000..cac0248 --- /dev/null +++ b/node_modules/lodash/findKey.js @@ -0,0 +1,44 @@ +var baseFindKey = require('./_baseFindKey'), + baseForOwn = require('./_baseForOwn'), + baseIteratee = require('./_baseIteratee'); + +/** + * This method is like `_.find` except that it returns the key of the first + * element `predicate` returns truthy for instead of the element itself. + * + * @static + * @memberOf _ + * @since 1.1.0 + * @category Object + * @param {Object} object The object to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {string|undefined} Returns the key of the matched element, + * else `undefined`. + * @example + * + * var users = { + * 'barney': { 'age': 36, 'active': true }, + * 'fred': { 'age': 40, 'active': false }, + * 'pebbles': { 'age': 1, 'active': true } + * }; + * + * _.findKey(users, function(o) { return o.age < 40; }); + * // => 'barney' (iteration order is not guaranteed) + * + * // The `_.matches` iteratee shorthand. + * _.findKey(users, { 'age': 1, 'active': true }); + * // => 'pebbles' + * + * // The `_.matchesProperty` iteratee shorthand. + * _.findKey(users, ['active', false]); + * // => 'fred' + * + * // The `_.property` iteratee shorthand. + * _.findKey(users, 'active'); + * // => 'barney' + */ +function findKey(object, predicate) { + return baseFindKey(object, baseIteratee(predicate, 3), baseForOwn); +} + +module.exports = findKey; diff --git a/node_modules/lodash/findLast.js b/node_modules/lodash/findLast.js new file mode 100644 index 0000000..70b4271 --- /dev/null +++ b/node_modules/lodash/findLast.js @@ -0,0 +1,25 @@ +var createFind = require('./_createFind'), + findLastIndex = require('./findLastIndex'); + +/** + * This method is like `_.find` except that it iterates over elements of + * `collection` from right to left. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Collection + * @param {Array|Object} collection The collection to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=collection.length-1] The index to search from. + * @returns {*} Returns the matched element, else `undefined`. + * @example + * + * _.findLast([1, 2, 3, 4], function(n) { + * return n % 2 == 1; + * }); + * // => 3 + */ +var findLast = createFind(findLastIndex); + +module.exports = findLast; diff --git a/node_modules/lodash/findLastIndex.js b/node_modules/lodash/findLastIndex.js new file mode 100644 index 0000000..7da3431 --- /dev/null +++ b/node_modules/lodash/findLastIndex.js @@ -0,0 +1,59 @@ +var baseFindIndex = require('./_baseFindIndex'), + baseIteratee = require('./_baseIteratee'), + toInteger = require('./toInteger'); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max, + nativeMin = Math.min; + +/** + * This method is like `_.findIndex` except that it iterates over elements + * of `collection` from right to left. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=array.length-1] The index to search from. + * @returns {number} Returns the index of the found element, else `-1`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': true }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': false } + * ]; + * + * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; }); + * // => 2 + * + * // The `_.matches` iteratee shorthand. + * _.findLastIndex(users, { 'user': 'barney', 'active': true }); + * // => 0 + * + * // The `_.matchesProperty` iteratee shorthand. + * _.findLastIndex(users, ['active', false]); + * // => 2 + * + * // The `_.property` iteratee shorthand. + * _.findLastIndex(users, 'active'); + * // => 0 + */ +function findLastIndex(array, predicate, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = length - 1; + if (fromIndex !== undefined) { + index = toInteger(fromIndex); + index = fromIndex < 0 + ? nativeMax(length + index, 0) + : nativeMin(index, length - 1); + } + return baseFindIndex(array, baseIteratee(predicate, 3), index, true); +} + +module.exports = findLastIndex; diff --git a/node_modules/lodash/findLastKey.js b/node_modules/lodash/findLastKey.js new file mode 100644 index 0000000..66fb9fb --- /dev/null +++ b/node_modules/lodash/findLastKey.js @@ -0,0 +1,44 @@ +var baseFindKey = require('./_baseFindKey'), + baseForOwnRight = require('./_baseForOwnRight'), + baseIteratee = require('./_baseIteratee'); + +/** + * This method is like `_.findKey` except that it iterates over elements of + * a collection in the opposite order. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Object + * @param {Object} object The object to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {string|undefined} Returns the key of the matched element, + * else `undefined`. + * @example + * + * var users = { + * 'barney': { 'age': 36, 'active': true }, + * 'fred': { 'age': 40, 'active': false }, + * 'pebbles': { 'age': 1, 'active': true } + * }; + * + * _.findLastKey(users, function(o) { return o.age < 40; }); + * // => returns 'pebbles' assuming `_.findKey` returns 'barney' + * + * // The `_.matches` iteratee shorthand. + * _.findLastKey(users, { 'age': 36, 'active': true }); + * // => 'barney' + * + * // The `_.matchesProperty` iteratee shorthand. + * _.findLastKey(users, ['active', false]); + * // => 'fred' + * + * // The `_.property` iteratee shorthand. + * _.findLastKey(users, 'active'); + * // => 'pebbles' + */ +function findLastKey(object, predicate) { + return baseFindKey(object, baseIteratee(predicate, 3), baseForOwnRight); +} + +module.exports = findLastKey; diff --git a/node_modules/lodash/first.js b/node_modules/lodash/first.js new file mode 100644 index 0000000..53f4ad1 --- /dev/null +++ b/node_modules/lodash/first.js @@ -0,0 +1 @@ +module.exports = require('./head'); diff --git a/node_modules/lodash/flatMap.js b/node_modules/lodash/flatMap.js new file mode 100644 index 0000000..e668506 --- /dev/null +++ b/node_modules/lodash/flatMap.js @@ -0,0 +1,29 @@ +var baseFlatten = require('./_baseFlatten'), + map = require('./map'); + +/** + * Creates a flattened array of values by running each element in `collection` + * thru `iteratee` and flattening the mapped results. The iteratee is invoked + * with three arguments: (value, index|key, collection). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new flattened array. + * @example + * + * function duplicate(n) { + * return [n, n]; + * } + * + * _.flatMap([1, 2], duplicate); + * // => [1, 1, 2, 2] + */ +function flatMap(collection, iteratee) { + return baseFlatten(map(collection, iteratee), 1); +} + +module.exports = flatMap; diff --git a/node_modules/lodash/flatMapDeep.js b/node_modules/lodash/flatMapDeep.js new file mode 100644 index 0000000..4653d60 --- /dev/null +++ b/node_modules/lodash/flatMapDeep.js @@ -0,0 +1,31 @@ +var baseFlatten = require('./_baseFlatten'), + map = require('./map'); + +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0; + +/** + * This method is like `_.flatMap` except that it recursively flattens the + * mapped results. + * + * @static + * @memberOf _ + * @since 4.7.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new flattened array. + * @example + * + * function duplicate(n) { + * return [[[n, n]]]; + * } + * + * _.flatMapDeep([1, 2], duplicate); + * // => [1, 1, 2, 2] + */ +function flatMapDeep(collection, iteratee) { + return baseFlatten(map(collection, iteratee), INFINITY); +} + +module.exports = flatMapDeep; diff --git a/node_modules/lodash/flatMapDepth.js b/node_modules/lodash/flatMapDepth.js new file mode 100644 index 0000000..6d72005 --- /dev/null +++ b/node_modules/lodash/flatMapDepth.js @@ -0,0 +1,31 @@ +var baseFlatten = require('./_baseFlatten'), + map = require('./map'), + toInteger = require('./toInteger'); + +/** + * This method is like `_.flatMap` except that it recursively flattens the + * mapped results up to `depth` times. + * + * @static + * @memberOf _ + * @since 4.7.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @param {number} [depth=1] The maximum recursion depth. + * @returns {Array} Returns the new flattened array. + * @example + * + * function duplicate(n) { + * return [[[n, n]]]; + * } + * + * _.flatMapDepth([1, 2], duplicate, 2); + * // => [[1, 1], [2, 2]] + */ +function flatMapDepth(collection, iteratee, depth) { + depth = depth === undefined ? 1 : toInteger(depth); + return baseFlatten(map(collection, iteratee), depth); +} + +module.exports = flatMapDepth; diff --git a/node_modules/lodash/flatten.js b/node_modules/lodash/flatten.js new file mode 100644 index 0000000..3f09f7f --- /dev/null +++ b/node_modules/lodash/flatten.js @@ -0,0 +1,22 @@ +var baseFlatten = require('./_baseFlatten'); + +/** + * Flattens `array` a single level deep. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to flatten. + * @returns {Array} Returns the new flattened array. + * @example + * + * _.flatten([1, [2, [3, [4]], 5]]); + * // => [1, 2, [3, [4]], 5] + */ +function flatten(array) { + var length = array == null ? 0 : array.length; + return length ? baseFlatten(array, 1) : []; +} + +module.exports = flatten; diff --git a/node_modules/lodash/flattenDeep.js b/node_modules/lodash/flattenDeep.js new file mode 100644 index 0000000..8ad585c --- /dev/null +++ b/node_modules/lodash/flattenDeep.js @@ -0,0 +1,25 @@ +var baseFlatten = require('./_baseFlatten'); + +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0; + +/** + * Recursively flattens `array`. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to flatten. + * @returns {Array} Returns the new flattened array. + * @example + * + * _.flattenDeep([1, [2, [3, [4]], 5]]); + * // => [1, 2, 3, 4, 5] + */ +function flattenDeep(array) { + var length = array == null ? 0 : array.length; + return length ? baseFlatten(array, INFINITY) : []; +} + +module.exports = flattenDeep; diff --git a/node_modules/lodash/flattenDepth.js b/node_modules/lodash/flattenDepth.js new file mode 100644 index 0000000..441fdcc --- /dev/null +++ b/node_modules/lodash/flattenDepth.js @@ -0,0 +1,33 @@ +var baseFlatten = require('./_baseFlatten'), + toInteger = require('./toInteger'); + +/** + * Recursively flatten `array` up to `depth` times. + * + * @static + * @memberOf _ + * @since 4.4.0 + * @category Array + * @param {Array} array The array to flatten. + * @param {number} [depth=1] The maximum recursion depth. + * @returns {Array} Returns the new flattened array. + * @example + * + * var array = [1, [2, [3, [4]], 5]]; + * + * _.flattenDepth(array, 1); + * // => [1, 2, [3, [4]], 5] + * + * _.flattenDepth(array, 2); + * // => [1, 2, 3, [4], 5] + */ +function flattenDepth(array, depth) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + depth = depth === undefined ? 1 : toInteger(depth); + return baseFlatten(array, depth); +} + +module.exports = flattenDepth; diff --git a/node_modules/lodash/flip.js b/node_modules/lodash/flip.js new file mode 100644 index 0000000..c28dd78 --- /dev/null +++ b/node_modules/lodash/flip.js @@ -0,0 +1,28 @@ +var createWrap = require('./_createWrap'); + +/** Used to compose bitmasks for function metadata. */ +var WRAP_FLIP_FLAG = 512; + +/** + * Creates a function that invokes `func` with arguments reversed. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Function + * @param {Function} func The function to flip arguments for. + * @returns {Function} Returns the new flipped function. + * @example + * + * var flipped = _.flip(function() { + * return _.toArray(arguments); + * }); + * + * flipped('a', 'b', 'c', 'd'); + * // => ['d', 'c', 'b', 'a'] + */ +function flip(func) { + return createWrap(func, WRAP_FLIP_FLAG); +} + +module.exports = flip; diff --git a/node_modules/lodash/floor.js b/node_modules/lodash/floor.js new file mode 100644 index 0000000..ab6dfa2 --- /dev/null +++ b/node_modules/lodash/floor.js @@ -0,0 +1,26 @@ +var createRound = require('./_createRound'); + +/** + * Computes `number` rounded down to `precision`. + * + * @static + * @memberOf _ + * @since 3.10.0 + * @category Math + * @param {number} number The number to round down. + * @param {number} [precision=0] The precision to round down to. + * @returns {number} Returns the rounded down number. + * @example + * + * _.floor(4.006); + * // => 4 + * + * _.floor(0.046, 2); + * // => 0.04 + * + * _.floor(4060, -2); + * // => 4000 + */ +var floor = createRound('floor'); + +module.exports = floor; diff --git a/node_modules/lodash/flow.js b/node_modules/lodash/flow.js new file mode 100644 index 0000000..74b6b62 --- /dev/null +++ b/node_modules/lodash/flow.js @@ -0,0 +1,27 @@ +var createFlow = require('./_createFlow'); + +/** + * Creates a function that returns the result of invoking the given functions + * with the `this` binding of the created function, where each successive + * invocation is supplied the return value of the previous. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Util + * @param {...(Function|Function[])} [funcs] The functions to invoke. + * @returns {Function} Returns the new composite function. + * @see _.flowRight + * @example + * + * function square(n) { + * return n * n; + * } + * + * var addSquare = _.flow([_.add, square]); + * addSquare(1, 2); + * // => 9 + */ +var flow = createFlow(); + +module.exports = flow; diff --git a/node_modules/lodash/flowRight.js b/node_modules/lodash/flowRight.js new file mode 100644 index 0000000..1146141 --- /dev/null +++ b/node_modules/lodash/flowRight.js @@ -0,0 +1,26 @@ +var createFlow = require('./_createFlow'); + +/** + * This method is like `_.flow` except that it creates a function that + * invokes the given functions from right to left. + * + * @static + * @since 3.0.0 + * @memberOf _ + * @category Util + * @param {...(Function|Function[])} [funcs] The functions to invoke. + * @returns {Function} Returns the new composite function. + * @see _.flow + * @example + * + * function square(n) { + * return n * n; + * } + * + * var addSquare = _.flowRight([square, _.add]); + * addSquare(1, 2); + * // => 9 + */ +var flowRight = createFlow(true); + +module.exports = flowRight; diff --git a/node_modules/lodash/forEach.js b/node_modules/lodash/forEach.js new file mode 100644 index 0000000..c64eaa7 --- /dev/null +++ b/node_modules/lodash/forEach.js @@ -0,0 +1,41 @@ +var arrayEach = require('./_arrayEach'), + baseEach = require('./_baseEach'), + castFunction = require('./_castFunction'), + isArray = require('./isArray'); + +/** + * Iterates over elements of `collection` and invokes `iteratee` for each element. + * The iteratee is invoked with three arguments: (value, index|key, collection). + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * **Note:** As with other "Collections" methods, objects with a "length" + * property are iterated like arrays. To avoid this behavior use `_.forIn` + * or `_.forOwn` for object iteration. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @alias each + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + * @see _.forEachRight + * @example + * + * _.forEach([1, 2], function(value) { + * console.log(value); + * }); + * // => Logs `1` then `2`. + * + * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) { + * console.log(key); + * }); + * // => Logs 'a' then 'b' (iteration order is not guaranteed). + */ +function forEach(collection, iteratee) { + var func = isArray(collection) ? arrayEach : baseEach; + return func(collection, castFunction(iteratee)); +} + +module.exports = forEach; diff --git a/node_modules/lodash/forEachRight.js b/node_modules/lodash/forEachRight.js new file mode 100644 index 0000000..7390eba --- /dev/null +++ b/node_modules/lodash/forEachRight.js @@ -0,0 +1,31 @@ +var arrayEachRight = require('./_arrayEachRight'), + baseEachRight = require('./_baseEachRight'), + castFunction = require('./_castFunction'), + isArray = require('./isArray'); + +/** + * This method is like `_.forEach` except that it iterates over elements of + * `collection` from right to left. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @alias eachRight + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + * @see _.forEach + * @example + * + * _.forEachRight([1, 2], function(value) { + * console.log(value); + * }); + * // => Logs `2` then `1`. + */ +function forEachRight(collection, iteratee) { + var func = isArray(collection) ? arrayEachRight : baseEachRight; + return func(collection, castFunction(iteratee)); +} + +module.exports = forEachRight; diff --git a/node_modules/lodash/forIn.js b/node_modules/lodash/forIn.js new file mode 100644 index 0000000..583a596 --- /dev/null +++ b/node_modules/lodash/forIn.js @@ -0,0 +1,39 @@ +var baseFor = require('./_baseFor'), + castFunction = require('./_castFunction'), + keysIn = require('./keysIn'); + +/** + * Iterates over own and inherited enumerable string keyed properties of an + * object and invokes `iteratee` for each property. The iteratee is invoked + * with three arguments: (value, key, object). Iteratee functions may exit + * iteration early by explicitly returning `false`. + * + * @static + * @memberOf _ + * @since 0.3.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Object} Returns `object`. + * @see _.forInRight + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.forIn(new Foo, function(value, key) { + * console.log(key); + * }); + * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed). + */ +function forIn(object, iteratee) { + return object == null + ? object + : baseFor(object, castFunction(iteratee), keysIn); +} + +module.exports = forIn; diff --git a/node_modules/lodash/forInRight.js b/node_modules/lodash/forInRight.js new file mode 100644 index 0000000..4aedf58 --- /dev/null +++ b/node_modules/lodash/forInRight.js @@ -0,0 +1,37 @@ +var baseForRight = require('./_baseForRight'), + castFunction = require('./_castFunction'), + keysIn = require('./keysIn'); + +/** + * This method is like `_.forIn` except that it iterates over properties of + * `object` in the opposite order. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Object} Returns `object`. + * @see _.forIn + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.forInRight(new Foo, function(value, key) { + * console.log(key); + * }); + * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'. + */ +function forInRight(object, iteratee) { + return object == null + ? object + : baseForRight(object, castFunction(iteratee), keysIn); +} + +module.exports = forInRight; diff --git a/node_modules/lodash/forOwn.js b/node_modules/lodash/forOwn.js new file mode 100644 index 0000000..94eed84 --- /dev/null +++ b/node_modules/lodash/forOwn.js @@ -0,0 +1,36 @@ +var baseForOwn = require('./_baseForOwn'), + castFunction = require('./_castFunction'); + +/** + * Iterates over own enumerable string keyed properties of an object and + * invokes `iteratee` for each property. The iteratee is invoked with three + * arguments: (value, key, object). Iteratee functions may exit iteration + * early by explicitly returning `false`. + * + * @static + * @memberOf _ + * @since 0.3.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Object} Returns `object`. + * @see _.forOwnRight + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.forOwn(new Foo, function(value, key) { + * console.log(key); + * }); + * // => Logs 'a' then 'b' (iteration order is not guaranteed). + */ +function forOwn(object, iteratee) { + return object && baseForOwn(object, castFunction(iteratee)); +} + +module.exports = forOwn; diff --git a/node_modules/lodash/forOwnRight.js b/node_modules/lodash/forOwnRight.js new file mode 100644 index 0000000..86f338f --- /dev/null +++ b/node_modules/lodash/forOwnRight.js @@ -0,0 +1,34 @@ +var baseForOwnRight = require('./_baseForOwnRight'), + castFunction = require('./_castFunction'); + +/** + * This method is like `_.forOwn` except that it iterates over properties of + * `object` in the opposite order. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Object} Returns `object`. + * @see _.forOwn + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.forOwnRight(new Foo, function(value, key) { + * console.log(key); + * }); + * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'. + */ +function forOwnRight(object, iteratee) { + return object && baseForOwnRight(object, castFunction(iteratee)); +} + +module.exports = forOwnRight; diff --git a/node_modules/lodash/fp.js b/node_modules/lodash/fp.js new file mode 100644 index 0000000..e372dbb --- /dev/null +++ b/node_modules/lodash/fp.js @@ -0,0 +1,2 @@ +var _ = require('./lodash.min').runInContext(); +module.exports = require('./fp/_baseConvert')(_, _); diff --git a/node_modules/lodash/fp/F.js b/node_modules/lodash/fp/F.js new file mode 100644 index 0000000..a05a63a --- /dev/null +++ b/node_modules/lodash/fp/F.js @@ -0,0 +1 @@ +module.exports = require('./stubFalse'); diff --git a/node_modules/lodash/fp/T.js b/node_modules/lodash/fp/T.js new file mode 100644 index 0000000..e2ba8ea --- /dev/null +++ b/node_modules/lodash/fp/T.js @@ -0,0 +1 @@ +module.exports = require('./stubTrue'); diff --git a/node_modules/lodash/fp/__.js b/node_modules/lodash/fp/__.js new file mode 100644 index 0000000..4af98de --- /dev/null +++ b/node_modules/lodash/fp/__.js @@ -0,0 +1 @@ +module.exports = require('./placeholder'); diff --git a/node_modules/lodash/fp/_baseConvert.js b/node_modules/lodash/fp/_baseConvert.js new file mode 100644 index 0000000..9baf8e1 --- /dev/null +++ b/node_modules/lodash/fp/_baseConvert.js @@ -0,0 +1,569 @@ +var mapping = require('./_mapping'), + fallbackHolder = require('./placeholder'); + +/** Built-in value reference. */ +var push = Array.prototype.push; + +/** + * Creates a function, with an arity of `n`, that invokes `func` with the + * arguments it receives. + * + * @private + * @param {Function} func The function to wrap. + * @param {number} n The arity of the new function. + * @returns {Function} Returns the new function. + */ +function baseArity(func, n) { + return n == 2 + ? function(a, b) { return func.apply(undefined, arguments); } + : function(a) { return func.apply(undefined, arguments); }; +} + +/** + * Creates a function that invokes `func`, with up to `n` arguments, ignoring + * any additional arguments. + * + * @private + * @param {Function} func The function to cap arguments for. + * @param {number} n The arity cap. + * @returns {Function} Returns the new function. + */ +function baseAry(func, n) { + return n == 2 + ? function(a, b) { return func(a, b); } + : function(a) { return func(a); }; +} + +/** + * Creates a clone of `array`. + * + * @private + * @param {Array} array The array to clone. + * @returns {Array} Returns the cloned array. + */ +function cloneArray(array) { + var length = array ? array.length : 0, + result = Array(length); + + while (length--) { + result[length] = array[length]; + } + return result; +} + +/** + * Creates a function that clones a given object using the assignment `func`. + * + * @private + * @param {Function} func The assignment function. + * @returns {Function} Returns the new cloner function. + */ +function createCloner(func) { + return function(object) { + return func({}, object); + }; +} + +/** + * A specialized version of `_.spread` which flattens the spread array into + * the arguments of the invoked `func`. + * + * @private + * @param {Function} func The function to spread arguments over. + * @param {number} start The start position of the spread. + * @returns {Function} Returns the new function. + */ +function flatSpread(func, start) { + return function() { + var length = arguments.length, + lastIndex = length - 1, + args = Array(length); + + while (length--) { + args[length] = arguments[length]; + } + var array = args[start], + otherArgs = args.slice(0, start); + + if (array) { + push.apply(otherArgs, array); + } + if (start != lastIndex) { + push.apply(otherArgs, args.slice(start + 1)); + } + return func.apply(this, otherArgs); + }; +} + +/** + * Creates a function that wraps `func` and uses `cloner` to clone the first + * argument it receives. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} cloner The function to clone arguments. + * @returns {Function} Returns the new immutable function. + */ +function wrapImmutable(func, cloner) { + return function() { + var length = arguments.length; + if (!length) { + return; + } + var args = Array(length); + while (length--) { + args[length] = arguments[length]; + } + var result = args[0] = cloner.apply(undefined, args); + func.apply(undefined, args); + return result; + }; +} + +/** + * The base implementation of `convert` which accepts a `util` object of methods + * required to perform conversions. + * + * @param {Object} util The util object. + * @param {string} name The name of the function to convert. + * @param {Function} func The function to convert. + * @param {Object} [options] The options object. + * @param {boolean} [options.cap=true] Specify capping iteratee arguments. + * @param {boolean} [options.curry=true] Specify currying. + * @param {boolean} [options.fixed=true] Specify fixed arity. + * @param {boolean} [options.immutable=true] Specify immutable operations. + * @param {boolean} [options.rearg=true] Specify rearranging arguments. + * @returns {Function|Object} Returns the converted function or object. + */ +function baseConvert(util, name, func, options) { + var isLib = typeof name == 'function', + isObj = name === Object(name); + + if (isObj) { + options = func; + func = name; + name = undefined; + } + if (func == null) { + throw new TypeError; + } + options || (options = {}); + + var config = { + 'cap': 'cap' in options ? options.cap : true, + 'curry': 'curry' in options ? options.curry : true, + 'fixed': 'fixed' in options ? options.fixed : true, + 'immutable': 'immutable' in options ? options.immutable : true, + 'rearg': 'rearg' in options ? options.rearg : true + }; + + var defaultHolder = isLib ? func : fallbackHolder, + forceCurry = ('curry' in options) && options.curry, + forceFixed = ('fixed' in options) && options.fixed, + forceRearg = ('rearg' in options) && options.rearg, + pristine = isLib ? func.runInContext() : undefined; + + var helpers = isLib ? func : { + 'ary': util.ary, + 'assign': util.assign, + 'clone': util.clone, + 'curry': util.curry, + 'forEach': util.forEach, + 'isArray': util.isArray, + 'isError': util.isError, + 'isFunction': util.isFunction, + 'isWeakMap': util.isWeakMap, + 'iteratee': util.iteratee, + 'keys': util.keys, + 'rearg': util.rearg, + 'toInteger': util.toInteger, + 'toPath': util.toPath + }; + + var ary = helpers.ary, + assign = helpers.assign, + clone = helpers.clone, + curry = helpers.curry, + each = helpers.forEach, + isArray = helpers.isArray, + isError = helpers.isError, + isFunction = helpers.isFunction, + isWeakMap = helpers.isWeakMap, + keys = helpers.keys, + rearg = helpers.rearg, + toInteger = helpers.toInteger, + toPath = helpers.toPath; + + var aryMethodKeys = keys(mapping.aryMethod); + + var wrappers = { + 'castArray': function(castArray) { + return function() { + var value = arguments[0]; + return isArray(value) + ? castArray(cloneArray(value)) + : castArray.apply(undefined, arguments); + }; + }, + 'iteratee': function(iteratee) { + return function() { + var func = arguments[0], + arity = arguments[1], + result = iteratee(func, arity), + length = result.length; + + if (config.cap && typeof arity == 'number') { + arity = arity > 2 ? (arity - 2) : 1; + return (length && length <= arity) ? result : baseAry(result, arity); + } + return result; + }; + }, + 'mixin': function(mixin) { + return function(source) { + var func = this; + if (!isFunction(func)) { + return mixin(func, Object(source)); + } + var pairs = []; + each(keys(source), function(key) { + if (isFunction(source[key])) { + pairs.push([key, func.prototype[key]]); + } + }); + + mixin(func, Object(source)); + + each(pairs, function(pair) { + var value = pair[1]; + if (isFunction(value)) { + func.prototype[pair[0]] = value; + } else { + delete func.prototype[pair[0]]; + } + }); + return func; + }; + }, + 'nthArg': function(nthArg) { + return function(n) { + var arity = n < 0 ? 1 : (toInteger(n) + 1); + return curry(nthArg(n), arity); + }; + }, + 'rearg': function(rearg) { + return function(func, indexes) { + var arity = indexes ? indexes.length : 0; + return curry(rearg(func, indexes), arity); + }; + }, + 'runInContext': function(runInContext) { + return function(context) { + return baseConvert(util, runInContext(context), options); + }; + } + }; + + /*--------------------------------------------------------------------------*/ + + /** + * Casts `func` to a function with an arity capped iteratee if needed. + * + * @private + * @param {string} name The name of the function to inspect. + * @param {Function} func The function to inspect. + * @returns {Function} Returns the cast function. + */ + function castCap(name, func) { + if (config.cap) { + var indexes = mapping.iterateeRearg[name]; + if (indexes) { + return iterateeRearg(func, indexes); + } + var n = !isLib && mapping.iterateeAry[name]; + if (n) { + return iterateeAry(func, n); + } + } + return func; + } + + /** + * Casts `func` to a curried function if needed. + * + * @private + * @param {string} name The name of the function to inspect. + * @param {Function} func The function to inspect. + * @param {number} n The arity of `func`. + * @returns {Function} Returns the cast function. + */ + function castCurry(name, func, n) { + return (forceCurry || (config.curry && n > 1)) + ? curry(func, n) + : func; + } + + /** + * Casts `func` to a fixed arity function if needed. + * + * @private + * @param {string} name The name of the function to inspect. + * @param {Function} func The function to inspect. + * @param {number} n The arity cap. + * @returns {Function} Returns the cast function. + */ + function castFixed(name, func, n) { + if (config.fixed && (forceFixed || !mapping.skipFixed[name])) { + var data = mapping.methodSpread[name], + start = data && data.start; + + return start === undefined ? ary(func, n) : flatSpread(func, start); + } + return func; + } + + /** + * Casts `func` to an rearged function if needed. + * + * @private + * @param {string} name The name of the function to inspect. + * @param {Function} func The function to inspect. + * @param {number} n The arity of `func`. + * @returns {Function} Returns the cast function. + */ + function castRearg(name, func, n) { + return (config.rearg && n > 1 && (forceRearg || !mapping.skipRearg[name])) + ? rearg(func, mapping.methodRearg[name] || mapping.aryRearg[n]) + : func; + } + + /** + * Creates a clone of `object` by `path`. + * + * @private + * @param {Object} object The object to clone. + * @param {Array|string} path The path to clone by. + * @returns {Object} Returns the cloned object. + */ + function cloneByPath(object, path) { + path = toPath(path); + + var index = -1, + length = path.length, + lastIndex = length - 1, + result = clone(Object(object)), + nested = result; + + while (nested != null && ++index < length) { + var key = path[index], + value = nested[key]; + + if (value != null && + !(isFunction(value) || isError(value) || isWeakMap(value))) { + nested[key] = clone(index == lastIndex ? value : Object(value)); + } + nested = nested[key]; + } + return result; + } + + /** + * Converts `lodash` to an immutable auto-curried iteratee-first data-last + * version with conversion `options` applied. + * + * @param {Object} [options] The options object. See `baseConvert` for more details. + * @returns {Function} Returns the converted `lodash`. + */ + function convertLib(options) { + return _.runInContext.convert(options)(undefined); + } + + /** + * Create a converter function for `func` of `name`. + * + * @param {string} name The name of the function to convert. + * @param {Function} func The function to convert. + * @returns {Function} Returns the new converter function. + */ + function createConverter(name, func) { + var realName = mapping.aliasToReal[name] || name, + methodName = mapping.remap[realName] || realName, + oldOptions = options; + + return function(options) { + var newUtil = isLib ? pristine : helpers, + newFunc = isLib ? pristine[methodName] : func, + newOptions = assign(assign({}, oldOptions), options); + + return baseConvert(newUtil, realName, newFunc, newOptions); + }; + } + + /** + * Creates a function that wraps `func` to invoke its iteratee, with up to `n` + * arguments, ignoring any additional arguments. + * + * @private + * @param {Function} func The function to cap iteratee arguments for. + * @param {number} n The arity cap. + * @returns {Function} Returns the new function. + */ + function iterateeAry(func, n) { + return overArg(func, function(func) { + return typeof func == 'function' ? baseAry(func, n) : func; + }); + } + + /** + * Creates a function that wraps `func` to invoke its iteratee with arguments + * arranged according to the specified `indexes` where the argument value at + * the first index is provided as the first argument, the argument value at + * the second index is provided as the second argument, and so on. + * + * @private + * @param {Function} func The function to rearrange iteratee arguments for. + * @param {number[]} indexes The arranged argument indexes. + * @returns {Function} Returns the new function. + */ + function iterateeRearg(func, indexes) { + return overArg(func, function(func) { + var n = indexes.length; + return baseArity(rearg(baseAry(func, n), indexes), n); + }); + } + + /** + * Creates a function that invokes `func` with its first argument transformed. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. + */ + function overArg(func, transform) { + return function() { + var length = arguments.length; + if (!length) { + return func(); + } + var args = Array(length); + while (length--) { + args[length] = arguments[length]; + } + var index = config.rearg ? 0 : (length - 1); + args[index] = transform(args[index]); + return func.apply(undefined, args); + }; + } + + /** + * Creates a function that wraps `func` and applys the conversions + * rules by `name`. + * + * @private + * @param {string} name The name of the function to wrap. + * @param {Function} func The function to wrap. + * @returns {Function} Returns the converted function. + */ + function wrap(name, func, placeholder) { + var result, + realName = mapping.aliasToReal[name] || name, + wrapped = func, + wrapper = wrappers[realName]; + + if (wrapper) { + wrapped = wrapper(func); + } + else if (config.immutable) { + if (mapping.mutate.array[realName]) { + wrapped = wrapImmutable(func, cloneArray); + } + else if (mapping.mutate.object[realName]) { + wrapped = wrapImmutable(func, createCloner(func)); + } + else if (mapping.mutate.set[realName]) { + wrapped = wrapImmutable(func, cloneByPath); + } + } + each(aryMethodKeys, function(aryKey) { + each(mapping.aryMethod[aryKey], function(otherName) { + if (realName == otherName) { + var data = mapping.methodSpread[realName], + afterRearg = data && data.afterRearg; + + result = afterRearg + ? castFixed(realName, castRearg(realName, wrapped, aryKey), aryKey) + : castRearg(realName, castFixed(realName, wrapped, aryKey), aryKey); + + result = castCap(realName, result); + result = castCurry(realName, result, aryKey); + return false; + } + }); + return !result; + }); + + result || (result = wrapped); + if (result == func) { + result = forceCurry ? curry(result, 1) : function() { + return func.apply(this, arguments); + }; + } + result.convert = createConverter(realName, func); + result.placeholder = func.placeholder = placeholder; + + return result; + } + + /*--------------------------------------------------------------------------*/ + + if (!isObj) { + return wrap(name, func, defaultHolder); + } + var _ = func; + + // Convert methods by ary cap. + var pairs = []; + each(aryMethodKeys, function(aryKey) { + each(mapping.aryMethod[aryKey], function(key) { + var func = _[mapping.remap[key] || key]; + if (func) { + pairs.push([key, wrap(key, func, _)]); + } + }); + }); + + // Convert remaining methods. + each(keys(_), function(key) { + var func = _[key]; + if (typeof func == 'function') { + var length = pairs.length; + while (length--) { + if (pairs[length][0] == key) { + return; + } + } + func.convert = createConverter(key, func); + pairs.push([key, func]); + } + }); + + // Assign to `_` leaving `_.prototype` unchanged to allow chaining. + each(pairs, function(pair) { + _[pair[0]] = pair[1]; + }); + + _.convert = convertLib; + _.placeholder = _; + + // Assign aliases. + each(keys(_), function(key) { + each(mapping.realToAlias[key] || [], function(alias) { + _[alias] = _[key]; + }); + }); + + return _; +} + +module.exports = baseConvert; diff --git a/node_modules/lodash/fp/_convertBrowser.js b/node_modules/lodash/fp/_convertBrowser.js new file mode 100644 index 0000000..bde030d --- /dev/null +++ b/node_modules/lodash/fp/_convertBrowser.js @@ -0,0 +1,18 @@ +var baseConvert = require('./_baseConvert'); + +/** + * Converts `lodash` to an immutable auto-curried iteratee-first data-last + * version with conversion `options` applied. + * + * @param {Function} lodash The lodash function to convert. + * @param {Object} [options] The options object. See `baseConvert` for more details. + * @returns {Function} Returns the converted `lodash`. + */ +function browserConvert(lodash, options) { + return baseConvert(lodash, lodash, options); +} + +if (typeof _ == 'function' && typeof _.runInContext == 'function') { + _ = browserConvert(_.runInContext()); +} +module.exports = browserConvert; diff --git a/node_modules/lodash/fp/_falseOptions.js b/node_modules/lodash/fp/_falseOptions.js new file mode 100644 index 0000000..773235e --- /dev/null +++ b/node_modules/lodash/fp/_falseOptions.js @@ -0,0 +1,7 @@ +module.exports = { + 'cap': false, + 'curry': false, + 'fixed': false, + 'immutable': false, + 'rearg': false +}; diff --git a/node_modules/lodash/fp/_mapping.js b/node_modules/lodash/fp/_mapping.js new file mode 100644 index 0000000..a642ec0 --- /dev/null +++ b/node_modules/lodash/fp/_mapping.js @@ -0,0 +1,358 @@ +/** Used to map aliases to their real names. */ +exports.aliasToReal = { + + // Lodash aliases. + 'each': 'forEach', + 'eachRight': 'forEachRight', + 'entries': 'toPairs', + 'entriesIn': 'toPairsIn', + 'extend': 'assignIn', + 'extendAll': 'assignInAll', + 'extendAllWith': 'assignInAllWith', + 'extendWith': 'assignInWith', + 'first': 'head', + + // Methods that are curried variants of others. + 'conforms': 'conformsTo', + 'matches': 'isMatch', + 'property': 'get', + + // Ramda aliases. + '__': 'placeholder', + 'F': 'stubFalse', + 'T': 'stubTrue', + 'all': 'every', + 'allPass': 'overEvery', + 'always': 'constant', + 'any': 'some', + 'anyPass': 'overSome', + 'apply': 'spread', + 'assoc': 'set', + 'assocPath': 'set', + 'complement': 'negate', + 'compose': 'flowRight', + 'contains': 'includes', + 'dissoc': 'unset', + 'dissocPath': 'unset', + 'dropLast': 'dropRight', + 'dropLastWhile': 'dropRightWhile', + 'equals': 'isEqual', + 'identical': 'eq', + 'indexBy': 'keyBy', + 'init': 'initial', + 'invertObj': 'invert', + 'juxt': 'over', + 'omitAll': 'omit', + 'nAry': 'ary', + 'path': 'get', + 'pathEq': 'matchesProperty', + 'pathOr': 'getOr', + 'paths': 'at', + 'pickAll': 'pick', + 'pipe': 'flow', + 'pluck': 'map', + 'prop': 'get', + 'propEq': 'matchesProperty', + 'propOr': 'getOr', + 'props': 'at', + 'symmetricDifference': 'xor', + 'symmetricDifferenceBy': 'xorBy', + 'symmetricDifferenceWith': 'xorWith', + 'takeLast': 'takeRight', + 'takeLastWhile': 'takeRightWhile', + 'unapply': 'rest', + 'unnest': 'flatten', + 'useWith': 'overArgs', + 'where': 'conformsTo', + 'whereEq': 'isMatch', + 'zipObj': 'zipObject' +}; + +/** Used to map ary to method names. */ +exports.aryMethod = { + '1': [ + 'assignAll', 'assignInAll', 'attempt', 'castArray', 'ceil', 'create', + 'curry', 'curryRight', 'defaultsAll', 'defaultsDeepAll', 'floor', 'flow', + 'flowRight', 'fromPairs', 'invert', 'iteratee', 'memoize', 'method', 'mergeAll', + 'methodOf', 'mixin', 'nthArg', 'over', 'overEvery', 'overSome','rest', 'reverse', + 'round', 'runInContext', 'spread', 'template', 'trim', 'trimEnd', 'trimStart', + 'uniqueId', 'words', 'zipAll' + ], + '2': [ + 'add', 'after', 'ary', 'assign', 'assignAllWith', 'assignIn', 'assignInAllWith', + 'at', 'before', 'bind', 'bindAll', 'bindKey', 'chunk', 'cloneDeepWith', + 'cloneWith', 'concat', 'conformsTo', 'countBy', 'curryN', 'curryRightN', + 'debounce', 'defaults', 'defaultsDeep', 'defaultTo', 'delay', 'difference', + 'divide', 'drop', 'dropRight', 'dropRightWhile', 'dropWhile', 'endsWith', 'eq', + 'every', 'filter', 'find', 'findIndex', 'findKey', 'findLast', 'findLastIndex', + 'findLastKey', 'flatMap', 'flatMapDeep', 'flattenDepth', 'forEach', + 'forEachRight', 'forIn', 'forInRight', 'forOwn', 'forOwnRight', 'get', + 'groupBy', 'gt', 'gte', 'has', 'hasIn', 'includes', 'indexOf', 'intersection', + 'invertBy', 'invoke', 'invokeMap', 'isEqual', 'isMatch', 'join', 'keyBy', + 'lastIndexOf', 'lt', 'lte', 'map', 'mapKeys', 'mapValues', 'matchesProperty', + 'maxBy', 'meanBy', 'merge', 'mergeAllWith', 'minBy', 'multiply', 'nth', 'omit', + 'omitBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt', 'partial', + 'partialRight', 'partition', 'pick', 'pickBy', 'propertyOf', 'pull', 'pullAll', + 'pullAt', 'random', 'range', 'rangeRight', 'rearg', 'reject', 'remove', + 'repeat', 'restFrom', 'result', 'sampleSize', 'some', 'sortBy', 'sortedIndex', + 'sortedIndexOf', 'sortedLastIndex', 'sortedLastIndexOf', 'sortedUniqBy', + 'split', 'spreadFrom', 'startsWith', 'subtract', 'sumBy', 'take', 'takeRight', + 'takeRightWhile', 'takeWhile', 'tap', 'throttle', 'thru', 'times', 'trimChars', + 'trimCharsEnd', 'trimCharsStart', 'truncate', 'union', 'uniqBy', 'uniqWith', + 'unset', 'unzipWith', 'without', 'wrap', 'xor', 'zip', 'zipObject', + 'zipObjectDeep' + ], + '3': [ + 'assignInWith', 'assignWith', 'clamp', 'differenceBy', 'differenceWith', + 'findFrom', 'findIndexFrom', 'findLastFrom', 'findLastIndexFrom', 'getOr', + 'includesFrom', 'indexOfFrom', 'inRange', 'intersectionBy', 'intersectionWith', + 'invokeArgs', 'invokeArgsMap', 'isEqualWith', 'isMatchWith', 'flatMapDepth', + 'lastIndexOfFrom', 'mergeWith', 'orderBy', 'padChars', 'padCharsEnd', + 'padCharsStart', 'pullAllBy', 'pullAllWith', 'rangeStep', 'rangeStepRight', + 'reduce', 'reduceRight', 'replace', 'set', 'slice', 'sortedIndexBy', + 'sortedLastIndexBy', 'transform', 'unionBy', 'unionWith', 'update', 'xorBy', + 'xorWith', 'zipWith' + ], + '4': [ + 'fill', 'setWith', 'updateWith' + ] +}; + +/** Used to map ary to rearg configs. */ +exports.aryRearg = { + '2': [1, 0], + '3': [2, 0, 1], + '4': [3, 2, 0, 1] +}; + +/** Used to map method names to their iteratee ary. */ +exports.iterateeAry = { + 'dropRightWhile': 1, + 'dropWhile': 1, + 'every': 1, + 'filter': 1, + 'find': 1, + 'findFrom': 1, + 'findIndex': 1, + 'findIndexFrom': 1, + 'findKey': 1, + 'findLast': 1, + 'findLastFrom': 1, + 'findLastIndex': 1, + 'findLastIndexFrom': 1, + 'findLastKey': 1, + 'flatMap': 1, + 'flatMapDeep': 1, + 'flatMapDepth': 1, + 'forEach': 1, + 'forEachRight': 1, + 'forIn': 1, + 'forInRight': 1, + 'forOwn': 1, + 'forOwnRight': 1, + 'map': 1, + 'mapKeys': 1, + 'mapValues': 1, + 'partition': 1, + 'reduce': 2, + 'reduceRight': 2, + 'reject': 1, + 'remove': 1, + 'some': 1, + 'takeRightWhile': 1, + 'takeWhile': 1, + 'times': 1, + 'transform': 2 +}; + +/** Used to map method names to iteratee rearg configs. */ +exports.iterateeRearg = { + 'mapKeys': [1], + 'reduceRight': [1, 0] +}; + +/** Used to map method names to rearg configs. */ +exports.methodRearg = { + 'assignInAllWith': [1, 0], + 'assignInWith': [1, 2, 0], + 'assignAllWith': [1, 0], + 'assignWith': [1, 2, 0], + 'differenceBy': [1, 2, 0], + 'differenceWith': [1, 2, 0], + 'getOr': [2, 1, 0], + 'intersectionBy': [1, 2, 0], + 'intersectionWith': [1, 2, 0], + 'isEqualWith': [1, 2, 0], + 'isMatchWith': [2, 1, 0], + 'mergeAllWith': [1, 0], + 'mergeWith': [1, 2, 0], + 'padChars': [2, 1, 0], + 'padCharsEnd': [2, 1, 0], + 'padCharsStart': [2, 1, 0], + 'pullAllBy': [2, 1, 0], + 'pullAllWith': [2, 1, 0], + 'rangeStep': [1, 2, 0], + 'rangeStepRight': [1, 2, 0], + 'setWith': [3, 1, 2, 0], + 'sortedIndexBy': [2, 1, 0], + 'sortedLastIndexBy': [2, 1, 0], + 'unionBy': [1, 2, 0], + 'unionWith': [1, 2, 0], + 'updateWith': [3, 1, 2, 0], + 'xorBy': [1, 2, 0], + 'xorWith': [1, 2, 0], + 'zipWith': [1, 2, 0] +}; + +/** Used to map method names to spread configs. */ +exports.methodSpread = { + 'assignAll': { 'start': 0 }, + 'assignAllWith': { 'start': 0 }, + 'assignInAll': { 'start': 0 }, + 'assignInAllWith': { 'start': 0 }, + 'defaultsAll': { 'start': 0 }, + 'defaultsDeepAll': { 'start': 0 }, + 'invokeArgs': { 'start': 2 }, + 'invokeArgsMap': { 'start': 2 }, + 'mergeAll': { 'start': 0 }, + 'mergeAllWith': { 'start': 0 }, + 'partial': { 'start': 1 }, + 'partialRight': { 'start': 1 }, + 'without': { 'start': 1 }, + 'zipAll': { 'start': 0 } +}; + +/** Used to identify methods which mutate arrays or objects. */ +exports.mutate = { + 'array': { + 'fill': true, + 'pull': true, + 'pullAll': true, + 'pullAllBy': true, + 'pullAllWith': true, + 'pullAt': true, + 'remove': true, + 'reverse': true + }, + 'object': { + 'assign': true, + 'assignAll': true, + 'assignAllWith': true, + 'assignIn': true, + 'assignInAll': true, + 'assignInAllWith': true, + 'assignInWith': true, + 'assignWith': true, + 'defaults': true, + 'defaultsAll': true, + 'defaultsDeep': true, + 'defaultsDeepAll': true, + 'merge': true, + 'mergeAll': true, + 'mergeAllWith': true, + 'mergeWith': true, + }, + 'set': { + 'set': true, + 'setWith': true, + 'unset': true, + 'update': true, + 'updateWith': true + } +}; + +/** Used to map real names to their aliases. */ +exports.realToAlias = (function() { + var hasOwnProperty = Object.prototype.hasOwnProperty, + object = exports.aliasToReal, + result = {}; + + for (var key in object) { + var value = object[key]; + if (hasOwnProperty.call(result, value)) { + result[value].push(key); + } else { + result[value] = [key]; + } + } + return result; +}()); + +/** Used to map method names to other names. */ +exports.remap = { + 'assignAll': 'assign', + 'assignAllWith': 'assignWith', + 'assignInAll': 'assignIn', + 'assignInAllWith': 'assignInWith', + 'curryN': 'curry', + 'curryRightN': 'curryRight', + 'defaultsAll': 'defaults', + 'defaultsDeepAll': 'defaultsDeep', + 'findFrom': 'find', + 'findIndexFrom': 'findIndex', + 'findLastFrom': 'findLast', + 'findLastIndexFrom': 'findLastIndex', + 'getOr': 'get', + 'includesFrom': 'includes', + 'indexOfFrom': 'indexOf', + 'invokeArgs': 'invoke', + 'invokeArgsMap': 'invokeMap', + 'lastIndexOfFrom': 'lastIndexOf', + 'mergeAll': 'merge', + 'mergeAllWith': 'mergeWith', + 'padChars': 'pad', + 'padCharsEnd': 'padEnd', + 'padCharsStart': 'padStart', + 'propertyOf': 'get', + 'rangeStep': 'range', + 'rangeStepRight': 'rangeRight', + 'restFrom': 'rest', + 'spreadFrom': 'spread', + 'trimChars': 'trim', + 'trimCharsEnd': 'trimEnd', + 'trimCharsStart': 'trimStart', + 'zipAll': 'zip' +}; + +/** Used to track methods that skip fixing their arity. */ +exports.skipFixed = { + 'castArray': true, + 'flow': true, + 'flowRight': true, + 'iteratee': true, + 'mixin': true, + 'rearg': true, + 'runInContext': true +}; + +/** Used to track methods that skip rearranging arguments. */ +exports.skipRearg = { + 'add': true, + 'assign': true, + 'assignIn': true, + 'bind': true, + 'bindKey': true, + 'concat': true, + 'difference': true, + 'divide': true, + 'eq': true, + 'gt': true, + 'gte': true, + 'isEqual': true, + 'lt': true, + 'lte': true, + 'matchesProperty': true, + 'merge': true, + 'multiply': true, + 'overArgs': true, + 'partial': true, + 'partialRight': true, + 'propertyOf': true, + 'random': true, + 'range': true, + 'rangeRight': true, + 'subtract': true, + 'zip': true, + 'zipObject': true, + 'zipObjectDeep': true +}; diff --git a/node_modules/lodash/fp/_util.js b/node_modules/lodash/fp/_util.js new file mode 100644 index 0000000..1dbf36f --- /dev/null +++ b/node_modules/lodash/fp/_util.js @@ -0,0 +1,16 @@ +module.exports = { + 'ary': require('../ary'), + 'assign': require('../_baseAssign'), + 'clone': require('../clone'), + 'curry': require('../curry'), + 'forEach': require('../_arrayEach'), + 'isArray': require('../isArray'), + 'isError': require('../isError'), + 'isFunction': require('../isFunction'), + 'isWeakMap': require('../isWeakMap'), + 'iteratee': require('../iteratee'), + 'keys': require('../_baseKeys'), + 'rearg': require('../rearg'), + 'toInteger': require('../toInteger'), + 'toPath': require('../toPath') +}; diff --git a/node_modules/lodash/fp/add.js b/node_modules/lodash/fp/add.js new file mode 100644 index 0000000..816eeec --- /dev/null +++ b/node_modules/lodash/fp/add.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('add', require('../add')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/after.js b/node_modules/lodash/fp/after.js new file mode 100644 index 0000000..21a0167 --- /dev/null +++ b/node_modules/lodash/fp/after.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('after', require('../after')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/all.js b/node_modules/lodash/fp/all.js new file mode 100644 index 0000000..d0839f7 --- /dev/null +++ b/node_modules/lodash/fp/all.js @@ -0,0 +1 @@ +module.exports = require('./every'); diff --git a/node_modules/lodash/fp/allPass.js b/node_modules/lodash/fp/allPass.js new file mode 100644 index 0000000..79b73ef --- /dev/null +++ b/node_modules/lodash/fp/allPass.js @@ -0,0 +1 @@ +module.exports = require('./overEvery'); diff --git a/node_modules/lodash/fp/always.js b/node_modules/lodash/fp/always.js new file mode 100644 index 0000000..9887703 --- /dev/null +++ b/node_modules/lodash/fp/always.js @@ -0,0 +1 @@ +module.exports = require('./constant'); diff --git a/node_modules/lodash/fp/any.js b/node_modules/lodash/fp/any.js new file mode 100644 index 0000000..900ac25 --- /dev/null +++ b/node_modules/lodash/fp/any.js @@ -0,0 +1 @@ +module.exports = require('./some'); diff --git a/node_modules/lodash/fp/anyPass.js b/node_modules/lodash/fp/anyPass.js new file mode 100644 index 0000000..2774ab3 --- /dev/null +++ b/node_modules/lodash/fp/anyPass.js @@ -0,0 +1 @@ +module.exports = require('./overSome'); diff --git a/node_modules/lodash/fp/apply.js b/node_modules/lodash/fp/apply.js new file mode 100644 index 0000000..2b75712 --- /dev/null +++ b/node_modules/lodash/fp/apply.js @@ -0,0 +1 @@ +module.exports = require('./spread'); diff --git a/node_modules/lodash/fp/array.js b/node_modules/lodash/fp/array.js new file mode 100644 index 0000000..fe939c2 --- /dev/null +++ b/node_modules/lodash/fp/array.js @@ -0,0 +1,2 @@ +var convert = require('./convert'); +module.exports = convert(require('../array')); diff --git a/node_modules/lodash/fp/ary.js b/node_modules/lodash/fp/ary.js new file mode 100644 index 0000000..8edf187 --- /dev/null +++ b/node_modules/lodash/fp/ary.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('ary', require('../ary')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/assign.js b/node_modules/lodash/fp/assign.js new file mode 100644 index 0000000..23f47af --- /dev/null +++ b/node_modules/lodash/fp/assign.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('assign', require('../assign')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/assignAll.js b/node_modules/lodash/fp/assignAll.js new file mode 100644 index 0000000..b1d36c7 --- /dev/null +++ b/node_modules/lodash/fp/assignAll.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('assignAll', require('../assign')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/assignAllWith.js b/node_modules/lodash/fp/assignAllWith.js new file mode 100644 index 0000000..21e836e --- /dev/null +++ b/node_modules/lodash/fp/assignAllWith.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('assignAllWith', require('../assignWith')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/assignIn.js b/node_modules/lodash/fp/assignIn.js new file mode 100644 index 0000000..6e7c65f --- /dev/null +++ b/node_modules/lodash/fp/assignIn.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('assignIn', require('../assignIn')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/assignInAll.js b/node_modules/lodash/fp/assignInAll.js new file mode 100644 index 0000000..7ba75db --- /dev/null +++ b/node_modules/lodash/fp/assignInAll.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('assignInAll', require('../assignIn')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/assignInAllWith.js b/node_modules/lodash/fp/assignInAllWith.js new file mode 100644 index 0000000..e766903 --- /dev/null +++ b/node_modules/lodash/fp/assignInAllWith.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('assignInAllWith', require('../assignInWith')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/assignInWith.js b/node_modules/lodash/fp/assignInWith.js new file mode 100644 index 0000000..acb5923 --- /dev/null +++ b/node_modules/lodash/fp/assignInWith.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('assignInWith', require('../assignInWith')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/assignWith.js b/node_modules/lodash/fp/assignWith.js new file mode 100644 index 0000000..eb92521 --- /dev/null +++ b/node_modules/lodash/fp/assignWith.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('assignWith', require('../assignWith')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/assoc.js b/node_modules/lodash/fp/assoc.js new file mode 100644 index 0000000..7648820 --- /dev/null +++ b/node_modules/lodash/fp/assoc.js @@ -0,0 +1 @@ +module.exports = require('./set'); diff --git a/node_modules/lodash/fp/assocPath.js b/node_modules/lodash/fp/assocPath.js new file mode 100644 index 0000000..7648820 --- /dev/null +++ b/node_modules/lodash/fp/assocPath.js @@ -0,0 +1 @@ +module.exports = require('./set'); diff --git a/node_modules/lodash/fp/at.js b/node_modules/lodash/fp/at.js new file mode 100644 index 0000000..cc39d25 --- /dev/null +++ b/node_modules/lodash/fp/at.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('at', require('../at')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/attempt.js b/node_modules/lodash/fp/attempt.js new file mode 100644 index 0000000..26ca42e --- /dev/null +++ b/node_modules/lodash/fp/attempt.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('attempt', require('../attempt')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/before.js b/node_modules/lodash/fp/before.js new file mode 100644 index 0000000..7a2de65 --- /dev/null +++ b/node_modules/lodash/fp/before.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('before', require('../before')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/bind.js b/node_modules/lodash/fp/bind.js new file mode 100644 index 0000000..5cbe4f3 --- /dev/null +++ b/node_modules/lodash/fp/bind.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('bind', require('../bind')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/bindAll.js b/node_modules/lodash/fp/bindAll.js new file mode 100644 index 0000000..6b4a4a0 --- /dev/null +++ b/node_modules/lodash/fp/bindAll.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('bindAll', require('../bindAll')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/bindKey.js b/node_modules/lodash/fp/bindKey.js new file mode 100644 index 0000000..6a46c6b --- /dev/null +++ b/node_modules/lodash/fp/bindKey.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('bindKey', require('../bindKey')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/camelCase.js b/node_modules/lodash/fp/camelCase.js new file mode 100644 index 0000000..87b77b4 --- /dev/null +++ b/node_modules/lodash/fp/camelCase.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('camelCase', require('../camelCase'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/capitalize.js b/node_modules/lodash/fp/capitalize.js new file mode 100644 index 0000000..cac74e1 --- /dev/null +++ b/node_modules/lodash/fp/capitalize.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('capitalize', require('../capitalize'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/castArray.js b/node_modules/lodash/fp/castArray.js new file mode 100644 index 0000000..8681c09 --- /dev/null +++ b/node_modules/lodash/fp/castArray.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('castArray', require('../castArray')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/ceil.js b/node_modules/lodash/fp/ceil.js new file mode 100644 index 0000000..f416b72 --- /dev/null +++ b/node_modules/lodash/fp/ceil.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('ceil', require('../ceil')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/chain.js b/node_modules/lodash/fp/chain.js new file mode 100644 index 0000000..604fe39 --- /dev/null +++ b/node_modules/lodash/fp/chain.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('chain', require('../chain'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/chunk.js b/node_modules/lodash/fp/chunk.js new file mode 100644 index 0000000..871ab08 --- /dev/null +++ b/node_modules/lodash/fp/chunk.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('chunk', require('../chunk')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/clamp.js b/node_modules/lodash/fp/clamp.js new file mode 100644 index 0000000..3b06c01 --- /dev/null +++ b/node_modules/lodash/fp/clamp.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('clamp', require('../clamp')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/clone.js b/node_modules/lodash/fp/clone.js new file mode 100644 index 0000000..cadb59c --- /dev/null +++ b/node_modules/lodash/fp/clone.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('clone', require('../clone'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/cloneDeep.js b/node_modules/lodash/fp/cloneDeep.js new file mode 100644 index 0000000..a6107aa --- /dev/null +++ b/node_modules/lodash/fp/cloneDeep.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('cloneDeep', require('../cloneDeep'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/cloneDeepWith.js b/node_modules/lodash/fp/cloneDeepWith.js new file mode 100644 index 0000000..6f01e44 --- /dev/null +++ b/node_modules/lodash/fp/cloneDeepWith.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('cloneDeepWith', require('../cloneDeepWith')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/cloneWith.js b/node_modules/lodash/fp/cloneWith.js new file mode 100644 index 0000000..aa88578 --- /dev/null +++ b/node_modules/lodash/fp/cloneWith.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('cloneWith', require('../cloneWith')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/collection.js b/node_modules/lodash/fp/collection.js new file mode 100644 index 0000000..fc8b328 --- /dev/null +++ b/node_modules/lodash/fp/collection.js @@ -0,0 +1,2 @@ +var convert = require('./convert'); +module.exports = convert(require('../collection')); diff --git a/node_modules/lodash/fp/commit.js b/node_modules/lodash/fp/commit.js new file mode 100644 index 0000000..130a894 --- /dev/null +++ b/node_modules/lodash/fp/commit.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('commit', require('../commit'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/compact.js b/node_modules/lodash/fp/compact.js new file mode 100644 index 0000000..ce8f7a1 --- /dev/null +++ b/node_modules/lodash/fp/compact.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('compact', require('../compact'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/complement.js b/node_modules/lodash/fp/complement.js new file mode 100644 index 0000000..93eb462 --- /dev/null +++ b/node_modules/lodash/fp/complement.js @@ -0,0 +1 @@ +module.exports = require('./negate'); diff --git a/node_modules/lodash/fp/compose.js b/node_modules/lodash/fp/compose.js new file mode 100644 index 0000000..1954e94 --- /dev/null +++ b/node_modules/lodash/fp/compose.js @@ -0,0 +1 @@ +module.exports = require('./flowRight'); diff --git a/node_modules/lodash/fp/concat.js b/node_modules/lodash/fp/concat.js new file mode 100644 index 0000000..e59346a --- /dev/null +++ b/node_modules/lodash/fp/concat.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('concat', require('../concat')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/cond.js b/node_modules/lodash/fp/cond.js new file mode 100644 index 0000000..6a0120e --- /dev/null +++ b/node_modules/lodash/fp/cond.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('cond', require('../cond'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/conforms.js b/node_modules/lodash/fp/conforms.js new file mode 100644 index 0000000..3247f64 --- /dev/null +++ b/node_modules/lodash/fp/conforms.js @@ -0,0 +1 @@ +module.exports = require('./conformsTo'); diff --git a/node_modules/lodash/fp/conformsTo.js b/node_modules/lodash/fp/conformsTo.js new file mode 100644 index 0000000..aa7f41e --- /dev/null +++ b/node_modules/lodash/fp/conformsTo.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('conformsTo', require('../conformsTo')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/constant.js b/node_modules/lodash/fp/constant.js new file mode 100644 index 0000000..9e406fc --- /dev/null +++ b/node_modules/lodash/fp/constant.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('constant', require('../constant'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/contains.js b/node_modules/lodash/fp/contains.js new file mode 100644 index 0000000..594722a --- /dev/null +++ b/node_modules/lodash/fp/contains.js @@ -0,0 +1 @@ +module.exports = require('./includes'); diff --git a/node_modules/lodash/fp/convert.js b/node_modules/lodash/fp/convert.js new file mode 100644 index 0000000..4795dc4 --- /dev/null +++ b/node_modules/lodash/fp/convert.js @@ -0,0 +1,18 @@ +var baseConvert = require('./_baseConvert'), + util = require('./_util'); + +/** + * Converts `func` of `name` to an immutable auto-curried iteratee-first data-last + * version with conversion `options` applied. If `name` is an object its methods + * will be converted. + * + * @param {string} name The name of the function to wrap. + * @param {Function} [func] The function to wrap. + * @param {Object} [options] The options object. See `baseConvert` for more details. + * @returns {Function|Object} Returns the converted function or object. + */ +function convert(name, func, options) { + return baseConvert(util, name, func, options); +} + +module.exports = convert; diff --git a/node_modules/lodash/fp/countBy.js b/node_modules/lodash/fp/countBy.js new file mode 100644 index 0000000..dfa4643 --- /dev/null +++ b/node_modules/lodash/fp/countBy.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('countBy', require('../countBy')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/create.js b/node_modules/lodash/fp/create.js new file mode 100644 index 0000000..752025f --- /dev/null +++ b/node_modules/lodash/fp/create.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('create', require('../create')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/curry.js b/node_modules/lodash/fp/curry.js new file mode 100644 index 0000000..b0b4168 --- /dev/null +++ b/node_modules/lodash/fp/curry.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('curry', require('../curry')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/curryN.js b/node_modules/lodash/fp/curryN.js new file mode 100644 index 0000000..2ae7d00 --- /dev/null +++ b/node_modules/lodash/fp/curryN.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('curryN', require('../curry')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/curryRight.js b/node_modules/lodash/fp/curryRight.js new file mode 100644 index 0000000..cb619eb --- /dev/null +++ b/node_modules/lodash/fp/curryRight.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('curryRight', require('../curryRight')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/curryRightN.js b/node_modules/lodash/fp/curryRightN.js new file mode 100644 index 0000000..2495afc --- /dev/null +++ b/node_modules/lodash/fp/curryRightN.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('curryRightN', require('../curryRight')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/date.js b/node_modules/lodash/fp/date.js new file mode 100644 index 0000000..82cb952 --- /dev/null +++ b/node_modules/lodash/fp/date.js @@ -0,0 +1,2 @@ +var convert = require('./convert'); +module.exports = convert(require('../date')); diff --git a/node_modules/lodash/fp/debounce.js b/node_modules/lodash/fp/debounce.js new file mode 100644 index 0000000..2612229 --- /dev/null +++ b/node_modules/lodash/fp/debounce.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('debounce', require('../debounce')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/deburr.js b/node_modules/lodash/fp/deburr.js new file mode 100644 index 0000000..96463ab --- /dev/null +++ b/node_modules/lodash/fp/deburr.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('deburr', require('../deburr'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/defaultTo.js b/node_modules/lodash/fp/defaultTo.js new file mode 100644 index 0000000..d6b52a4 --- /dev/null +++ b/node_modules/lodash/fp/defaultTo.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('defaultTo', require('../defaultTo')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/defaults.js b/node_modules/lodash/fp/defaults.js new file mode 100644 index 0000000..e1a8e6e --- /dev/null +++ b/node_modules/lodash/fp/defaults.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('defaults', require('../defaults')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/defaultsAll.js b/node_modules/lodash/fp/defaultsAll.js new file mode 100644 index 0000000..238fcc3 --- /dev/null +++ b/node_modules/lodash/fp/defaultsAll.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('defaultsAll', require('../defaults')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/defaultsDeep.js b/node_modules/lodash/fp/defaultsDeep.js new file mode 100644 index 0000000..1f172ff --- /dev/null +++ b/node_modules/lodash/fp/defaultsDeep.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('defaultsDeep', require('../defaultsDeep')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/defaultsDeepAll.js b/node_modules/lodash/fp/defaultsDeepAll.js new file mode 100644 index 0000000..6835f2f --- /dev/null +++ b/node_modules/lodash/fp/defaultsDeepAll.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('defaultsDeepAll', require('../defaultsDeep')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/defer.js b/node_modules/lodash/fp/defer.js new file mode 100644 index 0000000..ec7990f --- /dev/null +++ b/node_modules/lodash/fp/defer.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('defer', require('../defer'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/delay.js b/node_modules/lodash/fp/delay.js new file mode 100644 index 0000000..556dbd5 --- /dev/null +++ b/node_modules/lodash/fp/delay.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('delay', require('../delay')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/difference.js b/node_modules/lodash/fp/difference.js new file mode 100644 index 0000000..2d03765 --- /dev/null +++ b/node_modules/lodash/fp/difference.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('difference', require('../difference')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/differenceBy.js b/node_modules/lodash/fp/differenceBy.js new file mode 100644 index 0000000..2f91491 --- /dev/null +++ b/node_modules/lodash/fp/differenceBy.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('differenceBy', require('../differenceBy')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/differenceWith.js b/node_modules/lodash/fp/differenceWith.js new file mode 100644 index 0000000..bcf5ad2 --- /dev/null +++ b/node_modules/lodash/fp/differenceWith.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('differenceWith', require('../differenceWith')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/dissoc.js b/node_modules/lodash/fp/dissoc.js new file mode 100644 index 0000000..7ec7be1 --- /dev/null +++ b/node_modules/lodash/fp/dissoc.js @@ -0,0 +1 @@ +module.exports = require('./unset'); diff --git a/node_modules/lodash/fp/dissocPath.js b/node_modules/lodash/fp/dissocPath.js new file mode 100644 index 0000000..7ec7be1 --- /dev/null +++ b/node_modules/lodash/fp/dissocPath.js @@ -0,0 +1 @@ +module.exports = require('./unset'); diff --git a/node_modules/lodash/fp/divide.js b/node_modules/lodash/fp/divide.js new file mode 100644 index 0000000..82048c5 --- /dev/null +++ b/node_modules/lodash/fp/divide.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('divide', require('../divide')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/drop.js b/node_modules/lodash/fp/drop.js new file mode 100644 index 0000000..2fa9b4f --- /dev/null +++ b/node_modules/lodash/fp/drop.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('drop', require('../drop')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/dropLast.js b/node_modules/lodash/fp/dropLast.js new file mode 100644 index 0000000..174e525 --- /dev/null +++ b/node_modules/lodash/fp/dropLast.js @@ -0,0 +1 @@ +module.exports = require('./dropRight'); diff --git a/node_modules/lodash/fp/dropLastWhile.js b/node_modules/lodash/fp/dropLastWhile.js new file mode 100644 index 0000000..be2a9d2 --- /dev/null +++ b/node_modules/lodash/fp/dropLastWhile.js @@ -0,0 +1 @@ +module.exports = require('./dropRightWhile'); diff --git a/node_modules/lodash/fp/dropRight.js b/node_modules/lodash/fp/dropRight.js new file mode 100644 index 0000000..e98881f --- /dev/null +++ b/node_modules/lodash/fp/dropRight.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('dropRight', require('../dropRight')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/dropRightWhile.js b/node_modules/lodash/fp/dropRightWhile.js new file mode 100644 index 0000000..cacaa70 --- /dev/null +++ b/node_modules/lodash/fp/dropRightWhile.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('dropRightWhile', require('../dropRightWhile')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/dropWhile.js b/node_modules/lodash/fp/dropWhile.js new file mode 100644 index 0000000..285f864 --- /dev/null +++ b/node_modules/lodash/fp/dropWhile.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('dropWhile', require('../dropWhile')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/each.js b/node_modules/lodash/fp/each.js new file mode 100644 index 0000000..8800f42 --- /dev/null +++ b/node_modules/lodash/fp/each.js @@ -0,0 +1 @@ +module.exports = require('./forEach'); diff --git a/node_modules/lodash/fp/eachRight.js b/node_modules/lodash/fp/eachRight.js new file mode 100644 index 0000000..3252b2a --- /dev/null +++ b/node_modules/lodash/fp/eachRight.js @@ -0,0 +1 @@ +module.exports = require('./forEachRight'); diff --git a/node_modules/lodash/fp/endsWith.js b/node_modules/lodash/fp/endsWith.js new file mode 100644 index 0000000..17dc2a4 --- /dev/null +++ b/node_modules/lodash/fp/endsWith.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('endsWith', require('../endsWith')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/entries.js b/node_modules/lodash/fp/entries.js new file mode 100644 index 0000000..7a88df2 --- /dev/null +++ b/node_modules/lodash/fp/entries.js @@ -0,0 +1 @@ +module.exports = require('./toPairs'); diff --git a/node_modules/lodash/fp/entriesIn.js b/node_modules/lodash/fp/entriesIn.js new file mode 100644 index 0000000..f6c6331 --- /dev/null +++ b/node_modules/lodash/fp/entriesIn.js @@ -0,0 +1 @@ +module.exports = require('./toPairsIn'); diff --git a/node_modules/lodash/fp/eq.js b/node_modules/lodash/fp/eq.js new file mode 100644 index 0000000..9a3d21b --- /dev/null +++ b/node_modules/lodash/fp/eq.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('eq', require('../eq')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/equals.js b/node_modules/lodash/fp/equals.js new file mode 100644 index 0000000..e6a5ce0 --- /dev/null +++ b/node_modules/lodash/fp/equals.js @@ -0,0 +1 @@ +module.exports = require('./isEqual'); diff --git a/node_modules/lodash/fp/escape.js b/node_modules/lodash/fp/escape.js new file mode 100644 index 0000000..52c1fbb --- /dev/null +++ b/node_modules/lodash/fp/escape.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('escape', require('../escape'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/escapeRegExp.js b/node_modules/lodash/fp/escapeRegExp.js new file mode 100644 index 0000000..369b2ef --- /dev/null +++ b/node_modules/lodash/fp/escapeRegExp.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('escapeRegExp', require('../escapeRegExp'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/every.js b/node_modules/lodash/fp/every.js new file mode 100644 index 0000000..95c2776 --- /dev/null +++ b/node_modules/lodash/fp/every.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('every', require('../every')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/extend.js b/node_modules/lodash/fp/extend.js new file mode 100644 index 0000000..e00166c --- /dev/null +++ b/node_modules/lodash/fp/extend.js @@ -0,0 +1 @@ +module.exports = require('./assignIn'); diff --git a/node_modules/lodash/fp/extendAll.js b/node_modules/lodash/fp/extendAll.js new file mode 100644 index 0000000..cc55b64 --- /dev/null +++ b/node_modules/lodash/fp/extendAll.js @@ -0,0 +1 @@ +module.exports = require('./assignInAll'); diff --git a/node_modules/lodash/fp/extendAllWith.js b/node_modules/lodash/fp/extendAllWith.js new file mode 100644 index 0000000..6679d20 --- /dev/null +++ b/node_modules/lodash/fp/extendAllWith.js @@ -0,0 +1 @@ +module.exports = require('./assignInAllWith'); diff --git a/node_modules/lodash/fp/extendWith.js b/node_modules/lodash/fp/extendWith.js new file mode 100644 index 0000000..dbdcb3b --- /dev/null +++ b/node_modules/lodash/fp/extendWith.js @@ -0,0 +1 @@ +module.exports = require('./assignInWith'); diff --git a/node_modules/lodash/fp/fill.js b/node_modules/lodash/fp/fill.js new file mode 100644 index 0000000..b2d47e8 --- /dev/null +++ b/node_modules/lodash/fp/fill.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('fill', require('../fill')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/filter.js b/node_modules/lodash/fp/filter.js new file mode 100644 index 0000000..796d501 --- /dev/null +++ b/node_modules/lodash/fp/filter.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('filter', require('../filter')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/find.js b/node_modules/lodash/fp/find.js new file mode 100644 index 0000000..f805d33 --- /dev/null +++ b/node_modules/lodash/fp/find.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('find', require('../find')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/findFrom.js b/node_modules/lodash/fp/findFrom.js new file mode 100644 index 0000000..da8275e --- /dev/null +++ b/node_modules/lodash/fp/findFrom.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('findFrom', require('../find')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/findIndex.js b/node_modules/lodash/fp/findIndex.js new file mode 100644 index 0000000..8c15fd1 --- /dev/null +++ b/node_modules/lodash/fp/findIndex.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('findIndex', require('../findIndex')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/findIndexFrom.js b/node_modules/lodash/fp/findIndexFrom.js new file mode 100644 index 0000000..32e98cb --- /dev/null +++ b/node_modules/lodash/fp/findIndexFrom.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('findIndexFrom', require('../findIndex')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/findKey.js b/node_modules/lodash/fp/findKey.js new file mode 100644 index 0000000..475bcfa --- /dev/null +++ b/node_modules/lodash/fp/findKey.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('findKey', require('../findKey')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/findLast.js b/node_modules/lodash/fp/findLast.js new file mode 100644 index 0000000..093fe94 --- /dev/null +++ b/node_modules/lodash/fp/findLast.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('findLast', require('../findLast')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/findLastFrom.js b/node_modules/lodash/fp/findLastFrom.js new file mode 100644 index 0000000..76c38fb --- /dev/null +++ b/node_modules/lodash/fp/findLastFrom.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('findLastFrom', require('../findLast')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/findLastIndex.js b/node_modules/lodash/fp/findLastIndex.js new file mode 100644 index 0000000..36986df --- /dev/null +++ b/node_modules/lodash/fp/findLastIndex.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('findLastIndex', require('../findLastIndex')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/findLastIndexFrom.js b/node_modules/lodash/fp/findLastIndexFrom.js new file mode 100644 index 0000000..34c8176 --- /dev/null +++ b/node_modules/lodash/fp/findLastIndexFrom.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('findLastIndexFrom', require('../findLastIndex')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/findLastKey.js b/node_modules/lodash/fp/findLastKey.js new file mode 100644 index 0000000..5f81b60 --- /dev/null +++ b/node_modules/lodash/fp/findLastKey.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('findLastKey', require('../findLastKey')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/first.js b/node_modules/lodash/fp/first.js new file mode 100644 index 0000000..53f4ad1 --- /dev/null +++ b/node_modules/lodash/fp/first.js @@ -0,0 +1 @@ +module.exports = require('./head'); diff --git a/node_modules/lodash/fp/flatMap.js b/node_modules/lodash/fp/flatMap.js new file mode 100644 index 0000000..d01dc4d --- /dev/null +++ b/node_modules/lodash/fp/flatMap.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('flatMap', require('../flatMap')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/flatMapDeep.js b/node_modules/lodash/fp/flatMapDeep.js new file mode 100644 index 0000000..569c42e --- /dev/null +++ b/node_modules/lodash/fp/flatMapDeep.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('flatMapDeep', require('../flatMapDeep')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/flatMapDepth.js b/node_modules/lodash/fp/flatMapDepth.js new file mode 100644 index 0000000..6eb68fd --- /dev/null +++ b/node_modules/lodash/fp/flatMapDepth.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('flatMapDepth', require('../flatMapDepth')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/flatten.js b/node_modules/lodash/fp/flatten.js new file mode 100644 index 0000000..30425d8 --- /dev/null +++ b/node_modules/lodash/fp/flatten.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('flatten', require('../flatten'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/flattenDeep.js b/node_modules/lodash/fp/flattenDeep.js new file mode 100644 index 0000000..aed5db2 --- /dev/null +++ b/node_modules/lodash/fp/flattenDeep.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('flattenDeep', require('../flattenDeep'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/flattenDepth.js b/node_modules/lodash/fp/flattenDepth.js new file mode 100644 index 0000000..ad65e37 --- /dev/null +++ b/node_modules/lodash/fp/flattenDepth.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('flattenDepth', require('../flattenDepth')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/flip.js b/node_modules/lodash/fp/flip.js new file mode 100644 index 0000000..0547e7b --- /dev/null +++ b/node_modules/lodash/fp/flip.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('flip', require('../flip'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/floor.js b/node_modules/lodash/fp/floor.js new file mode 100644 index 0000000..a6cf335 --- /dev/null +++ b/node_modules/lodash/fp/floor.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('floor', require('../floor')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/flow.js b/node_modules/lodash/fp/flow.js new file mode 100644 index 0000000..cd83677 --- /dev/null +++ b/node_modules/lodash/fp/flow.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('flow', require('../flow')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/flowRight.js b/node_modules/lodash/fp/flowRight.js new file mode 100644 index 0000000..972a5b9 --- /dev/null +++ b/node_modules/lodash/fp/flowRight.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('flowRight', require('../flowRight')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/forEach.js b/node_modules/lodash/fp/forEach.js new file mode 100644 index 0000000..2f49452 --- /dev/null +++ b/node_modules/lodash/fp/forEach.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('forEach', require('../forEach')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/forEachRight.js b/node_modules/lodash/fp/forEachRight.js new file mode 100644 index 0000000..3ff9733 --- /dev/null +++ b/node_modules/lodash/fp/forEachRight.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('forEachRight', require('../forEachRight')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/forIn.js b/node_modules/lodash/fp/forIn.js new file mode 100644 index 0000000..9341749 --- /dev/null +++ b/node_modules/lodash/fp/forIn.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('forIn', require('../forIn')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/forInRight.js b/node_modules/lodash/fp/forInRight.js new file mode 100644 index 0000000..cecf8bb --- /dev/null +++ b/node_modules/lodash/fp/forInRight.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('forInRight', require('../forInRight')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/forOwn.js b/node_modules/lodash/fp/forOwn.js new file mode 100644 index 0000000..246449e --- /dev/null +++ b/node_modules/lodash/fp/forOwn.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('forOwn', require('../forOwn')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/forOwnRight.js b/node_modules/lodash/fp/forOwnRight.js new file mode 100644 index 0000000..c5e826e --- /dev/null +++ b/node_modules/lodash/fp/forOwnRight.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('forOwnRight', require('../forOwnRight')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/fromPairs.js b/node_modules/lodash/fp/fromPairs.js new file mode 100644 index 0000000..f8cc596 --- /dev/null +++ b/node_modules/lodash/fp/fromPairs.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('fromPairs', require('../fromPairs')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/function.js b/node_modules/lodash/fp/function.js new file mode 100644 index 0000000..dfe69b1 --- /dev/null +++ b/node_modules/lodash/fp/function.js @@ -0,0 +1,2 @@ +var convert = require('./convert'); +module.exports = convert(require('../function')); diff --git a/node_modules/lodash/fp/functions.js b/node_modules/lodash/fp/functions.js new file mode 100644 index 0000000..09d1bb1 --- /dev/null +++ b/node_modules/lodash/fp/functions.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('functions', require('../functions'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/functionsIn.js b/node_modules/lodash/fp/functionsIn.js new file mode 100644 index 0000000..2cfeb83 --- /dev/null +++ b/node_modules/lodash/fp/functionsIn.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('functionsIn', require('../functionsIn'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/get.js b/node_modules/lodash/fp/get.js new file mode 100644 index 0000000..6d3a328 --- /dev/null +++ b/node_modules/lodash/fp/get.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('get', require('../get')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/getOr.js b/node_modules/lodash/fp/getOr.js new file mode 100644 index 0000000..7dbf771 --- /dev/null +++ b/node_modules/lodash/fp/getOr.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('getOr', require('../get')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/groupBy.js b/node_modules/lodash/fp/groupBy.js new file mode 100644 index 0000000..fc0bc78 --- /dev/null +++ b/node_modules/lodash/fp/groupBy.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('groupBy', require('../groupBy')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/gt.js b/node_modules/lodash/fp/gt.js new file mode 100644 index 0000000..9e57c80 --- /dev/null +++ b/node_modules/lodash/fp/gt.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('gt', require('../gt')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/gte.js b/node_modules/lodash/fp/gte.js new file mode 100644 index 0000000..4584786 --- /dev/null +++ b/node_modules/lodash/fp/gte.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('gte', require('../gte')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/has.js b/node_modules/lodash/fp/has.js new file mode 100644 index 0000000..b901298 --- /dev/null +++ b/node_modules/lodash/fp/has.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('has', require('../has')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/hasIn.js b/node_modules/lodash/fp/hasIn.js new file mode 100644 index 0000000..b3c3d1a --- /dev/null +++ b/node_modules/lodash/fp/hasIn.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('hasIn', require('../hasIn')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/head.js b/node_modules/lodash/fp/head.js new file mode 100644 index 0000000..2694f0a --- /dev/null +++ b/node_modules/lodash/fp/head.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('head', require('../head'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/identical.js b/node_modules/lodash/fp/identical.js new file mode 100644 index 0000000..85563f4 --- /dev/null +++ b/node_modules/lodash/fp/identical.js @@ -0,0 +1 @@ +module.exports = require('./eq'); diff --git a/node_modules/lodash/fp/identity.js b/node_modules/lodash/fp/identity.js new file mode 100644 index 0000000..096415a --- /dev/null +++ b/node_modules/lodash/fp/identity.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('identity', require('../identity'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/inRange.js b/node_modules/lodash/fp/inRange.js new file mode 100644 index 0000000..202d940 --- /dev/null +++ b/node_modules/lodash/fp/inRange.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('inRange', require('../inRange')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/includes.js b/node_modules/lodash/fp/includes.js new file mode 100644 index 0000000..1146780 --- /dev/null +++ b/node_modules/lodash/fp/includes.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('includes', require('../includes')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/includesFrom.js b/node_modules/lodash/fp/includesFrom.js new file mode 100644 index 0000000..683afdb --- /dev/null +++ b/node_modules/lodash/fp/includesFrom.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('includesFrom', require('../includes')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/indexBy.js b/node_modules/lodash/fp/indexBy.js new file mode 100644 index 0000000..7e64bc0 --- /dev/null +++ b/node_modules/lodash/fp/indexBy.js @@ -0,0 +1 @@ +module.exports = require('./keyBy'); diff --git a/node_modules/lodash/fp/indexOf.js b/node_modules/lodash/fp/indexOf.js new file mode 100644 index 0000000..524658e --- /dev/null +++ b/node_modules/lodash/fp/indexOf.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('indexOf', require('../indexOf')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/indexOfFrom.js b/node_modules/lodash/fp/indexOfFrom.js new file mode 100644 index 0000000..d99c822 --- /dev/null +++ b/node_modules/lodash/fp/indexOfFrom.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('indexOfFrom', require('../indexOf')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/init.js b/node_modules/lodash/fp/init.js new file mode 100644 index 0000000..2f88d8b --- /dev/null +++ b/node_modules/lodash/fp/init.js @@ -0,0 +1 @@ +module.exports = require('./initial'); diff --git a/node_modules/lodash/fp/initial.js b/node_modules/lodash/fp/initial.js new file mode 100644 index 0000000..b732ba0 --- /dev/null +++ b/node_modules/lodash/fp/initial.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('initial', require('../initial'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/intersection.js b/node_modules/lodash/fp/intersection.js new file mode 100644 index 0000000..52936d5 --- /dev/null +++ b/node_modules/lodash/fp/intersection.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('intersection', require('../intersection')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/intersectionBy.js b/node_modules/lodash/fp/intersectionBy.js new file mode 100644 index 0000000..72629f2 --- /dev/null +++ b/node_modules/lodash/fp/intersectionBy.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('intersectionBy', require('../intersectionBy')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/intersectionWith.js b/node_modules/lodash/fp/intersectionWith.js new file mode 100644 index 0000000..e064f40 --- /dev/null +++ b/node_modules/lodash/fp/intersectionWith.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('intersectionWith', require('../intersectionWith')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/invert.js b/node_modules/lodash/fp/invert.js new file mode 100644 index 0000000..2d5d1f0 --- /dev/null +++ b/node_modules/lodash/fp/invert.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('invert', require('../invert')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/invertBy.js b/node_modules/lodash/fp/invertBy.js new file mode 100644 index 0000000..63ca97e --- /dev/null +++ b/node_modules/lodash/fp/invertBy.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('invertBy', require('../invertBy')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/invertObj.js b/node_modules/lodash/fp/invertObj.js new file mode 100644 index 0000000..f1d842e --- /dev/null +++ b/node_modules/lodash/fp/invertObj.js @@ -0,0 +1 @@ +module.exports = require('./invert'); diff --git a/node_modules/lodash/fp/invoke.js b/node_modules/lodash/fp/invoke.js new file mode 100644 index 0000000..fcf17f0 --- /dev/null +++ b/node_modules/lodash/fp/invoke.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('invoke', require('../invoke')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/invokeArgs.js b/node_modules/lodash/fp/invokeArgs.js new file mode 100644 index 0000000..d3f2953 --- /dev/null +++ b/node_modules/lodash/fp/invokeArgs.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('invokeArgs', require('../invoke')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/invokeArgsMap.js b/node_modules/lodash/fp/invokeArgsMap.js new file mode 100644 index 0000000..eaa9f84 --- /dev/null +++ b/node_modules/lodash/fp/invokeArgsMap.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('invokeArgsMap', require('../invokeMap')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/invokeMap.js b/node_modules/lodash/fp/invokeMap.js new file mode 100644 index 0000000..6515fd7 --- /dev/null +++ b/node_modules/lodash/fp/invokeMap.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('invokeMap', require('../invokeMap')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isArguments.js b/node_modules/lodash/fp/isArguments.js new file mode 100644 index 0000000..1d93c9e --- /dev/null +++ b/node_modules/lodash/fp/isArguments.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isArguments', require('../isArguments'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isArray.js b/node_modules/lodash/fp/isArray.js new file mode 100644 index 0000000..ba7ade8 --- /dev/null +++ b/node_modules/lodash/fp/isArray.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isArray', require('../isArray'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isArrayBuffer.js b/node_modules/lodash/fp/isArrayBuffer.js new file mode 100644 index 0000000..5088513 --- /dev/null +++ b/node_modules/lodash/fp/isArrayBuffer.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isArrayBuffer', require('../isArrayBuffer'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isArrayLike.js b/node_modules/lodash/fp/isArrayLike.js new file mode 100644 index 0000000..8f1856b --- /dev/null +++ b/node_modules/lodash/fp/isArrayLike.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isArrayLike', require('../isArrayLike'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isArrayLikeObject.js b/node_modules/lodash/fp/isArrayLikeObject.js new file mode 100644 index 0000000..2108498 --- /dev/null +++ b/node_modules/lodash/fp/isArrayLikeObject.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isArrayLikeObject', require('../isArrayLikeObject'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isBoolean.js b/node_modules/lodash/fp/isBoolean.js new file mode 100644 index 0000000..9339f75 --- /dev/null +++ b/node_modules/lodash/fp/isBoolean.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isBoolean', require('../isBoolean'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isBuffer.js b/node_modules/lodash/fp/isBuffer.js new file mode 100644 index 0000000..e60b123 --- /dev/null +++ b/node_modules/lodash/fp/isBuffer.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isBuffer', require('../isBuffer'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isDate.js b/node_modules/lodash/fp/isDate.js new file mode 100644 index 0000000..dc41d08 --- /dev/null +++ b/node_modules/lodash/fp/isDate.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isDate', require('../isDate'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isElement.js b/node_modules/lodash/fp/isElement.js new file mode 100644 index 0000000..18ee039 --- /dev/null +++ b/node_modules/lodash/fp/isElement.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isElement', require('../isElement'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isEmpty.js b/node_modules/lodash/fp/isEmpty.js new file mode 100644 index 0000000..0f4ae84 --- /dev/null +++ b/node_modules/lodash/fp/isEmpty.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isEmpty', require('../isEmpty'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isEqual.js b/node_modules/lodash/fp/isEqual.js new file mode 100644 index 0000000..4138386 --- /dev/null +++ b/node_modules/lodash/fp/isEqual.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isEqual', require('../isEqual')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isEqualWith.js b/node_modules/lodash/fp/isEqualWith.js new file mode 100644 index 0000000..029ff5c --- /dev/null +++ b/node_modules/lodash/fp/isEqualWith.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isEqualWith', require('../isEqualWith')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isError.js b/node_modules/lodash/fp/isError.js new file mode 100644 index 0000000..3dfd81c --- /dev/null +++ b/node_modules/lodash/fp/isError.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isError', require('../isError'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isFinite.js b/node_modules/lodash/fp/isFinite.js new file mode 100644 index 0000000..0b647b8 --- /dev/null +++ b/node_modules/lodash/fp/isFinite.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isFinite', require('../isFinite'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isFunction.js b/node_modules/lodash/fp/isFunction.js new file mode 100644 index 0000000..ff8e5c4 --- /dev/null +++ b/node_modules/lodash/fp/isFunction.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isFunction', require('../isFunction'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isInteger.js b/node_modules/lodash/fp/isInteger.js new file mode 100644 index 0000000..67af4ff --- /dev/null +++ b/node_modules/lodash/fp/isInteger.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isInteger', require('../isInteger'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isLength.js b/node_modules/lodash/fp/isLength.js new file mode 100644 index 0000000..fc101c5 --- /dev/null +++ b/node_modules/lodash/fp/isLength.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isLength', require('../isLength'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isMap.js b/node_modules/lodash/fp/isMap.js new file mode 100644 index 0000000..a209aa6 --- /dev/null +++ b/node_modules/lodash/fp/isMap.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isMap', require('../isMap'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isMatch.js b/node_modules/lodash/fp/isMatch.js new file mode 100644 index 0000000..6264ca1 --- /dev/null +++ b/node_modules/lodash/fp/isMatch.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isMatch', require('../isMatch')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isMatchWith.js b/node_modules/lodash/fp/isMatchWith.js new file mode 100644 index 0000000..d95f319 --- /dev/null +++ b/node_modules/lodash/fp/isMatchWith.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isMatchWith', require('../isMatchWith')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isNaN.js b/node_modules/lodash/fp/isNaN.js new file mode 100644 index 0000000..66a978f --- /dev/null +++ b/node_modules/lodash/fp/isNaN.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isNaN', require('../isNaN'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isNative.js b/node_modules/lodash/fp/isNative.js new file mode 100644 index 0000000..3d775ba --- /dev/null +++ b/node_modules/lodash/fp/isNative.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isNative', require('../isNative'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isNil.js b/node_modules/lodash/fp/isNil.js new file mode 100644 index 0000000..5952c02 --- /dev/null +++ b/node_modules/lodash/fp/isNil.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isNil', require('../isNil'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isNull.js b/node_modules/lodash/fp/isNull.js new file mode 100644 index 0000000..f201a35 --- /dev/null +++ b/node_modules/lodash/fp/isNull.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isNull', require('../isNull'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isNumber.js b/node_modules/lodash/fp/isNumber.js new file mode 100644 index 0000000..a2b5fa0 --- /dev/null +++ b/node_modules/lodash/fp/isNumber.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isNumber', require('../isNumber'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isObject.js b/node_modules/lodash/fp/isObject.js new file mode 100644 index 0000000..231ace0 --- /dev/null +++ b/node_modules/lodash/fp/isObject.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isObject', require('../isObject'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isObjectLike.js b/node_modules/lodash/fp/isObjectLike.js new file mode 100644 index 0000000..f16082e --- /dev/null +++ b/node_modules/lodash/fp/isObjectLike.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isObjectLike', require('../isObjectLike'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isPlainObject.js b/node_modules/lodash/fp/isPlainObject.js new file mode 100644 index 0000000..b5bea90 --- /dev/null +++ b/node_modules/lodash/fp/isPlainObject.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isPlainObject', require('../isPlainObject'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isRegExp.js b/node_modules/lodash/fp/isRegExp.js new file mode 100644 index 0000000..12a1a3d --- /dev/null +++ b/node_modules/lodash/fp/isRegExp.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isRegExp', require('../isRegExp'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isSafeInteger.js b/node_modules/lodash/fp/isSafeInteger.js new file mode 100644 index 0000000..7230f55 --- /dev/null +++ b/node_modules/lodash/fp/isSafeInteger.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isSafeInteger', require('../isSafeInteger'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isSet.js b/node_modules/lodash/fp/isSet.js new file mode 100644 index 0000000..35c01f6 --- /dev/null +++ b/node_modules/lodash/fp/isSet.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isSet', require('../isSet'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isString.js b/node_modules/lodash/fp/isString.js new file mode 100644 index 0000000..1fd0679 --- /dev/null +++ b/node_modules/lodash/fp/isString.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isString', require('../isString'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isSymbol.js b/node_modules/lodash/fp/isSymbol.js new file mode 100644 index 0000000..3867695 --- /dev/null +++ b/node_modules/lodash/fp/isSymbol.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isSymbol', require('../isSymbol'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isTypedArray.js b/node_modules/lodash/fp/isTypedArray.js new file mode 100644 index 0000000..8567953 --- /dev/null +++ b/node_modules/lodash/fp/isTypedArray.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isTypedArray', require('../isTypedArray'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isUndefined.js b/node_modules/lodash/fp/isUndefined.js new file mode 100644 index 0000000..ddbca31 --- /dev/null +++ b/node_modules/lodash/fp/isUndefined.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isUndefined', require('../isUndefined'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isWeakMap.js b/node_modules/lodash/fp/isWeakMap.js new file mode 100644 index 0000000..ef60c61 --- /dev/null +++ b/node_modules/lodash/fp/isWeakMap.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isWeakMap', require('../isWeakMap'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/isWeakSet.js b/node_modules/lodash/fp/isWeakSet.js new file mode 100644 index 0000000..c99bfaa --- /dev/null +++ b/node_modules/lodash/fp/isWeakSet.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('isWeakSet', require('../isWeakSet'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/iteratee.js b/node_modules/lodash/fp/iteratee.js new file mode 100644 index 0000000..9f0f717 --- /dev/null +++ b/node_modules/lodash/fp/iteratee.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('iteratee', require('../iteratee')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/join.js b/node_modules/lodash/fp/join.js new file mode 100644 index 0000000..a220e00 --- /dev/null +++ b/node_modules/lodash/fp/join.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('join', require('../join')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/juxt.js b/node_modules/lodash/fp/juxt.js new file mode 100644 index 0000000..f71e04e --- /dev/null +++ b/node_modules/lodash/fp/juxt.js @@ -0,0 +1 @@ +module.exports = require('./over'); diff --git a/node_modules/lodash/fp/kebabCase.js b/node_modules/lodash/fp/kebabCase.js new file mode 100644 index 0000000..60737f1 --- /dev/null +++ b/node_modules/lodash/fp/kebabCase.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('kebabCase', require('../kebabCase'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/keyBy.js b/node_modules/lodash/fp/keyBy.js new file mode 100644 index 0000000..9a6a85d --- /dev/null +++ b/node_modules/lodash/fp/keyBy.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('keyBy', require('../keyBy')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/keys.js b/node_modules/lodash/fp/keys.js new file mode 100644 index 0000000..e12bb07 --- /dev/null +++ b/node_modules/lodash/fp/keys.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('keys', require('../keys'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/keysIn.js b/node_modules/lodash/fp/keysIn.js new file mode 100644 index 0000000..f3eb36a --- /dev/null +++ b/node_modules/lodash/fp/keysIn.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('keysIn', require('../keysIn'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/lang.js b/node_modules/lodash/fp/lang.js new file mode 100644 index 0000000..08cc9c1 --- /dev/null +++ b/node_modules/lodash/fp/lang.js @@ -0,0 +1,2 @@ +var convert = require('./convert'); +module.exports = convert(require('../lang')); diff --git a/node_modules/lodash/fp/last.js b/node_modules/lodash/fp/last.js new file mode 100644 index 0000000..0f71699 --- /dev/null +++ b/node_modules/lodash/fp/last.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('last', require('../last'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/lastIndexOf.js b/node_modules/lodash/fp/lastIndexOf.js new file mode 100644 index 0000000..ddf39c3 --- /dev/null +++ b/node_modules/lodash/fp/lastIndexOf.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('lastIndexOf', require('../lastIndexOf')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/lastIndexOfFrom.js b/node_modules/lodash/fp/lastIndexOfFrom.js new file mode 100644 index 0000000..1ff6a0b --- /dev/null +++ b/node_modules/lodash/fp/lastIndexOfFrom.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('lastIndexOfFrom', require('../lastIndexOf')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/lowerCase.js b/node_modules/lodash/fp/lowerCase.js new file mode 100644 index 0000000..ea64bc1 --- /dev/null +++ b/node_modules/lodash/fp/lowerCase.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('lowerCase', require('../lowerCase'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/lowerFirst.js b/node_modules/lodash/fp/lowerFirst.js new file mode 100644 index 0000000..539720a --- /dev/null +++ b/node_modules/lodash/fp/lowerFirst.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('lowerFirst', require('../lowerFirst'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/lt.js b/node_modules/lodash/fp/lt.js new file mode 100644 index 0000000..a31d21e --- /dev/null +++ b/node_modules/lodash/fp/lt.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('lt', require('../lt')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/lte.js b/node_modules/lodash/fp/lte.js new file mode 100644 index 0000000..d795d10 --- /dev/null +++ b/node_modules/lodash/fp/lte.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('lte', require('../lte')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/map.js b/node_modules/lodash/fp/map.js new file mode 100644 index 0000000..cf98794 --- /dev/null +++ b/node_modules/lodash/fp/map.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('map', require('../map')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/mapKeys.js b/node_modules/lodash/fp/mapKeys.js new file mode 100644 index 0000000..1684587 --- /dev/null +++ b/node_modules/lodash/fp/mapKeys.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('mapKeys', require('../mapKeys')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/mapValues.js b/node_modules/lodash/fp/mapValues.js new file mode 100644 index 0000000..4004972 --- /dev/null +++ b/node_modules/lodash/fp/mapValues.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('mapValues', require('../mapValues')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/matches.js b/node_modules/lodash/fp/matches.js new file mode 100644 index 0000000..29d1e1e --- /dev/null +++ b/node_modules/lodash/fp/matches.js @@ -0,0 +1 @@ +module.exports = require('./isMatch'); diff --git a/node_modules/lodash/fp/matchesProperty.js b/node_modules/lodash/fp/matchesProperty.js new file mode 100644 index 0000000..4575bd2 --- /dev/null +++ b/node_modules/lodash/fp/matchesProperty.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('matchesProperty', require('../matchesProperty')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/math.js b/node_modules/lodash/fp/math.js new file mode 100644 index 0000000..e8f50f7 --- /dev/null +++ b/node_modules/lodash/fp/math.js @@ -0,0 +1,2 @@ +var convert = require('./convert'); +module.exports = convert(require('../math')); diff --git a/node_modules/lodash/fp/max.js b/node_modules/lodash/fp/max.js new file mode 100644 index 0000000..a66acac --- /dev/null +++ b/node_modules/lodash/fp/max.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('max', require('../max'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/maxBy.js b/node_modules/lodash/fp/maxBy.js new file mode 100644 index 0000000..d083fd6 --- /dev/null +++ b/node_modules/lodash/fp/maxBy.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('maxBy', require('../maxBy')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/mean.js b/node_modules/lodash/fp/mean.js new file mode 100644 index 0000000..3117246 --- /dev/null +++ b/node_modules/lodash/fp/mean.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('mean', require('../mean'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/meanBy.js b/node_modules/lodash/fp/meanBy.js new file mode 100644 index 0000000..556f25e --- /dev/null +++ b/node_modules/lodash/fp/meanBy.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('meanBy', require('../meanBy')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/memoize.js b/node_modules/lodash/fp/memoize.js new file mode 100644 index 0000000..638eec6 --- /dev/null +++ b/node_modules/lodash/fp/memoize.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('memoize', require('../memoize')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/merge.js b/node_modules/lodash/fp/merge.js new file mode 100644 index 0000000..ac66add --- /dev/null +++ b/node_modules/lodash/fp/merge.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('merge', require('../merge')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/mergeAll.js b/node_modules/lodash/fp/mergeAll.js new file mode 100644 index 0000000..a3674d6 --- /dev/null +++ b/node_modules/lodash/fp/mergeAll.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('mergeAll', require('../merge')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/mergeAllWith.js b/node_modules/lodash/fp/mergeAllWith.js new file mode 100644 index 0000000..4bd4206 --- /dev/null +++ b/node_modules/lodash/fp/mergeAllWith.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('mergeAllWith', require('../mergeWith')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/mergeWith.js b/node_modules/lodash/fp/mergeWith.js new file mode 100644 index 0000000..00d44d5 --- /dev/null +++ b/node_modules/lodash/fp/mergeWith.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('mergeWith', require('../mergeWith')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/method.js b/node_modules/lodash/fp/method.js new file mode 100644 index 0000000..f4060c6 --- /dev/null +++ b/node_modules/lodash/fp/method.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('method', require('../method')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/methodOf.js b/node_modules/lodash/fp/methodOf.js new file mode 100644 index 0000000..6139905 --- /dev/null +++ b/node_modules/lodash/fp/methodOf.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('methodOf', require('../methodOf')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/min.js b/node_modules/lodash/fp/min.js new file mode 100644 index 0000000..d12c6b4 --- /dev/null +++ b/node_modules/lodash/fp/min.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('min', require('../min'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/minBy.js b/node_modules/lodash/fp/minBy.js new file mode 100644 index 0000000..fdb9e24 --- /dev/null +++ b/node_modules/lodash/fp/minBy.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('minBy', require('../minBy')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/mixin.js b/node_modules/lodash/fp/mixin.js new file mode 100644 index 0000000..332e6fb --- /dev/null +++ b/node_modules/lodash/fp/mixin.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('mixin', require('../mixin')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/multiply.js b/node_modules/lodash/fp/multiply.js new file mode 100644 index 0000000..4dcf0b0 --- /dev/null +++ b/node_modules/lodash/fp/multiply.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('multiply', require('../multiply')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/nAry.js b/node_modules/lodash/fp/nAry.js new file mode 100644 index 0000000..f262a76 --- /dev/null +++ b/node_modules/lodash/fp/nAry.js @@ -0,0 +1 @@ +module.exports = require('./ary'); diff --git a/node_modules/lodash/fp/negate.js b/node_modules/lodash/fp/negate.js new file mode 100644 index 0000000..8b6dc7c --- /dev/null +++ b/node_modules/lodash/fp/negate.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('negate', require('../negate'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/next.js b/node_modules/lodash/fp/next.js new file mode 100644 index 0000000..140155e --- /dev/null +++ b/node_modules/lodash/fp/next.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('next', require('../next'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/noop.js b/node_modules/lodash/fp/noop.js new file mode 100644 index 0000000..b9e32cc --- /dev/null +++ b/node_modules/lodash/fp/noop.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('noop', require('../noop'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/now.js b/node_modules/lodash/fp/now.js new file mode 100644 index 0000000..6de2068 --- /dev/null +++ b/node_modules/lodash/fp/now.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('now', require('../now'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/nth.js b/node_modules/lodash/fp/nth.js new file mode 100644 index 0000000..da4fda7 --- /dev/null +++ b/node_modules/lodash/fp/nth.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('nth', require('../nth')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/nthArg.js b/node_modules/lodash/fp/nthArg.js new file mode 100644 index 0000000..fce3165 --- /dev/null +++ b/node_modules/lodash/fp/nthArg.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('nthArg', require('../nthArg')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/number.js b/node_modules/lodash/fp/number.js new file mode 100644 index 0000000..5c10b88 --- /dev/null +++ b/node_modules/lodash/fp/number.js @@ -0,0 +1,2 @@ +var convert = require('./convert'); +module.exports = convert(require('../number')); diff --git a/node_modules/lodash/fp/object.js b/node_modules/lodash/fp/object.js new file mode 100644 index 0000000..ae39a13 --- /dev/null +++ b/node_modules/lodash/fp/object.js @@ -0,0 +1,2 @@ +var convert = require('./convert'); +module.exports = convert(require('../object')); diff --git a/node_modules/lodash/fp/omit.js b/node_modules/lodash/fp/omit.js new file mode 100644 index 0000000..fd68529 --- /dev/null +++ b/node_modules/lodash/fp/omit.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('omit', require('../omit')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/omitAll.js b/node_modules/lodash/fp/omitAll.js new file mode 100644 index 0000000..144cf4b --- /dev/null +++ b/node_modules/lodash/fp/omitAll.js @@ -0,0 +1 @@ +module.exports = require('./omit'); diff --git a/node_modules/lodash/fp/omitBy.js b/node_modules/lodash/fp/omitBy.js new file mode 100644 index 0000000..90df738 --- /dev/null +++ b/node_modules/lodash/fp/omitBy.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('omitBy', require('../omitBy')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/once.js b/node_modules/lodash/fp/once.js new file mode 100644 index 0000000..f8f0a5c --- /dev/null +++ b/node_modules/lodash/fp/once.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('once', require('../once'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/orderBy.js b/node_modules/lodash/fp/orderBy.js new file mode 100644 index 0000000..848e210 --- /dev/null +++ b/node_modules/lodash/fp/orderBy.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('orderBy', require('../orderBy')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/over.js b/node_modules/lodash/fp/over.js new file mode 100644 index 0000000..01eba7b --- /dev/null +++ b/node_modules/lodash/fp/over.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('over', require('../over')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/overArgs.js b/node_modules/lodash/fp/overArgs.js new file mode 100644 index 0000000..738556f --- /dev/null +++ b/node_modules/lodash/fp/overArgs.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('overArgs', require('../overArgs')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/overEvery.js b/node_modules/lodash/fp/overEvery.js new file mode 100644 index 0000000..9f5a032 --- /dev/null +++ b/node_modules/lodash/fp/overEvery.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('overEvery', require('../overEvery')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/overSome.js b/node_modules/lodash/fp/overSome.js new file mode 100644 index 0000000..15939d5 --- /dev/null +++ b/node_modules/lodash/fp/overSome.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('overSome', require('../overSome')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/pad.js b/node_modules/lodash/fp/pad.js new file mode 100644 index 0000000..f1dea4a --- /dev/null +++ b/node_modules/lodash/fp/pad.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('pad', require('../pad')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/padChars.js b/node_modules/lodash/fp/padChars.js new file mode 100644 index 0000000..d6e0804 --- /dev/null +++ b/node_modules/lodash/fp/padChars.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('padChars', require('../pad')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/padCharsEnd.js b/node_modules/lodash/fp/padCharsEnd.js new file mode 100644 index 0000000..d4ab79a --- /dev/null +++ b/node_modules/lodash/fp/padCharsEnd.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('padCharsEnd', require('../padEnd')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/padCharsStart.js b/node_modules/lodash/fp/padCharsStart.js new file mode 100644 index 0000000..a08a300 --- /dev/null +++ b/node_modules/lodash/fp/padCharsStart.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('padCharsStart', require('../padStart')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/padEnd.js b/node_modules/lodash/fp/padEnd.js new file mode 100644 index 0000000..a8522ec --- /dev/null +++ b/node_modules/lodash/fp/padEnd.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('padEnd', require('../padEnd')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/padStart.js b/node_modules/lodash/fp/padStart.js new file mode 100644 index 0000000..f4ca79d --- /dev/null +++ b/node_modules/lodash/fp/padStart.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('padStart', require('../padStart')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/parseInt.js b/node_modules/lodash/fp/parseInt.js new file mode 100644 index 0000000..27314cc --- /dev/null +++ b/node_modules/lodash/fp/parseInt.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('parseInt', require('../parseInt')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/partial.js b/node_modules/lodash/fp/partial.js new file mode 100644 index 0000000..5d46015 --- /dev/null +++ b/node_modules/lodash/fp/partial.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('partial', require('../partial')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/partialRight.js b/node_modules/lodash/fp/partialRight.js new file mode 100644 index 0000000..7f05fed --- /dev/null +++ b/node_modules/lodash/fp/partialRight.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('partialRight', require('../partialRight')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/partition.js b/node_modules/lodash/fp/partition.js new file mode 100644 index 0000000..2ebcacc --- /dev/null +++ b/node_modules/lodash/fp/partition.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('partition', require('../partition')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/path.js b/node_modules/lodash/fp/path.js new file mode 100644 index 0000000..b29cfb2 --- /dev/null +++ b/node_modules/lodash/fp/path.js @@ -0,0 +1 @@ +module.exports = require('./get'); diff --git a/node_modules/lodash/fp/pathEq.js b/node_modules/lodash/fp/pathEq.js new file mode 100644 index 0000000..36c027a --- /dev/null +++ b/node_modules/lodash/fp/pathEq.js @@ -0,0 +1 @@ +module.exports = require('./matchesProperty'); diff --git a/node_modules/lodash/fp/pathOr.js b/node_modules/lodash/fp/pathOr.js new file mode 100644 index 0000000..4ab5820 --- /dev/null +++ b/node_modules/lodash/fp/pathOr.js @@ -0,0 +1 @@ +module.exports = require('./getOr'); diff --git a/node_modules/lodash/fp/paths.js b/node_modules/lodash/fp/paths.js new file mode 100644 index 0000000..1eb7950 --- /dev/null +++ b/node_modules/lodash/fp/paths.js @@ -0,0 +1 @@ +module.exports = require('./at'); diff --git a/node_modules/lodash/fp/pick.js b/node_modules/lodash/fp/pick.js new file mode 100644 index 0000000..197393d --- /dev/null +++ b/node_modules/lodash/fp/pick.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('pick', require('../pick')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/pickAll.js b/node_modules/lodash/fp/pickAll.js new file mode 100644 index 0000000..a8ecd46 --- /dev/null +++ b/node_modules/lodash/fp/pickAll.js @@ -0,0 +1 @@ +module.exports = require('./pick'); diff --git a/node_modules/lodash/fp/pickBy.js b/node_modules/lodash/fp/pickBy.js new file mode 100644 index 0000000..d832d16 --- /dev/null +++ b/node_modules/lodash/fp/pickBy.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('pickBy', require('../pickBy')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/pipe.js b/node_modules/lodash/fp/pipe.js new file mode 100644 index 0000000..b2e1e2c --- /dev/null +++ b/node_modules/lodash/fp/pipe.js @@ -0,0 +1 @@ +module.exports = require('./flow'); diff --git a/node_modules/lodash/fp/placeholder.js b/node_modules/lodash/fp/placeholder.js new file mode 100644 index 0000000..1ce1739 --- /dev/null +++ b/node_modules/lodash/fp/placeholder.js @@ -0,0 +1,6 @@ +/** + * The default argument placeholder value for methods. + * + * @type {Object} + */ +module.exports = {}; diff --git a/node_modules/lodash/fp/plant.js b/node_modules/lodash/fp/plant.js new file mode 100644 index 0000000..eca8f32 --- /dev/null +++ b/node_modules/lodash/fp/plant.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('plant', require('../plant'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/pluck.js b/node_modules/lodash/fp/pluck.js new file mode 100644 index 0000000..0d1e1ab --- /dev/null +++ b/node_modules/lodash/fp/pluck.js @@ -0,0 +1 @@ +module.exports = require('./map'); diff --git a/node_modules/lodash/fp/prop.js b/node_modules/lodash/fp/prop.js new file mode 100644 index 0000000..b29cfb2 --- /dev/null +++ b/node_modules/lodash/fp/prop.js @@ -0,0 +1 @@ +module.exports = require('./get'); diff --git a/node_modules/lodash/fp/propEq.js b/node_modules/lodash/fp/propEq.js new file mode 100644 index 0000000..36c027a --- /dev/null +++ b/node_modules/lodash/fp/propEq.js @@ -0,0 +1 @@ +module.exports = require('./matchesProperty'); diff --git a/node_modules/lodash/fp/propOr.js b/node_modules/lodash/fp/propOr.js new file mode 100644 index 0000000..4ab5820 --- /dev/null +++ b/node_modules/lodash/fp/propOr.js @@ -0,0 +1 @@ +module.exports = require('./getOr'); diff --git a/node_modules/lodash/fp/property.js b/node_modules/lodash/fp/property.js new file mode 100644 index 0000000..b29cfb2 --- /dev/null +++ b/node_modules/lodash/fp/property.js @@ -0,0 +1 @@ +module.exports = require('./get'); diff --git a/node_modules/lodash/fp/propertyOf.js b/node_modules/lodash/fp/propertyOf.js new file mode 100644 index 0000000..f6273ee --- /dev/null +++ b/node_modules/lodash/fp/propertyOf.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('propertyOf', require('../get')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/props.js b/node_modules/lodash/fp/props.js new file mode 100644 index 0000000..1eb7950 --- /dev/null +++ b/node_modules/lodash/fp/props.js @@ -0,0 +1 @@ +module.exports = require('./at'); diff --git a/node_modules/lodash/fp/pull.js b/node_modules/lodash/fp/pull.js new file mode 100644 index 0000000..8d7084f --- /dev/null +++ b/node_modules/lodash/fp/pull.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('pull', require('../pull')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/pullAll.js b/node_modules/lodash/fp/pullAll.js new file mode 100644 index 0000000..98d5c9a --- /dev/null +++ b/node_modules/lodash/fp/pullAll.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('pullAll', require('../pullAll')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/pullAllBy.js b/node_modules/lodash/fp/pullAllBy.js new file mode 100644 index 0000000..876bc3b --- /dev/null +++ b/node_modules/lodash/fp/pullAllBy.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('pullAllBy', require('../pullAllBy')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/pullAllWith.js b/node_modules/lodash/fp/pullAllWith.js new file mode 100644 index 0000000..f71ba4d --- /dev/null +++ b/node_modules/lodash/fp/pullAllWith.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('pullAllWith', require('../pullAllWith')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/pullAt.js b/node_modules/lodash/fp/pullAt.js new file mode 100644 index 0000000..e8b3bb6 --- /dev/null +++ b/node_modules/lodash/fp/pullAt.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('pullAt', require('../pullAt')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/random.js b/node_modules/lodash/fp/random.js new file mode 100644 index 0000000..99d852e --- /dev/null +++ b/node_modules/lodash/fp/random.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('random', require('../random')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/range.js b/node_modules/lodash/fp/range.js new file mode 100644 index 0000000..a6bb591 --- /dev/null +++ b/node_modules/lodash/fp/range.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('range', require('../range')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/rangeRight.js b/node_modules/lodash/fp/rangeRight.js new file mode 100644 index 0000000..fdb712f --- /dev/null +++ b/node_modules/lodash/fp/rangeRight.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('rangeRight', require('../rangeRight')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/rangeStep.js b/node_modules/lodash/fp/rangeStep.js new file mode 100644 index 0000000..d72dfc2 --- /dev/null +++ b/node_modules/lodash/fp/rangeStep.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('rangeStep', require('../range')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/rangeStepRight.js b/node_modules/lodash/fp/rangeStepRight.js new file mode 100644 index 0000000..8b2a67b --- /dev/null +++ b/node_modules/lodash/fp/rangeStepRight.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('rangeStepRight', require('../rangeRight')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/rearg.js b/node_modules/lodash/fp/rearg.js new file mode 100644 index 0000000..678e02a --- /dev/null +++ b/node_modules/lodash/fp/rearg.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('rearg', require('../rearg')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/reduce.js b/node_modules/lodash/fp/reduce.js new file mode 100644 index 0000000..4cef0a0 --- /dev/null +++ b/node_modules/lodash/fp/reduce.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('reduce', require('../reduce')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/reduceRight.js b/node_modules/lodash/fp/reduceRight.js new file mode 100644 index 0000000..caf5bb5 --- /dev/null +++ b/node_modules/lodash/fp/reduceRight.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('reduceRight', require('../reduceRight')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/reject.js b/node_modules/lodash/fp/reject.js new file mode 100644 index 0000000..c163273 --- /dev/null +++ b/node_modules/lodash/fp/reject.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('reject', require('../reject')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/remove.js b/node_modules/lodash/fp/remove.js new file mode 100644 index 0000000..e9d1327 --- /dev/null +++ b/node_modules/lodash/fp/remove.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('remove', require('../remove')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/repeat.js b/node_modules/lodash/fp/repeat.js new file mode 100644 index 0000000..08470f2 --- /dev/null +++ b/node_modules/lodash/fp/repeat.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('repeat', require('../repeat')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/replace.js b/node_modules/lodash/fp/replace.js new file mode 100644 index 0000000..2227db6 --- /dev/null +++ b/node_modules/lodash/fp/replace.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('replace', require('../replace')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/rest.js b/node_modules/lodash/fp/rest.js new file mode 100644 index 0000000..c1f3d64 --- /dev/null +++ b/node_modules/lodash/fp/rest.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('rest', require('../rest')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/restFrom.js b/node_modules/lodash/fp/restFrom.js new file mode 100644 index 0000000..714e42b --- /dev/null +++ b/node_modules/lodash/fp/restFrom.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('restFrom', require('../rest')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/result.js b/node_modules/lodash/fp/result.js new file mode 100644 index 0000000..f86ce07 --- /dev/null +++ b/node_modules/lodash/fp/result.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('result', require('../result')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/reverse.js b/node_modules/lodash/fp/reverse.js new file mode 100644 index 0000000..07c9f5e --- /dev/null +++ b/node_modules/lodash/fp/reverse.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('reverse', require('../reverse')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/round.js b/node_modules/lodash/fp/round.js new file mode 100644 index 0000000..4c0e5c8 --- /dev/null +++ b/node_modules/lodash/fp/round.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('round', require('../round')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/sample.js b/node_modules/lodash/fp/sample.js new file mode 100644 index 0000000..6bea125 --- /dev/null +++ b/node_modules/lodash/fp/sample.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('sample', require('../sample'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/sampleSize.js b/node_modules/lodash/fp/sampleSize.js new file mode 100644 index 0000000..359ed6f --- /dev/null +++ b/node_modules/lodash/fp/sampleSize.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('sampleSize', require('../sampleSize')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/seq.js b/node_modules/lodash/fp/seq.js new file mode 100644 index 0000000..d8f42b0 --- /dev/null +++ b/node_modules/lodash/fp/seq.js @@ -0,0 +1,2 @@ +var convert = require('./convert'); +module.exports = convert(require('../seq')); diff --git a/node_modules/lodash/fp/set.js b/node_modules/lodash/fp/set.js new file mode 100644 index 0000000..0b56a56 --- /dev/null +++ b/node_modules/lodash/fp/set.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('set', require('../set')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/setWith.js b/node_modules/lodash/fp/setWith.js new file mode 100644 index 0000000..0b58495 --- /dev/null +++ b/node_modules/lodash/fp/setWith.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('setWith', require('../setWith')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/shuffle.js b/node_modules/lodash/fp/shuffle.js new file mode 100644 index 0000000..aa3a1ca --- /dev/null +++ b/node_modules/lodash/fp/shuffle.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('shuffle', require('../shuffle'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/size.js b/node_modules/lodash/fp/size.js new file mode 100644 index 0000000..7490136 --- /dev/null +++ b/node_modules/lodash/fp/size.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('size', require('../size'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/slice.js b/node_modules/lodash/fp/slice.js new file mode 100644 index 0000000..15945d3 --- /dev/null +++ b/node_modules/lodash/fp/slice.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('slice', require('../slice')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/snakeCase.js b/node_modules/lodash/fp/snakeCase.js new file mode 100644 index 0000000..a0ff780 --- /dev/null +++ b/node_modules/lodash/fp/snakeCase.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('snakeCase', require('../snakeCase'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/some.js b/node_modules/lodash/fp/some.js new file mode 100644 index 0000000..a4fa2d0 --- /dev/null +++ b/node_modules/lodash/fp/some.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('some', require('../some')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/sortBy.js b/node_modules/lodash/fp/sortBy.js new file mode 100644 index 0000000..e0790ad --- /dev/null +++ b/node_modules/lodash/fp/sortBy.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('sortBy', require('../sortBy')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/sortedIndex.js b/node_modules/lodash/fp/sortedIndex.js new file mode 100644 index 0000000..364a054 --- /dev/null +++ b/node_modules/lodash/fp/sortedIndex.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('sortedIndex', require('../sortedIndex')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/sortedIndexBy.js b/node_modules/lodash/fp/sortedIndexBy.js new file mode 100644 index 0000000..9593dbd --- /dev/null +++ b/node_modules/lodash/fp/sortedIndexBy.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('sortedIndexBy', require('../sortedIndexBy')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/sortedIndexOf.js b/node_modules/lodash/fp/sortedIndexOf.js new file mode 100644 index 0000000..c9084ca --- /dev/null +++ b/node_modules/lodash/fp/sortedIndexOf.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('sortedIndexOf', require('../sortedIndexOf')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/sortedLastIndex.js b/node_modules/lodash/fp/sortedLastIndex.js new file mode 100644 index 0000000..47fe241 --- /dev/null +++ b/node_modules/lodash/fp/sortedLastIndex.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('sortedLastIndex', require('../sortedLastIndex')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/sortedLastIndexBy.js b/node_modules/lodash/fp/sortedLastIndexBy.js new file mode 100644 index 0000000..0f9a347 --- /dev/null +++ b/node_modules/lodash/fp/sortedLastIndexBy.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('sortedLastIndexBy', require('../sortedLastIndexBy')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/sortedLastIndexOf.js b/node_modules/lodash/fp/sortedLastIndexOf.js new file mode 100644 index 0000000..0d4d932 --- /dev/null +++ b/node_modules/lodash/fp/sortedLastIndexOf.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('sortedLastIndexOf', require('../sortedLastIndexOf')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/sortedUniq.js b/node_modules/lodash/fp/sortedUniq.js new file mode 100644 index 0000000..882d283 --- /dev/null +++ b/node_modules/lodash/fp/sortedUniq.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('sortedUniq', require('../sortedUniq'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/sortedUniqBy.js b/node_modules/lodash/fp/sortedUniqBy.js new file mode 100644 index 0000000..033db91 --- /dev/null +++ b/node_modules/lodash/fp/sortedUniqBy.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('sortedUniqBy', require('../sortedUniqBy')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/split.js b/node_modules/lodash/fp/split.js new file mode 100644 index 0000000..14de1a7 --- /dev/null +++ b/node_modules/lodash/fp/split.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('split', require('../split')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/spread.js b/node_modules/lodash/fp/spread.js new file mode 100644 index 0000000..2d11b70 --- /dev/null +++ b/node_modules/lodash/fp/spread.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('spread', require('../spread')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/spreadFrom.js b/node_modules/lodash/fp/spreadFrom.js new file mode 100644 index 0000000..0b630df --- /dev/null +++ b/node_modules/lodash/fp/spreadFrom.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('spreadFrom', require('../spread')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/startCase.js b/node_modules/lodash/fp/startCase.js new file mode 100644 index 0000000..ada98c9 --- /dev/null +++ b/node_modules/lodash/fp/startCase.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('startCase', require('../startCase'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/startsWith.js b/node_modules/lodash/fp/startsWith.js new file mode 100644 index 0000000..985e2f2 --- /dev/null +++ b/node_modules/lodash/fp/startsWith.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('startsWith', require('../startsWith')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/string.js b/node_modules/lodash/fp/string.js new file mode 100644 index 0000000..773b037 --- /dev/null +++ b/node_modules/lodash/fp/string.js @@ -0,0 +1,2 @@ +var convert = require('./convert'); +module.exports = convert(require('../string')); diff --git a/node_modules/lodash/fp/stubArray.js b/node_modules/lodash/fp/stubArray.js new file mode 100644 index 0000000..cd604cb --- /dev/null +++ b/node_modules/lodash/fp/stubArray.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('stubArray', require('../stubArray'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/stubFalse.js b/node_modules/lodash/fp/stubFalse.js new file mode 100644 index 0000000..3296664 --- /dev/null +++ b/node_modules/lodash/fp/stubFalse.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('stubFalse', require('../stubFalse'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/stubObject.js b/node_modules/lodash/fp/stubObject.js new file mode 100644 index 0000000..c6c8ec4 --- /dev/null +++ b/node_modules/lodash/fp/stubObject.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('stubObject', require('../stubObject'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/stubString.js b/node_modules/lodash/fp/stubString.js new file mode 100644 index 0000000..701051e --- /dev/null +++ b/node_modules/lodash/fp/stubString.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('stubString', require('../stubString'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/stubTrue.js b/node_modules/lodash/fp/stubTrue.js new file mode 100644 index 0000000..9249082 --- /dev/null +++ b/node_modules/lodash/fp/stubTrue.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('stubTrue', require('../stubTrue'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/subtract.js b/node_modules/lodash/fp/subtract.js new file mode 100644 index 0000000..d32b16d --- /dev/null +++ b/node_modules/lodash/fp/subtract.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('subtract', require('../subtract')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/sum.js b/node_modules/lodash/fp/sum.js new file mode 100644 index 0000000..5cce12b --- /dev/null +++ b/node_modules/lodash/fp/sum.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('sum', require('../sum'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/sumBy.js b/node_modules/lodash/fp/sumBy.js new file mode 100644 index 0000000..c882656 --- /dev/null +++ b/node_modules/lodash/fp/sumBy.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('sumBy', require('../sumBy')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/symmetricDifference.js b/node_modules/lodash/fp/symmetricDifference.js new file mode 100644 index 0000000..78c16ad --- /dev/null +++ b/node_modules/lodash/fp/symmetricDifference.js @@ -0,0 +1 @@ +module.exports = require('./xor'); diff --git a/node_modules/lodash/fp/symmetricDifferenceBy.js b/node_modules/lodash/fp/symmetricDifferenceBy.js new file mode 100644 index 0000000..298fc7f --- /dev/null +++ b/node_modules/lodash/fp/symmetricDifferenceBy.js @@ -0,0 +1 @@ +module.exports = require('./xorBy'); diff --git a/node_modules/lodash/fp/symmetricDifferenceWith.js b/node_modules/lodash/fp/symmetricDifferenceWith.js new file mode 100644 index 0000000..70bc6fa --- /dev/null +++ b/node_modules/lodash/fp/symmetricDifferenceWith.js @@ -0,0 +1 @@ +module.exports = require('./xorWith'); diff --git a/node_modules/lodash/fp/tail.js b/node_modules/lodash/fp/tail.js new file mode 100644 index 0000000..f122f0a --- /dev/null +++ b/node_modules/lodash/fp/tail.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('tail', require('../tail'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/take.js b/node_modules/lodash/fp/take.js new file mode 100644 index 0000000..9af98a7 --- /dev/null +++ b/node_modules/lodash/fp/take.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('take', require('../take')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/takeLast.js b/node_modules/lodash/fp/takeLast.js new file mode 100644 index 0000000..e98c84a --- /dev/null +++ b/node_modules/lodash/fp/takeLast.js @@ -0,0 +1 @@ +module.exports = require('./takeRight'); diff --git a/node_modules/lodash/fp/takeLastWhile.js b/node_modules/lodash/fp/takeLastWhile.js new file mode 100644 index 0000000..5367968 --- /dev/null +++ b/node_modules/lodash/fp/takeLastWhile.js @@ -0,0 +1 @@ +module.exports = require('./takeRightWhile'); diff --git a/node_modules/lodash/fp/takeRight.js b/node_modules/lodash/fp/takeRight.js new file mode 100644 index 0000000..b82950a --- /dev/null +++ b/node_modules/lodash/fp/takeRight.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('takeRight', require('../takeRight')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/takeRightWhile.js b/node_modules/lodash/fp/takeRightWhile.js new file mode 100644 index 0000000..8ffb0a2 --- /dev/null +++ b/node_modules/lodash/fp/takeRightWhile.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('takeRightWhile', require('../takeRightWhile')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/takeWhile.js b/node_modules/lodash/fp/takeWhile.js new file mode 100644 index 0000000..2813664 --- /dev/null +++ b/node_modules/lodash/fp/takeWhile.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('takeWhile', require('../takeWhile')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/tap.js b/node_modules/lodash/fp/tap.js new file mode 100644 index 0000000..d33ad6e --- /dev/null +++ b/node_modules/lodash/fp/tap.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('tap', require('../tap')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/template.js b/node_modules/lodash/fp/template.js new file mode 100644 index 0000000..74857e1 --- /dev/null +++ b/node_modules/lodash/fp/template.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('template', require('../template')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/templateSettings.js b/node_modules/lodash/fp/templateSettings.js new file mode 100644 index 0000000..7bcc0a8 --- /dev/null +++ b/node_modules/lodash/fp/templateSettings.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('templateSettings', require('../templateSettings'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/throttle.js b/node_modules/lodash/fp/throttle.js new file mode 100644 index 0000000..77fff14 --- /dev/null +++ b/node_modules/lodash/fp/throttle.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('throttle', require('../throttle')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/thru.js b/node_modules/lodash/fp/thru.js new file mode 100644 index 0000000..d42b3b1 --- /dev/null +++ b/node_modules/lodash/fp/thru.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('thru', require('../thru')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/times.js b/node_modules/lodash/fp/times.js new file mode 100644 index 0000000..0dab06d --- /dev/null +++ b/node_modules/lodash/fp/times.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('times', require('../times')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/toArray.js b/node_modules/lodash/fp/toArray.js new file mode 100644 index 0000000..f0c360a --- /dev/null +++ b/node_modules/lodash/fp/toArray.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('toArray', require('../toArray'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/toFinite.js b/node_modules/lodash/fp/toFinite.js new file mode 100644 index 0000000..3a47687 --- /dev/null +++ b/node_modules/lodash/fp/toFinite.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('toFinite', require('../toFinite'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/toInteger.js b/node_modules/lodash/fp/toInteger.js new file mode 100644 index 0000000..e0af6a7 --- /dev/null +++ b/node_modules/lodash/fp/toInteger.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('toInteger', require('../toInteger'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/toIterator.js b/node_modules/lodash/fp/toIterator.js new file mode 100644 index 0000000..65e6baa --- /dev/null +++ b/node_modules/lodash/fp/toIterator.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('toIterator', require('../toIterator'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/toJSON.js b/node_modules/lodash/fp/toJSON.js new file mode 100644 index 0000000..2d718d0 --- /dev/null +++ b/node_modules/lodash/fp/toJSON.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('toJSON', require('../toJSON'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/toLength.js b/node_modules/lodash/fp/toLength.js new file mode 100644 index 0000000..b97cdd9 --- /dev/null +++ b/node_modules/lodash/fp/toLength.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('toLength', require('../toLength'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/toLower.js b/node_modules/lodash/fp/toLower.js new file mode 100644 index 0000000..616ef36 --- /dev/null +++ b/node_modules/lodash/fp/toLower.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('toLower', require('../toLower'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/toNumber.js b/node_modules/lodash/fp/toNumber.js new file mode 100644 index 0000000..d0c6f4d --- /dev/null +++ b/node_modules/lodash/fp/toNumber.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('toNumber', require('../toNumber'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/toPairs.js b/node_modules/lodash/fp/toPairs.js new file mode 100644 index 0000000..af78378 --- /dev/null +++ b/node_modules/lodash/fp/toPairs.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('toPairs', require('../toPairs'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/toPairsIn.js b/node_modules/lodash/fp/toPairsIn.js new file mode 100644 index 0000000..66504ab --- /dev/null +++ b/node_modules/lodash/fp/toPairsIn.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('toPairsIn', require('../toPairsIn'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/toPath.js b/node_modules/lodash/fp/toPath.js new file mode 100644 index 0000000..b4d5e50 --- /dev/null +++ b/node_modules/lodash/fp/toPath.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('toPath', require('../toPath'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/toPlainObject.js b/node_modules/lodash/fp/toPlainObject.js new file mode 100644 index 0000000..278bb86 --- /dev/null +++ b/node_modules/lodash/fp/toPlainObject.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('toPlainObject', require('../toPlainObject'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/toSafeInteger.js b/node_modules/lodash/fp/toSafeInteger.js new file mode 100644 index 0000000..367a26f --- /dev/null +++ b/node_modules/lodash/fp/toSafeInteger.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('toSafeInteger', require('../toSafeInteger'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/toString.js b/node_modules/lodash/fp/toString.js new file mode 100644 index 0000000..cec4f8e --- /dev/null +++ b/node_modules/lodash/fp/toString.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('toString', require('../toString'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/toUpper.js b/node_modules/lodash/fp/toUpper.js new file mode 100644 index 0000000..54f9a56 --- /dev/null +++ b/node_modules/lodash/fp/toUpper.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('toUpper', require('../toUpper'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/transform.js b/node_modules/lodash/fp/transform.js new file mode 100644 index 0000000..759d088 --- /dev/null +++ b/node_modules/lodash/fp/transform.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('transform', require('../transform')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/trim.js b/node_modules/lodash/fp/trim.js new file mode 100644 index 0000000..e6319a7 --- /dev/null +++ b/node_modules/lodash/fp/trim.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('trim', require('../trim')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/trimChars.js b/node_modules/lodash/fp/trimChars.js new file mode 100644 index 0000000..c9294de --- /dev/null +++ b/node_modules/lodash/fp/trimChars.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('trimChars', require('../trim')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/trimCharsEnd.js b/node_modules/lodash/fp/trimCharsEnd.js new file mode 100644 index 0000000..284bc2f --- /dev/null +++ b/node_modules/lodash/fp/trimCharsEnd.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('trimCharsEnd', require('../trimEnd')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/trimCharsStart.js b/node_modules/lodash/fp/trimCharsStart.js new file mode 100644 index 0000000..ff0ee65 --- /dev/null +++ b/node_modules/lodash/fp/trimCharsStart.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('trimCharsStart', require('../trimStart')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/trimEnd.js b/node_modules/lodash/fp/trimEnd.js new file mode 100644 index 0000000..7190880 --- /dev/null +++ b/node_modules/lodash/fp/trimEnd.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('trimEnd', require('../trimEnd')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/trimStart.js b/node_modules/lodash/fp/trimStart.js new file mode 100644 index 0000000..fda902c --- /dev/null +++ b/node_modules/lodash/fp/trimStart.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('trimStart', require('../trimStart')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/truncate.js b/node_modules/lodash/fp/truncate.js new file mode 100644 index 0000000..d265c1d --- /dev/null +++ b/node_modules/lodash/fp/truncate.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('truncate', require('../truncate')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/unapply.js b/node_modules/lodash/fp/unapply.js new file mode 100644 index 0000000..c5dfe77 --- /dev/null +++ b/node_modules/lodash/fp/unapply.js @@ -0,0 +1 @@ +module.exports = require('./rest'); diff --git a/node_modules/lodash/fp/unary.js b/node_modules/lodash/fp/unary.js new file mode 100644 index 0000000..286c945 --- /dev/null +++ b/node_modules/lodash/fp/unary.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('unary', require('../unary'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/unescape.js b/node_modules/lodash/fp/unescape.js new file mode 100644 index 0000000..fddcb46 --- /dev/null +++ b/node_modules/lodash/fp/unescape.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('unescape', require('../unescape'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/union.js b/node_modules/lodash/fp/union.js new file mode 100644 index 0000000..ef8228d --- /dev/null +++ b/node_modules/lodash/fp/union.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('union', require('../union')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/unionBy.js b/node_modules/lodash/fp/unionBy.js new file mode 100644 index 0000000..603687a --- /dev/null +++ b/node_modules/lodash/fp/unionBy.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('unionBy', require('../unionBy')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/unionWith.js b/node_modules/lodash/fp/unionWith.js new file mode 100644 index 0000000..65bb3a7 --- /dev/null +++ b/node_modules/lodash/fp/unionWith.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('unionWith', require('../unionWith')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/uniq.js b/node_modules/lodash/fp/uniq.js new file mode 100644 index 0000000..bc18524 --- /dev/null +++ b/node_modules/lodash/fp/uniq.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('uniq', require('../uniq'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/uniqBy.js b/node_modules/lodash/fp/uniqBy.js new file mode 100644 index 0000000..634c6a8 --- /dev/null +++ b/node_modules/lodash/fp/uniqBy.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('uniqBy', require('../uniqBy')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/uniqWith.js b/node_modules/lodash/fp/uniqWith.js new file mode 100644 index 0000000..0ec601a --- /dev/null +++ b/node_modules/lodash/fp/uniqWith.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('uniqWith', require('../uniqWith')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/uniqueId.js b/node_modules/lodash/fp/uniqueId.js new file mode 100644 index 0000000..aa8fc2f --- /dev/null +++ b/node_modules/lodash/fp/uniqueId.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('uniqueId', require('../uniqueId')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/unnest.js b/node_modules/lodash/fp/unnest.js new file mode 100644 index 0000000..5d34060 --- /dev/null +++ b/node_modules/lodash/fp/unnest.js @@ -0,0 +1 @@ +module.exports = require('./flatten'); diff --git a/node_modules/lodash/fp/unset.js b/node_modules/lodash/fp/unset.js new file mode 100644 index 0000000..ea203a0 --- /dev/null +++ b/node_modules/lodash/fp/unset.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('unset', require('../unset')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/unzip.js b/node_modules/lodash/fp/unzip.js new file mode 100644 index 0000000..cc364b3 --- /dev/null +++ b/node_modules/lodash/fp/unzip.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('unzip', require('../unzip'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/unzipWith.js b/node_modules/lodash/fp/unzipWith.js new file mode 100644 index 0000000..182eaa1 --- /dev/null +++ b/node_modules/lodash/fp/unzipWith.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('unzipWith', require('../unzipWith')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/update.js b/node_modules/lodash/fp/update.js new file mode 100644 index 0000000..b8ce2cc --- /dev/null +++ b/node_modules/lodash/fp/update.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('update', require('../update')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/updateWith.js b/node_modules/lodash/fp/updateWith.js new file mode 100644 index 0000000..d5e8282 --- /dev/null +++ b/node_modules/lodash/fp/updateWith.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('updateWith', require('../updateWith')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/upperCase.js b/node_modules/lodash/fp/upperCase.js new file mode 100644 index 0000000..c886f20 --- /dev/null +++ b/node_modules/lodash/fp/upperCase.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('upperCase', require('../upperCase'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/upperFirst.js b/node_modules/lodash/fp/upperFirst.js new file mode 100644 index 0000000..d8c04df --- /dev/null +++ b/node_modules/lodash/fp/upperFirst.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('upperFirst', require('../upperFirst'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/useWith.js b/node_modules/lodash/fp/useWith.js new file mode 100644 index 0000000..d8b3df5 --- /dev/null +++ b/node_modules/lodash/fp/useWith.js @@ -0,0 +1 @@ +module.exports = require('./overArgs'); diff --git a/node_modules/lodash/fp/util.js b/node_modules/lodash/fp/util.js new file mode 100644 index 0000000..18c00ba --- /dev/null +++ b/node_modules/lodash/fp/util.js @@ -0,0 +1,2 @@ +var convert = require('./convert'); +module.exports = convert(require('../util')); diff --git a/node_modules/lodash/fp/value.js b/node_modules/lodash/fp/value.js new file mode 100644 index 0000000..555eec7 --- /dev/null +++ b/node_modules/lodash/fp/value.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('value', require('../value'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/valueOf.js b/node_modules/lodash/fp/valueOf.js new file mode 100644 index 0000000..f968807 --- /dev/null +++ b/node_modules/lodash/fp/valueOf.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('valueOf', require('../valueOf'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/values.js b/node_modules/lodash/fp/values.js new file mode 100644 index 0000000..2dfc561 --- /dev/null +++ b/node_modules/lodash/fp/values.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('values', require('../values'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/valuesIn.js b/node_modules/lodash/fp/valuesIn.js new file mode 100644 index 0000000..a1b2bb8 --- /dev/null +++ b/node_modules/lodash/fp/valuesIn.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('valuesIn', require('../valuesIn'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/where.js b/node_modules/lodash/fp/where.js new file mode 100644 index 0000000..3247f64 --- /dev/null +++ b/node_modules/lodash/fp/where.js @@ -0,0 +1 @@ +module.exports = require('./conformsTo'); diff --git a/node_modules/lodash/fp/whereEq.js b/node_modules/lodash/fp/whereEq.js new file mode 100644 index 0000000..29d1e1e --- /dev/null +++ b/node_modules/lodash/fp/whereEq.js @@ -0,0 +1 @@ +module.exports = require('./isMatch'); diff --git a/node_modules/lodash/fp/without.js b/node_modules/lodash/fp/without.js new file mode 100644 index 0000000..bad9e12 --- /dev/null +++ b/node_modules/lodash/fp/without.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('without', require('../without')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/words.js b/node_modules/lodash/fp/words.js new file mode 100644 index 0000000..4a90141 --- /dev/null +++ b/node_modules/lodash/fp/words.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('words', require('../words')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/wrap.js b/node_modules/lodash/fp/wrap.js new file mode 100644 index 0000000..e93bd8a --- /dev/null +++ b/node_modules/lodash/fp/wrap.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('wrap', require('../wrap')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/wrapperAt.js b/node_modules/lodash/fp/wrapperAt.js new file mode 100644 index 0000000..8f0a310 --- /dev/null +++ b/node_modules/lodash/fp/wrapperAt.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('wrapperAt', require('../wrapperAt'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/wrapperChain.js b/node_modules/lodash/fp/wrapperChain.js new file mode 100644 index 0000000..2a48ea2 --- /dev/null +++ b/node_modules/lodash/fp/wrapperChain.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('wrapperChain', require('../wrapperChain'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/wrapperLodash.js b/node_modules/lodash/fp/wrapperLodash.js new file mode 100644 index 0000000..a7162d0 --- /dev/null +++ b/node_modules/lodash/fp/wrapperLodash.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('wrapperLodash', require('../wrapperLodash'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/wrapperReverse.js b/node_modules/lodash/fp/wrapperReverse.js new file mode 100644 index 0000000..e1481aa --- /dev/null +++ b/node_modules/lodash/fp/wrapperReverse.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('wrapperReverse', require('../wrapperReverse'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/wrapperValue.js b/node_modules/lodash/fp/wrapperValue.js new file mode 100644 index 0000000..8eb9112 --- /dev/null +++ b/node_modules/lodash/fp/wrapperValue.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('wrapperValue', require('../wrapperValue'), require('./_falseOptions')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/xor.js b/node_modules/lodash/fp/xor.js new file mode 100644 index 0000000..29e2819 --- /dev/null +++ b/node_modules/lodash/fp/xor.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('xor', require('../xor')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/xorBy.js b/node_modules/lodash/fp/xorBy.js new file mode 100644 index 0000000..b355686 --- /dev/null +++ b/node_modules/lodash/fp/xorBy.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('xorBy', require('../xorBy')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/xorWith.js b/node_modules/lodash/fp/xorWith.js new file mode 100644 index 0000000..8e05739 --- /dev/null +++ b/node_modules/lodash/fp/xorWith.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('xorWith', require('../xorWith')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/zip.js b/node_modules/lodash/fp/zip.js new file mode 100644 index 0000000..69e147a --- /dev/null +++ b/node_modules/lodash/fp/zip.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('zip', require('../zip')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/zipAll.js b/node_modules/lodash/fp/zipAll.js new file mode 100644 index 0000000..efa8ccb --- /dev/null +++ b/node_modules/lodash/fp/zipAll.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('zipAll', require('../zip')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/zipObj.js b/node_modules/lodash/fp/zipObj.js new file mode 100644 index 0000000..f4a3453 --- /dev/null +++ b/node_modules/lodash/fp/zipObj.js @@ -0,0 +1 @@ +module.exports = require('./zipObject'); diff --git a/node_modules/lodash/fp/zipObject.js b/node_modules/lodash/fp/zipObject.js new file mode 100644 index 0000000..462dbb6 --- /dev/null +++ b/node_modules/lodash/fp/zipObject.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('zipObject', require('../zipObject')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/zipObjectDeep.js b/node_modules/lodash/fp/zipObjectDeep.js new file mode 100644 index 0000000..53a5d33 --- /dev/null +++ b/node_modules/lodash/fp/zipObjectDeep.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('zipObjectDeep', require('../zipObjectDeep')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fp/zipWith.js b/node_modules/lodash/fp/zipWith.js new file mode 100644 index 0000000..c5cf9e2 --- /dev/null +++ b/node_modules/lodash/fp/zipWith.js @@ -0,0 +1,5 @@ +var convert = require('./convert'), + func = convert('zipWith', require('../zipWith')); + +func.placeholder = require('./placeholder'); +module.exports = func; diff --git a/node_modules/lodash/fromPairs.js b/node_modules/lodash/fromPairs.js new file mode 100644 index 0000000..ee7940d --- /dev/null +++ b/node_modules/lodash/fromPairs.js @@ -0,0 +1,28 @@ +/** + * The inverse of `_.toPairs`; this method returns an object composed + * from key-value `pairs`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} pairs The key-value pairs. + * @returns {Object} Returns the new object. + * @example + * + * _.fromPairs([['a', 1], ['b', 2]]); + * // => { 'a': 1, 'b': 2 } + */ +function fromPairs(pairs) { + var index = -1, + length = pairs == null ? 0 : pairs.length, + result = {}; + + while (++index < length) { + var pair = pairs[index]; + result[pair[0]] = pair[1]; + } + return result; +} + +module.exports = fromPairs; diff --git a/node_modules/lodash/function.js b/node_modules/lodash/function.js new file mode 100644 index 0000000..b0fc6d9 --- /dev/null +++ b/node_modules/lodash/function.js @@ -0,0 +1,25 @@ +module.exports = { + 'after': require('./after'), + 'ary': require('./ary'), + 'before': require('./before'), + 'bind': require('./bind'), + 'bindKey': require('./bindKey'), + 'curry': require('./curry'), + 'curryRight': require('./curryRight'), + 'debounce': require('./debounce'), + 'defer': require('./defer'), + 'delay': require('./delay'), + 'flip': require('./flip'), + 'memoize': require('./memoize'), + 'negate': require('./negate'), + 'once': require('./once'), + 'overArgs': require('./overArgs'), + 'partial': require('./partial'), + 'partialRight': require('./partialRight'), + 'rearg': require('./rearg'), + 'rest': require('./rest'), + 'spread': require('./spread'), + 'throttle': require('./throttle'), + 'unary': require('./unary'), + 'wrap': require('./wrap') +}; diff --git a/node_modules/lodash/functions.js b/node_modules/lodash/functions.js new file mode 100644 index 0000000..9722928 --- /dev/null +++ b/node_modules/lodash/functions.js @@ -0,0 +1,31 @@ +var baseFunctions = require('./_baseFunctions'), + keys = require('./keys'); + +/** + * Creates an array of function property names from own enumerable properties + * of `object`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to inspect. + * @returns {Array} Returns the function names. + * @see _.functionsIn + * @example + * + * function Foo() { + * this.a = _.constant('a'); + * this.b = _.constant('b'); + * } + * + * Foo.prototype.c = _.constant('c'); + * + * _.functions(new Foo); + * // => ['a', 'b'] + */ +function functions(object) { + return object == null ? [] : baseFunctions(object, keys(object)); +} + +module.exports = functions; diff --git a/node_modules/lodash/functionsIn.js b/node_modules/lodash/functionsIn.js new file mode 100644 index 0000000..f00345d --- /dev/null +++ b/node_modules/lodash/functionsIn.js @@ -0,0 +1,31 @@ +var baseFunctions = require('./_baseFunctions'), + keysIn = require('./keysIn'); + +/** + * Creates an array of function property names from own and inherited + * enumerable properties of `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to inspect. + * @returns {Array} Returns the function names. + * @see _.functions + * @example + * + * function Foo() { + * this.a = _.constant('a'); + * this.b = _.constant('b'); + * } + * + * Foo.prototype.c = _.constant('c'); + * + * _.functionsIn(new Foo); + * // => ['a', 'b', 'c'] + */ +function functionsIn(object) { + return object == null ? [] : baseFunctions(object, keysIn(object)); +} + +module.exports = functionsIn; diff --git a/node_modules/lodash/get.js b/node_modules/lodash/get.js new file mode 100644 index 0000000..8805ff9 --- /dev/null +++ b/node_modules/lodash/get.js @@ -0,0 +1,33 @@ +var baseGet = require('./_baseGet'); + +/** + * Gets the value at `path` of `object`. If the resolved value is + * `undefined`, the `defaultValue` is returned in its place. + * + * @static + * @memberOf _ + * @since 3.7.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @param {*} [defaultValue] The value returned for `undefined` resolved values. + * @returns {*} Returns the resolved value. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.get(object, 'a[0].b.c'); + * // => 3 + * + * _.get(object, ['a', '0', 'b', 'c']); + * // => 3 + * + * _.get(object, 'a.b.c', 'default'); + * // => 'default' + */ +function get(object, path, defaultValue) { + var result = object == null ? undefined : baseGet(object, path); + return result === undefined ? defaultValue : result; +} + +module.exports = get; diff --git a/node_modules/lodash/groupBy.js b/node_modules/lodash/groupBy.js new file mode 100644 index 0000000..babf4f6 --- /dev/null +++ b/node_modules/lodash/groupBy.js @@ -0,0 +1,41 @@ +var baseAssignValue = require('./_baseAssignValue'), + createAggregator = require('./_createAggregator'); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Creates an object composed of keys generated from the results of running + * each element of `collection` thru `iteratee`. The order of grouped values + * is determined by the order they occur in `collection`. The corresponding + * value of each key is an array of elements responsible for generating the + * key. The iteratee is invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The iteratee to transform keys. + * @returns {Object} Returns the composed aggregate object. + * @example + * + * _.groupBy([6.1, 4.2, 6.3], Math.floor); + * // => { '4': [4.2], '6': [6.1, 6.3] } + * + * // The `_.property` iteratee shorthand. + * _.groupBy(['one', 'two', 'three'], 'length'); + * // => { '3': ['one', 'two'], '5': ['three'] } + */ +var groupBy = createAggregator(function(result, value, key) { + if (hasOwnProperty.call(result, key)) { + result[key].push(value); + } else { + baseAssignValue(result, key, [value]); + } +}); + +module.exports = groupBy; diff --git a/node_modules/lodash/gt.js b/node_modules/lodash/gt.js new file mode 100644 index 0000000..3a66282 --- /dev/null +++ b/node_modules/lodash/gt.js @@ -0,0 +1,29 @@ +var baseGt = require('./_baseGt'), + createRelationalOperation = require('./_createRelationalOperation'); + +/** + * Checks if `value` is greater than `other`. + * + * @static + * @memberOf _ + * @since 3.9.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if `value` is greater than `other`, + * else `false`. + * @see _.lt + * @example + * + * _.gt(3, 1); + * // => true + * + * _.gt(3, 3); + * // => false + * + * _.gt(1, 3); + * // => false + */ +var gt = createRelationalOperation(baseGt); + +module.exports = gt; diff --git a/node_modules/lodash/gte.js b/node_modules/lodash/gte.js new file mode 100644 index 0000000..4180a68 --- /dev/null +++ b/node_modules/lodash/gte.js @@ -0,0 +1,30 @@ +var createRelationalOperation = require('./_createRelationalOperation'); + +/** + * Checks if `value` is greater than or equal to `other`. + * + * @static + * @memberOf _ + * @since 3.9.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if `value` is greater than or equal to + * `other`, else `false`. + * @see _.lte + * @example + * + * _.gte(3, 1); + * // => true + * + * _.gte(3, 3); + * // => true + * + * _.gte(1, 3); + * // => false + */ +var gte = createRelationalOperation(function(value, other) { + return value >= other; +}); + +module.exports = gte; diff --git a/node_modules/lodash/has.js b/node_modules/lodash/has.js new file mode 100644 index 0000000..34df55e --- /dev/null +++ b/node_modules/lodash/has.js @@ -0,0 +1,35 @@ +var baseHas = require('./_baseHas'), + hasPath = require('./_hasPath'); + +/** + * Checks if `path` is a direct property of `object`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + * @example + * + * var object = { 'a': { 'b': 2 } }; + * var other = _.create({ 'a': _.create({ 'b': 2 }) }); + * + * _.has(object, 'a'); + * // => true + * + * _.has(object, 'a.b'); + * // => true + * + * _.has(object, ['a', 'b']); + * // => true + * + * _.has(other, 'a'); + * // => false + */ +function has(object, path) { + return object != null && hasPath(object, path, baseHas); +} + +module.exports = has; diff --git a/node_modules/lodash/hasIn.js b/node_modules/lodash/hasIn.js new file mode 100644 index 0000000..06a3686 --- /dev/null +++ b/node_modules/lodash/hasIn.js @@ -0,0 +1,34 @@ +var baseHasIn = require('./_baseHasIn'), + hasPath = require('./_hasPath'); + +/** + * Checks if `path` is a direct or inherited property of `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + * @example + * + * var object = _.create({ 'a': _.create({ 'b': 2 }) }); + * + * _.hasIn(object, 'a'); + * // => true + * + * _.hasIn(object, 'a.b'); + * // => true + * + * _.hasIn(object, ['a', 'b']); + * // => true + * + * _.hasIn(object, 'b'); + * // => false + */ +function hasIn(object, path) { + return object != null && hasPath(object, path, baseHasIn); +} + +module.exports = hasIn; diff --git a/node_modules/lodash/head.js b/node_modules/lodash/head.js new file mode 100644 index 0000000..dee9d1f --- /dev/null +++ b/node_modules/lodash/head.js @@ -0,0 +1,23 @@ +/** + * Gets the first element of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @alias first + * @category Array + * @param {Array} array The array to query. + * @returns {*} Returns the first element of `array`. + * @example + * + * _.head([1, 2, 3]); + * // => 1 + * + * _.head([]); + * // => undefined + */ +function head(array) { + return (array && array.length) ? array[0] : undefined; +} + +module.exports = head; diff --git a/node_modules/lodash/identity.js b/node_modules/lodash/identity.js new file mode 100644 index 0000000..2d5d963 --- /dev/null +++ b/node_modules/lodash/identity.js @@ -0,0 +1,21 @@ +/** + * This method returns the first argument it receives. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Util + * @param {*} value Any value. + * @returns {*} Returns `value`. + * @example + * + * var object = { 'a': 1 }; + * + * console.log(_.identity(object) === object); + * // => true + */ +function identity(value) { + return value; +} + +module.exports = identity; diff --git a/node_modules/lodash/inRange.js b/node_modules/lodash/inRange.js new file mode 100644 index 0000000..f20728d --- /dev/null +++ b/node_modules/lodash/inRange.js @@ -0,0 +1,55 @@ +var baseInRange = require('./_baseInRange'), + toFinite = require('./toFinite'), + toNumber = require('./toNumber'); + +/** + * Checks if `n` is between `start` and up to, but not including, `end`. If + * `end` is not specified, it's set to `start` with `start` then set to `0`. + * If `start` is greater than `end` the params are swapped to support + * negative ranges. + * + * @static + * @memberOf _ + * @since 3.3.0 + * @category Number + * @param {number} number The number to check. + * @param {number} [start=0] The start of the range. + * @param {number} end The end of the range. + * @returns {boolean} Returns `true` if `number` is in the range, else `false`. + * @see _.range, _.rangeRight + * @example + * + * _.inRange(3, 2, 4); + * // => true + * + * _.inRange(4, 8); + * // => true + * + * _.inRange(4, 2); + * // => false + * + * _.inRange(2, 2); + * // => false + * + * _.inRange(1.2, 2); + * // => true + * + * _.inRange(5.2, 4); + * // => false + * + * _.inRange(-3, -2, -6); + * // => true + */ +function inRange(number, start, end) { + start = toFinite(start); + if (end === undefined) { + end = start; + start = 0; + } else { + end = toFinite(end); + } + number = toNumber(number); + return baseInRange(number, start, end); +} + +module.exports = inRange; diff --git a/node_modules/lodash/includes.js b/node_modules/lodash/includes.js new file mode 100644 index 0000000..ae0deed --- /dev/null +++ b/node_modules/lodash/includes.js @@ -0,0 +1,53 @@ +var baseIndexOf = require('./_baseIndexOf'), + isArrayLike = require('./isArrayLike'), + isString = require('./isString'), + toInteger = require('./toInteger'), + values = require('./values'); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * Checks if `value` is in `collection`. If `collection` is a string, it's + * checked for a substring of `value`, otherwise + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * is used for equality comparisons. If `fromIndex` is negative, it's used as + * the offset from the end of `collection`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object|string} collection The collection to inspect. + * @param {*} value The value to search for. + * @param {number} [fromIndex=0] The index to search from. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`. + * @returns {boolean} Returns `true` if `value` is found, else `false`. + * @example + * + * _.includes([1, 2, 3], 1); + * // => true + * + * _.includes([1, 2, 3], 1, 2); + * // => false + * + * _.includes({ 'a': 1, 'b': 2 }, 1); + * // => true + * + * _.includes('abcd', 'bc'); + * // => true + */ +function includes(collection, value, fromIndex, guard) { + collection = isArrayLike(collection) ? collection : values(collection); + fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0; + + var length = collection.length; + if (fromIndex < 0) { + fromIndex = nativeMax(length + fromIndex, 0); + } + return isString(collection) + ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1) + : (!!length && baseIndexOf(collection, value, fromIndex) > -1); +} + +module.exports = includes; diff --git a/node_modules/lodash/index.js b/node_modules/lodash/index.js new file mode 100644 index 0000000..5d063e2 --- /dev/null +++ b/node_modules/lodash/index.js @@ -0,0 +1 @@ +module.exports = require('./lodash'); \ No newline at end of file diff --git a/node_modules/lodash/indexOf.js b/node_modules/lodash/indexOf.js new file mode 100644 index 0000000..3c644af --- /dev/null +++ b/node_modules/lodash/indexOf.js @@ -0,0 +1,42 @@ +var baseIndexOf = require('./_baseIndexOf'), + toInteger = require('./toInteger'); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * Gets the index at which the first occurrence of `value` is found in `array` + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. If `fromIndex` is negative, it's used as the + * offset from the end of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} [fromIndex=0] The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + * @example + * + * _.indexOf([1, 2, 1, 2], 2); + * // => 1 + * + * // Search from the `fromIndex`. + * _.indexOf([1, 2, 1, 2], 2, 2); + * // => 3 + */ +function indexOf(array, value, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = fromIndex == null ? 0 : toInteger(fromIndex); + if (index < 0) { + index = nativeMax(length + index, 0); + } + return baseIndexOf(array, value, index); +} + +module.exports = indexOf; diff --git a/node_modules/lodash/initial.js b/node_modules/lodash/initial.js new file mode 100644 index 0000000..f47fc50 --- /dev/null +++ b/node_modules/lodash/initial.js @@ -0,0 +1,22 @@ +var baseSlice = require('./_baseSlice'); + +/** + * Gets all but the last element of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to query. + * @returns {Array} Returns the slice of `array`. + * @example + * + * _.initial([1, 2, 3]); + * // => [1, 2] + */ +function initial(array) { + var length = array == null ? 0 : array.length; + return length ? baseSlice(array, 0, -1) : []; +} + +module.exports = initial; diff --git a/node_modules/lodash/intersection.js b/node_modules/lodash/intersection.js new file mode 100644 index 0000000..a94c135 --- /dev/null +++ b/node_modules/lodash/intersection.js @@ -0,0 +1,30 @@ +var arrayMap = require('./_arrayMap'), + baseIntersection = require('./_baseIntersection'), + baseRest = require('./_baseRest'), + castArrayLikeObject = require('./_castArrayLikeObject'); + +/** + * Creates an array of unique values that are included in all given arrays + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. The order and references of result values are + * determined by the first array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @returns {Array} Returns the new array of intersecting values. + * @example + * + * _.intersection([2, 1], [2, 3]); + * // => [2] + */ +var intersection = baseRest(function(arrays) { + var mapped = arrayMap(arrays, castArrayLikeObject); + return (mapped.length && mapped[0] === arrays[0]) + ? baseIntersection(mapped) + : []; +}); + +module.exports = intersection; diff --git a/node_modules/lodash/intersectionBy.js b/node_modules/lodash/intersectionBy.js new file mode 100644 index 0000000..31461aa --- /dev/null +++ b/node_modules/lodash/intersectionBy.js @@ -0,0 +1,45 @@ +var arrayMap = require('./_arrayMap'), + baseIntersection = require('./_baseIntersection'), + baseIteratee = require('./_baseIteratee'), + baseRest = require('./_baseRest'), + castArrayLikeObject = require('./_castArrayLikeObject'), + last = require('./last'); + +/** + * This method is like `_.intersection` except that it accepts `iteratee` + * which is invoked for each element of each `arrays` to generate the criterion + * by which they're compared. The order and references of result values are + * determined by the first array. The iteratee is invoked with one argument: + * (value). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Array} Returns the new array of intersecting values. + * @example + * + * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor); + * // => [2.1] + * + * // The `_.property` iteratee shorthand. + * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); + * // => [{ 'x': 1 }] + */ +var intersectionBy = baseRest(function(arrays) { + var iteratee = last(arrays), + mapped = arrayMap(arrays, castArrayLikeObject); + + if (iteratee === last(mapped)) { + iteratee = undefined; + } else { + mapped.pop(); + } + return (mapped.length && mapped[0] === arrays[0]) + ? baseIntersection(mapped, baseIteratee(iteratee, 2)) + : []; +}); + +module.exports = intersectionBy; diff --git a/node_modules/lodash/intersectionWith.js b/node_modules/lodash/intersectionWith.js new file mode 100644 index 0000000..63cabfa --- /dev/null +++ b/node_modules/lodash/intersectionWith.js @@ -0,0 +1,41 @@ +var arrayMap = require('./_arrayMap'), + baseIntersection = require('./_baseIntersection'), + baseRest = require('./_baseRest'), + castArrayLikeObject = require('./_castArrayLikeObject'), + last = require('./last'); + +/** + * This method is like `_.intersection` except that it accepts `comparator` + * which is invoked to compare elements of `arrays`. The order and references + * of result values are determined by the first array. The comparator is + * invoked with two arguments: (arrVal, othVal). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of intersecting values. + * @example + * + * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; + * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; + * + * _.intersectionWith(objects, others, _.isEqual); + * // => [{ 'x': 1, 'y': 2 }] + */ +var intersectionWith = baseRest(function(arrays) { + var comparator = last(arrays), + mapped = arrayMap(arrays, castArrayLikeObject); + + comparator = typeof comparator == 'function' ? comparator : undefined; + if (comparator) { + mapped.pop(); + } + return (mapped.length && mapped[0] === arrays[0]) + ? baseIntersection(mapped, undefined, comparator) + : []; +}); + +module.exports = intersectionWith; diff --git a/node_modules/lodash/invert.js b/node_modules/lodash/invert.js new file mode 100644 index 0000000..8c47950 --- /dev/null +++ b/node_modules/lodash/invert.js @@ -0,0 +1,42 @@ +var constant = require('./constant'), + createInverter = require('./_createInverter'), + identity = require('./identity'); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var nativeObjectToString = objectProto.toString; + +/** + * Creates an object composed of the inverted keys and values of `object`. + * If `object` contains duplicate values, subsequent values overwrite + * property assignments of previous values. + * + * @static + * @memberOf _ + * @since 0.7.0 + * @category Object + * @param {Object} object The object to invert. + * @returns {Object} Returns the new inverted object. + * @example + * + * var object = { 'a': 1, 'b': 2, 'c': 1 }; + * + * _.invert(object); + * // => { '1': 'c', '2': 'b' } + */ +var invert = createInverter(function(result, value, key) { + if (value != null && + typeof value.toString != 'function') { + value = nativeObjectToString.call(value); + } + + result[value] = key; +}, constant(identity)); + +module.exports = invert; diff --git a/node_modules/lodash/invertBy.js b/node_modules/lodash/invertBy.js new file mode 100644 index 0000000..3f4f7e5 --- /dev/null +++ b/node_modules/lodash/invertBy.js @@ -0,0 +1,56 @@ +var baseIteratee = require('./_baseIteratee'), + createInverter = require('./_createInverter'); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var nativeObjectToString = objectProto.toString; + +/** + * This method is like `_.invert` except that the inverted object is generated + * from the results of running each element of `object` thru `iteratee`. The + * corresponding inverted value of each inverted key is an array of keys + * responsible for generating the inverted value. The iteratee is invoked + * with one argument: (value). + * + * @static + * @memberOf _ + * @since 4.1.0 + * @category Object + * @param {Object} object The object to invert. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Object} Returns the new inverted object. + * @example + * + * var object = { 'a': 1, 'b': 2, 'c': 1 }; + * + * _.invertBy(object); + * // => { '1': ['a', 'c'], '2': ['b'] } + * + * _.invertBy(object, function(value) { + * return 'group' + value; + * }); + * // => { 'group1': ['a', 'c'], 'group2': ['b'] } + */ +var invertBy = createInverter(function(result, value, key) { + if (value != null && + typeof value.toString != 'function') { + value = nativeObjectToString.call(value); + } + + if (hasOwnProperty.call(result, value)) { + result[value].push(key); + } else { + result[value] = [key]; + } +}, baseIteratee); + +module.exports = invertBy; diff --git a/node_modules/lodash/invoke.js b/node_modules/lodash/invoke.js new file mode 100644 index 0000000..97d51eb --- /dev/null +++ b/node_modules/lodash/invoke.js @@ -0,0 +1,24 @@ +var baseInvoke = require('./_baseInvoke'), + baseRest = require('./_baseRest'); + +/** + * Invokes the method at `path` of `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the method to invoke. + * @param {...*} [args] The arguments to invoke the method with. + * @returns {*} Returns the result of the invoked method. + * @example + * + * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] }; + * + * _.invoke(object, 'a[0].b.c.slice', 1, 3); + * // => [2, 3] + */ +var invoke = baseRest(baseInvoke); + +module.exports = invoke; diff --git a/node_modules/lodash/invokeMap.js b/node_modules/lodash/invokeMap.js new file mode 100644 index 0000000..8da5126 --- /dev/null +++ b/node_modules/lodash/invokeMap.js @@ -0,0 +1,41 @@ +var apply = require('./_apply'), + baseEach = require('./_baseEach'), + baseInvoke = require('./_baseInvoke'), + baseRest = require('./_baseRest'), + isArrayLike = require('./isArrayLike'); + +/** + * Invokes the method at `path` of each element in `collection`, returning + * an array of the results of each invoked method. Any additional arguments + * are provided to each invoked method. If `path` is a function, it's invoked + * for, and `this` bound to, each element in `collection`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Array|Function|string} path The path of the method to invoke or + * the function invoked per iteration. + * @param {...*} [args] The arguments to invoke each method with. + * @returns {Array} Returns the array of results. + * @example + * + * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort'); + * // => [[1, 5, 7], [1, 2, 3]] + * + * _.invokeMap([123, 456], String.prototype.split, ''); + * // => [['1', '2', '3'], ['4', '5', '6']] + */ +var invokeMap = baseRest(function(collection, path, args) { + var index = -1, + isFunc = typeof path == 'function', + result = isArrayLike(collection) ? Array(collection.length) : []; + + baseEach(collection, function(value) { + result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args); + }); + return result; +}); + +module.exports = invokeMap; diff --git a/node_modules/lodash/isArguments.js b/node_modules/lodash/isArguments.js new file mode 100644 index 0000000..8b9ed66 --- /dev/null +++ b/node_modules/lodash/isArguments.js @@ -0,0 +1,36 @@ +var baseIsArguments = require('./_baseIsArguments'), + isObjectLike = require('./isObjectLike'); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Built-in value references. */ +var propertyIsEnumerable = objectProto.propertyIsEnumerable; + +/** + * Checks if `value` is likely an `arguments` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ +var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && + !propertyIsEnumerable.call(value, 'callee'); +}; + +module.exports = isArguments; diff --git a/node_modules/lodash/isArray.js b/node_modules/lodash/isArray.js new file mode 100644 index 0000000..88ab55f --- /dev/null +++ b/node_modules/lodash/isArray.js @@ -0,0 +1,26 @@ +/** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ +var isArray = Array.isArray; + +module.exports = isArray; diff --git a/node_modules/lodash/isArrayBuffer.js b/node_modules/lodash/isArrayBuffer.js new file mode 100644 index 0000000..12904a6 --- /dev/null +++ b/node_modules/lodash/isArrayBuffer.js @@ -0,0 +1,27 @@ +var baseIsArrayBuffer = require('./_baseIsArrayBuffer'), + baseUnary = require('./_baseUnary'), + nodeUtil = require('./_nodeUtil'); + +/* Node.js helper references. */ +var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer; + +/** + * Checks if `value` is classified as an `ArrayBuffer` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`. + * @example + * + * _.isArrayBuffer(new ArrayBuffer(2)); + * // => true + * + * _.isArrayBuffer(new Array(2)); + * // => false + */ +var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer; + +module.exports = isArrayBuffer; diff --git a/node_modules/lodash/isArrayLike.js b/node_modules/lodash/isArrayLike.js new file mode 100644 index 0000000..0f96680 --- /dev/null +++ b/node_modules/lodash/isArrayLike.js @@ -0,0 +1,33 @@ +var isFunction = require('./isFunction'), + isLength = require('./isLength'); + +/** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */ +function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); +} + +module.exports = isArrayLike; diff --git a/node_modules/lodash/isArrayLikeObject.js b/node_modules/lodash/isArrayLikeObject.js new file mode 100644 index 0000000..6c4812a --- /dev/null +++ b/node_modules/lodash/isArrayLikeObject.js @@ -0,0 +1,33 @@ +var isArrayLike = require('./isArrayLike'), + isObjectLike = require('./isObjectLike'); + +/** + * This method is like `_.isArrayLike` except that it also checks if `value` + * is an object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array-like object, + * else `false`. + * @example + * + * _.isArrayLikeObject([1, 2, 3]); + * // => true + * + * _.isArrayLikeObject(document.body.children); + * // => true + * + * _.isArrayLikeObject('abc'); + * // => false + * + * _.isArrayLikeObject(_.noop); + * // => false + */ +function isArrayLikeObject(value) { + return isObjectLike(value) && isArrayLike(value); +} + +module.exports = isArrayLikeObject; diff --git a/node_modules/lodash/isBoolean.js b/node_modules/lodash/isBoolean.js new file mode 100644 index 0000000..a43ed4b --- /dev/null +++ b/node_modules/lodash/isBoolean.js @@ -0,0 +1,29 @@ +var baseGetTag = require('./_baseGetTag'), + isObjectLike = require('./isObjectLike'); + +/** `Object#toString` result references. */ +var boolTag = '[object Boolean]'; + +/** + * Checks if `value` is classified as a boolean primitive or object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a boolean, else `false`. + * @example + * + * _.isBoolean(false); + * // => true + * + * _.isBoolean(null); + * // => false + */ +function isBoolean(value) { + return value === true || value === false || + (isObjectLike(value) && baseGetTag(value) == boolTag); +} + +module.exports = isBoolean; diff --git a/node_modules/lodash/isBuffer.js b/node_modules/lodash/isBuffer.js new file mode 100644 index 0000000..c103cc7 --- /dev/null +++ b/node_modules/lodash/isBuffer.js @@ -0,0 +1,38 @@ +var root = require('./_root'), + stubFalse = require('./stubFalse'); + +/** Detect free variable `exports`. */ +var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; + +/** Detect free variable `module`. */ +var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; + +/** Detect the popular CommonJS extension `module.exports`. */ +var moduleExports = freeModule && freeModule.exports === freeExports; + +/** Built-in value references. */ +var Buffer = moduleExports ? root.Buffer : undefined; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined; + +/** + * Checks if `value` is a buffer. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. + * @example + * + * _.isBuffer(new Buffer(2)); + * // => true + * + * _.isBuffer(new Uint8Array(2)); + * // => false + */ +var isBuffer = nativeIsBuffer || stubFalse; + +module.exports = isBuffer; diff --git a/node_modules/lodash/isDate.js b/node_modules/lodash/isDate.js new file mode 100644 index 0000000..7f0209f --- /dev/null +++ b/node_modules/lodash/isDate.js @@ -0,0 +1,27 @@ +var baseIsDate = require('./_baseIsDate'), + baseUnary = require('./_baseUnary'), + nodeUtil = require('./_nodeUtil'); + +/* Node.js helper references. */ +var nodeIsDate = nodeUtil && nodeUtil.isDate; + +/** + * Checks if `value` is classified as a `Date` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a date object, else `false`. + * @example + * + * _.isDate(new Date); + * // => true + * + * _.isDate('Mon April 23 2012'); + * // => false + */ +var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate; + +module.exports = isDate; diff --git a/node_modules/lodash/isElement.js b/node_modules/lodash/isElement.js new file mode 100644 index 0000000..76ae29c --- /dev/null +++ b/node_modules/lodash/isElement.js @@ -0,0 +1,25 @@ +var isObjectLike = require('./isObjectLike'), + isPlainObject = require('./isPlainObject'); + +/** + * Checks if `value` is likely a DOM element. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`. + * @example + * + * _.isElement(document.body); + * // => true + * + * _.isElement(''); + * // => false + */ +function isElement(value) { + return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value); +} + +module.exports = isElement; diff --git a/node_modules/lodash/isEmpty.js b/node_modules/lodash/isEmpty.js new file mode 100644 index 0000000..3597294 --- /dev/null +++ b/node_modules/lodash/isEmpty.js @@ -0,0 +1,77 @@ +var baseKeys = require('./_baseKeys'), + getTag = require('./_getTag'), + isArguments = require('./isArguments'), + isArray = require('./isArray'), + isArrayLike = require('./isArrayLike'), + isBuffer = require('./isBuffer'), + isPrototype = require('./_isPrototype'), + isTypedArray = require('./isTypedArray'); + +/** `Object#toString` result references. */ +var mapTag = '[object Map]', + setTag = '[object Set]'; + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Checks if `value` is an empty object, collection, map, or set. + * + * Objects are considered empty if they have no own enumerable string keyed + * properties. + * + * Array-like values such as `arguments` objects, arrays, buffers, strings, or + * jQuery-like collections are considered empty if they have a `length` of `0`. + * Similarly, maps and sets are considered empty if they have a `size` of `0`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is empty, else `false`. + * @example + * + * _.isEmpty(null); + * // => true + * + * _.isEmpty(true); + * // => true + * + * _.isEmpty(1); + * // => true + * + * _.isEmpty([1, 2, 3]); + * // => false + * + * _.isEmpty({ 'a': 1 }); + * // => false + */ +function isEmpty(value) { + if (value == null) { + return true; + } + if (isArrayLike(value) && + (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' || + isBuffer(value) || isTypedArray(value) || isArguments(value))) { + return !value.length; + } + var tag = getTag(value); + if (tag == mapTag || tag == setTag) { + return !value.size; + } + if (isPrototype(value)) { + return !baseKeys(value).length; + } + for (var key in value) { + if (hasOwnProperty.call(value, key)) { + return false; + } + } + return true; +} + +module.exports = isEmpty; diff --git a/node_modules/lodash/isEqual.js b/node_modules/lodash/isEqual.js new file mode 100644 index 0000000..5e23e76 --- /dev/null +++ b/node_modules/lodash/isEqual.js @@ -0,0 +1,35 @@ +var baseIsEqual = require('./_baseIsEqual'); + +/** + * Performs a deep comparison between two values to determine if they are + * equivalent. + * + * **Note:** This method supports comparing arrays, array buffers, booleans, + * date objects, error objects, maps, numbers, `Object` objects, regexes, + * sets, strings, symbols, and typed arrays. `Object` objects are compared + * by their own, not inherited, enumerable properties. Functions and DOM + * nodes are compared by strict equality, i.e. `===`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.isEqual(object, other); + * // => true + * + * object === other; + * // => false + */ +function isEqual(value, other) { + return baseIsEqual(value, other); +} + +module.exports = isEqual; diff --git a/node_modules/lodash/isEqualWith.js b/node_modules/lodash/isEqualWith.js new file mode 100644 index 0000000..21bdc7f --- /dev/null +++ b/node_modules/lodash/isEqualWith.js @@ -0,0 +1,41 @@ +var baseIsEqual = require('./_baseIsEqual'); + +/** + * This method is like `_.isEqual` except that it accepts `customizer` which + * is invoked to compare values. If `customizer` returns `undefined`, comparisons + * are handled by the method instead. The `customizer` is invoked with up to + * six arguments: (objValue, othValue [, index|key, object, other, stack]). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {Function} [customizer] The function to customize comparisons. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * function isGreeting(value) { + * return /^h(?:i|ello)$/.test(value); + * } + * + * function customizer(objValue, othValue) { + * if (isGreeting(objValue) && isGreeting(othValue)) { + * return true; + * } + * } + * + * var array = ['hello', 'goodbye']; + * var other = ['hi', 'goodbye']; + * + * _.isEqualWith(array, other, customizer); + * // => true + */ +function isEqualWith(value, other, customizer) { + customizer = typeof customizer == 'function' ? customizer : undefined; + var result = customizer ? customizer(value, other) : undefined; + return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result; +} + +module.exports = isEqualWith; diff --git a/node_modules/lodash/isError.js b/node_modules/lodash/isError.js new file mode 100644 index 0000000..b4f41e0 --- /dev/null +++ b/node_modules/lodash/isError.js @@ -0,0 +1,36 @@ +var baseGetTag = require('./_baseGetTag'), + isObjectLike = require('./isObjectLike'), + isPlainObject = require('./isPlainObject'); + +/** `Object#toString` result references. */ +var domExcTag = '[object DOMException]', + errorTag = '[object Error]'; + +/** + * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`, + * `SyntaxError`, `TypeError`, or `URIError` object. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an error object, else `false`. + * @example + * + * _.isError(new Error); + * // => true + * + * _.isError(Error); + * // => false + */ +function isError(value) { + if (!isObjectLike(value)) { + return false; + } + var tag = baseGetTag(value); + return tag == errorTag || tag == domExcTag || + (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value)); +} + +module.exports = isError; diff --git a/node_modules/lodash/isFinite.js b/node_modules/lodash/isFinite.js new file mode 100644 index 0000000..601842b --- /dev/null +++ b/node_modules/lodash/isFinite.js @@ -0,0 +1,36 @@ +var root = require('./_root'); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeIsFinite = root.isFinite; + +/** + * Checks if `value` is a finite primitive number. + * + * **Note:** This method is based on + * [`Number.isFinite`](https://mdn.io/Number/isFinite). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a finite number, else `false`. + * @example + * + * _.isFinite(3); + * // => true + * + * _.isFinite(Number.MIN_VALUE); + * // => true + * + * _.isFinite(Infinity); + * // => false + * + * _.isFinite('3'); + * // => false + */ +function isFinite(value) { + return typeof value == 'number' && nativeIsFinite(value); +} + +module.exports = isFinite; diff --git a/node_modules/lodash/isFunction.js b/node_modules/lodash/isFunction.js new file mode 100644 index 0000000..907a8cd --- /dev/null +++ b/node_modules/lodash/isFunction.js @@ -0,0 +1,37 @@ +var baseGetTag = require('./_baseGetTag'), + isObject = require('./isObject'); + +/** `Object#toString` result references. */ +var asyncTag = '[object AsyncFunction]', + funcTag = '[object Function]', + genTag = '[object GeneratorFunction]', + proxyTag = '[object Proxy]'; + +/** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ +function isFunction(value) { + if (!isObject(value)) { + return false; + } + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 9 which returns 'object' for typed arrays and other constructors. + var tag = baseGetTag(value); + return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; +} + +module.exports = isFunction; diff --git a/node_modules/lodash/isInteger.js b/node_modules/lodash/isInteger.js new file mode 100644 index 0000000..66aa87d --- /dev/null +++ b/node_modules/lodash/isInteger.js @@ -0,0 +1,33 @@ +var toInteger = require('./toInteger'); + +/** + * Checks if `value` is an integer. + * + * **Note:** This method is based on + * [`Number.isInteger`](https://mdn.io/Number/isInteger). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an integer, else `false`. + * @example + * + * _.isInteger(3); + * // => true + * + * _.isInteger(Number.MIN_VALUE); + * // => false + * + * _.isInteger(Infinity); + * // => false + * + * _.isInteger('3'); + * // => false + */ +function isInteger(value) { + return typeof value == 'number' && value == toInteger(value); +} + +module.exports = isInteger; diff --git a/node_modules/lodash/isLength.js b/node_modules/lodash/isLength.js new file mode 100644 index 0000000..3a95caa --- /dev/null +++ b/node_modules/lodash/isLength.js @@ -0,0 +1,35 @@ +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** + * Checks if `value` is a valid array-like length. + * + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false + */ +function isLength(value) { + return typeof value == 'number' && + value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; +} + +module.exports = isLength; diff --git a/node_modules/lodash/isMap.js b/node_modules/lodash/isMap.js new file mode 100644 index 0000000..44f8517 --- /dev/null +++ b/node_modules/lodash/isMap.js @@ -0,0 +1,27 @@ +var baseIsMap = require('./_baseIsMap'), + baseUnary = require('./_baseUnary'), + nodeUtil = require('./_nodeUtil'); + +/* Node.js helper references. */ +var nodeIsMap = nodeUtil && nodeUtil.isMap; + +/** + * Checks if `value` is classified as a `Map` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a map, else `false`. + * @example + * + * _.isMap(new Map); + * // => true + * + * _.isMap(new WeakMap); + * // => false + */ +var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap; + +module.exports = isMap; diff --git a/node_modules/lodash/isMatch.js b/node_modules/lodash/isMatch.js new file mode 100644 index 0000000..9773a18 --- /dev/null +++ b/node_modules/lodash/isMatch.js @@ -0,0 +1,36 @@ +var baseIsMatch = require('./_baseIsMatch'), + getMatchData = require('./_getMatchData'); + +/** + * Performs a partial deep comparison between `object` and `source` to + * determine if `object` contains equivalent property values. + * + * **Note:** This method is equivalent to `_.matches` when `source` is + * partially applied. + * + * Partial comparisons will match empty array and empty object `source` + * values against any array or object value, respectively. See `_.isEqual` + * for a list of supported value comparisons. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {Object} object The object to inspect. + * @param {Object} source The object of property values to match. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * + * _.isMatch(object, { 'b': 2 }); + * // => true + * + * _.isMatch(object, { 'b': 1 }); + * // => false + */ +function isMatch(object, source) { + return object === source || baseIsMatch(object, source, getMatchData(source)); +} + +module.exports = isMatch; diff --git a/node_modules/lodash/isMatchWith.js b/node_modules/lodash/isMatchWith.js new file mode 100644 index 0000000..187b6a6 --- /dev/null +++ b/node_modules/lodash/isMatchWith.js @@ -0,0 +1,41 @@ +var baseIsMatch = require('./_baseIsMatch'), + getMatchData = require('./_getMatchData'); + +/** + * This method is like `_.isMatch` except that it accepts `customizer` which + * is invoked to compare values. If `customizer` returns `undefined`, comparisons + * are handled by the method instead. The `customizer` is invoked with five + * arguments: (objValue, srcValue, index|key, object, source). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {Object} object The object to inspect. + * @param {Object} source The object of property values to match. + * @param {Function} [customizer] The function to customize comparisons. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + * @example + * + * function isGreeting(value) { + * return /^h(?:i|ello)$/.test(value); + * } + * + * function customizer(objValue, srcValue) { + * if (isGreeting(objValue) && isGreeting(srcValue)) { + * return true; + * } + * } + * + * var object = { 'greeting': 'hello' }; + * var source = { 'greeting': 'hi' }; + * + * _.isMatchWith(object, source, customizer); + * // => true + */ +function isMatchWith(object, source, customizer) { + customizer = typeof customizer == 'function' ? customizer : undefined; + return baseIsMatch(object, source, getMatchData(source), customizer); +} + +module.exports = isMatchWith; diff --git a/node_modules/lodash/isNaN.js b/node_modules/lodash/isNaN.js new file mode 100644 index 0000000..7d0d783 --- /dev/null +++ b/node_modules/lodash/isNaN.js @@ -0,0 +1,38 @@ +var isNumber = require('./isNumber'); + +/** + * Checks if `value` is `NaN`. + * + * **Note:** This method is based on + * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as + * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for + * `undefined` and other non-number values. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. + * @example + * + * _.isNaN(NaN); + * // => true + * + * _.isNaN(new Number(NaN)); + * // => true + * + * isNaN(undefined); + * // => true + * + * _.isNaN(undefined); + * // => false + */ +function isNaN(value) { + // An `NaN` primitive is the only value that is not equal to itself. + // Perform the `toStringTag` check first to avoid errors with some + // ActiveX objects in IE. + return isNumber(value) && value != +value; +} + +module.exports = isNaN; diff --git a/node_modules/lodash/isNative.js b/node_modules/lodash/isNative.js new file mode 100644 index 0000000..f0cb8d5 --- /dev/null +++ b/node_modules/lodash/isNative.js @@ -0,0 +1,40 @@ +var baseIsNative = require('./_baseIsNative'), + isMaskable = require('./_isMaskable'); + +/** Error message constants. */ +var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.'; + +/** + * Checks if `value` is a pristine native function. + * + * **Note:** This method can't reliably detect native functions in the presence + * of the core-js package because core-js circumvents this kind of detection. + * Despite multiple requests, the core-js maintainer has made it clear: any + * attempt to fix the detection will be obstructed. As a result, we're left + * with little choice but to throw an error. Unfortunately, this also affects + * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill), + * which rely on core-js. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + * @example + * + * _.isNative(Array.prototype.push); + * // => true + * + * _.isNative(_); + * // => false + */ +function isNative(value) { + if (isMaskable(value)) { + throw new Error(CORE_ERROR_TEXT); + } + return baseIsNative(value); +} + +module.exports = isNative; diff --git a/node_modules/lodash/isNil.js b/node_modules/lodash/isNil.js new file mode 100644 index 0000000..79f0505 --- /dev/null +++ b/node_modules/lodash/isNil.js @@ -0,0 +1,25 @@ +/** + * Checks if `value` is `null` or `undefined`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is nullish, else `false`. + * @example + * + * _.isNil(null); + * // => true + * + * _.isNil(void 0); + * // => true + * + * _.isNil(NaN); + * // => false + */ +function isNil(value) { + return value == null; +} + +module.exports = isNil; diff --git a/node_modules/lodash/isNull.js b/node_modules/lodash/isNull.js new file mode 100644 index 0000000..c0a374d --- /dev/null +++ b/node_modules/lodash/isNull.js @@ -0,0 +1,22 @@ +/** + * Checks if `value` is `null`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `null`, else `false`. + * @example + * + * _.isNull(null); + * // => true + * + * _.isNull(void 0); + * // => false + */ +function isNull(value) { + return value === null; +} + +module.exports = isNull; diff --git a/node_modules/lodash/isNumber.js b/node_modules/lodash/isNumber.js new file mode 100644 index 0000000..cd34ee4 --- /dev/null +++ b/node_modules/lodash/isNumber.js @@ -0,0 +1,38 @@ +var baseGetTag = require('./_baseGetTag'), + isObjectLike = require('./isObjectLike'); + +/** `Object#toString` result references. */ +var numberTag = '[object Number]'; + +/** + * Checks if `value` is classified as a `Number` primitive or object. + * + * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are + * classified as numbers, use the `_.isFinite` method. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a number, else `false`. + * @example + * + * _.isNumber(3); + * // => true + * + * _.isNumber(Number.MIN_VALUE); + * // => true + * + * _.isNumber(Infinity); + * // => true + * + * _.isNumber('3'); + * // => false + */ +function isNumber(value) { + return typeof value == 'number' || + (isObjectLike(value) && baseGetTag(value) == numberTag); +} + +module.exports = isNumber; diff --git a/node_modules/lodash/isObject.js b/node_modules/lodash/isObject.js new file mode 100644 index 0000000..1dc8939 --- /dev/null +++ b/node_modules/lodash/isObject.js @@ -0,0 +1,31 @@ +/** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ +function isObject(value) { + var type = typeof value; + return value != null && (type == 'object' || type == 'function'); +} + +module.exports = isObject; diff --git a/node_modules/lodash/isObjectLike.js b/node_modules/lodash/isObjectLike.js new file mode 100644 index 0000000..301716b --- /dev/null +++ b/node_modules/lodash/isObjectLike.js @@ -0,0 +1,29 @@ +/** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ +function isObjectLike(value) { + return value != null && typeof value == 'object'; +} + +module.exports = isObjectLike; diff --git a/node_modules/lodash/isPlainObject.js b/node_modules/lodash/isPlainObject.js new file mode 100644 index 0000000..2387373 --- /dev/null +++ b/node_modules/lodash/isPlainObject.js @@ -0,0 +1,62 @@ +var baseGetTag = require('./_baseGetTag'), + getPrototype = require('./_getPrototype'), + isObjectLike = require('./isObjectLike'); + +/** `Object#toString` result references. */ +var objectTag = '[object Object]'; + +/** Used for built-in method references. */ +var funcProto = Function.prototype, + objectProto = Object.prototype; + +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Used to infer the `Object` constructor. */ +var objectCtorString = funcToString.call(Object); + +/** + * Checks if `value` is a plain object, that is, an object created by the + * `Object` constructor or one with a `[[Prototype]]` of `null`. + * + * @static + * @memberOf _ + * @since 0.8.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * _.isPlainObject(new Foo); + * // => false + * + * _.isPlainObject([1, 2, 3]); + * // => false + * + * _.isPlainObject({ 'x': 0, 'y': 0 }); + * // => true + * + * _.isPlainObject(Object.create(null)); + * // => true + */ +function isPlainObject(value) { + if (!isObjectLike(value) || baseGetTag(value) != objectTag) { + return false; + } + var proto = getPrototype(value); + if (proto === null) { + return true; + } + var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor; + return typeof Ctor == 'function' && Ctor instanceof Ctor && + funcToString.call(Ctor) == objectCtorString; +} + +module.exports = isPlainObject; diff --git a/node_modules/lodash/isRegExp.js b/node_modules/lodash/isRegExp.js new file mode 100644 index 0000000..76c9b6e --- /dev/null +++ b/node_modules/lodash/isRegExp.js @@ -0,0 +1,27 @@ +var baseIsRegExp = require('./_baseIsRegExp'), + baseUnary = require('./_baseUnary'), + nodeUtil = require('./_nodeUtil'); + +/* Node.js helper references. */ +var nodeIsRegExp = nodeUtil && nodeUtil.isRegExp; + +/** + * Checks if `value` is classified as a `RegExp` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. + * @example + * + * _.isRegExp(/abc/); + * // => true + * + * _.isRegExp('/abc/'); + * // => false + */ +var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp; + +module.exports = isRegExp; diff --git a/node_modules/lodash/isSafeInteger.js b/node_modules/lodash/isSafeInteger.js new file mode 100644 index 0000000..2a48526 --- /dev/null +++ b/node_modules/lodash/isSafeInteger.js @@ -0,0 +1,37 @@ +var isInteger = require('./isInteger'); + +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** + * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754 + * double precision number which isn't the result of a rounded unsafe integer. + * + * **Note:** This method is based on + * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`. + * @example + * + * _.isSafeInteger(3); + * // => true + * + * _.isSafeInteger(Number.MIN_VALUE); + * // => false + * + * _.isSafeInteger(Infinity); + * // => false + * + * _.isSafeInteger('3'); + * // => false + */ +function isSafeInteger(value) { + return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER; +} + +module.exports = isSafeInteger; diff --git a/node_modules/lodash/isSet.js b/node_modules/lodash/isSet.js new file mode 100644 index 0000000..ab88bdf --- /dev/null +++ b/node_modules/lodash/isSet.js @@ -0,0 +1,27 @@ +var baseIsSet = require('./_baseIsSet'), + baseUnary = require('./_baseUnary'), + nodeUtil = require('./_nodeUtil'); + +/* Node.js helper references. */ +var nodeIsSet = nodeUtil && nodeUtil.isSet; + +/** + * Checks if `value` is classified as a `Set` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a set, else `false`. + * @example + * + * _.isSet(new Set); + * // => true + * + * _.isSet(new WeakSet); + * // => false + */ +var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet; + +module.exports = isSet; diff --git a/node_modules/lodash/isString.js b/node_modules/lodash/isString.js new file mode 100644 index 0000000..627eb9c --- /dev/null +++ b/node_modules/lodash/isString.js @@ -0,0 +1,30 @@ +var baseGetTag = require('./_baseGetTag'), + isArray = require('./isArray'), + isObjectLike = require('./isObjectLike'); + +/** `Object#toString` result references. */ +var stringTag = '[object String]'; + +/** + * Checks if `value` is classified as a `String` primitive or object. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a string, else `false`. + * @example + * + * _.isString('abc'); + * // => true + * + * _.isString(1); + * // => false + */ +function isString(value) { + return typeof value == 'string' || + (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag); +} + +module.exports = isString; diff --git a/node_modules/lodash/isSymbol.js b/node_modules/lodash/isSymbol.js new file mode 100644 index 0000000..dfb60b9 --- /dev/null +++ b/node_modules/lodash/isSymbol.js @@ -0,0 +1,29 @@ +var baseGetTag = require('./_baseGetTag'), + isObjectLike = require('./isObjectLike'); + +/** `Object#toString` result references. */ +var symbolTag = '[object Symbol]'; + +/** + * Checks if `value` is classified as a `Symbol` primitive or object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false + */ +function isSymbol(value) { + return typeof value == 'symbol' || + (isObjectLike(value) && baseGetTag(value) == symbolTag); +} + +module.exports = isSymbol; diff --git a/node_modules/lodash/isTypedArray.js b/node_modules/lodash/isTypedArray.js new file mode 100644 index 0000000..da3f8dd --- /dev/null +++ b/node_modules/lodash/isTypedArray.js @@ -0,0 +1,27 @@ +var baseIsTypedArray = require('./_baseIsTypedArray'), + baseUnary = require('./_baseUnary'), + nodeUtil = require('./_nodeUtil'); + +/* Node.js helper references. */ +var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; + +/** + * Checks if `value` is classified as a typed array. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + * @example + * + * _.isTypedArray(new Uint8Array); + * // => true + * + * _.isTypedArray([]); + * // => false + */ +var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; + +module.exports = isTypedArray; diff --git a/node_modules/lodash/isUndefined.js b/node_modules/lodash/isUndefined.js new file mode 100644 index 0000000..377d121 --- /dev/null +++ b/node_modules/lodash/isUndefined.js @@ -0,0 +1,22 @@ +/** + * Checks if `value` is `undefined`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`. + * @example + * + * _.isUndefined(void 0); + * // => true + * + * _.isUndefined(null); + * // => false + */ +function isUndefined(value) { + return value === undefined; +} + +module.exports = isUndefined; diff --git a/node_modules/lodash/isWeakMap.js b/node_modules/lodash/isWeakMap.js new file mode 100644 index 0000000..8d36f66 --- /dev/null +++ b/node_modules/lodash/isWeakMap.js @@ -0,0 +1,28 @@ +var getTag = require('./_getTag'), + isObjectLike = require('./isObjectLike'); + +/** `Object#toString` result references. */ +var weakMapTag = '[object WeakMap]'; + +/** + * Checks if `value` is classified as a `WeakMap` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a weak map, else `false`. + * @example + * + * _.isWeakMap(new WeakMap); + * // => true + * + * _.isWeakMap(new Map); + * // => false + */ +function isWeakMap(value) { + return isObjectLike(value) && getTag(value) == weakMapTag; +} + +module.exports = isWeakMap; diff --git a/node_modules/lodash/isWeakSet.js b/node_modules/lodash/isWeakSet.js new file mode 100644 index 0000000..e628b26 --- /dev/null +++ b/node_modules/lodash/isWeakSet.js @@ -0,0 +1,28 @@ +var baseGetTag = require('./_baseGetTag'), + isObjectLike = require('./isObjectLike'); + +/** `Object#toString` result references. */ +var weakSetTag = '[object WeakSet]'; + +/** + * Checks if `value` is classified as a `WeakSet` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a weak set, else `false`. + * @example + * + * _.isWeakSet(new WeakSet); + * // => true + * + * _.isWeakSet(new Set); + * // => false + */ +function isWeakSet(value) { + return isObjectLike(value) && baseGetTag(value) == weakSetTag; +} + +module.exports = isWeakSet; diff --git a/node_modules/lodash/iteratee.js b/node_modules/lodash/iteratee.js new file mode 100644 index 0000000..61b73a8 --- /dev/null +++ b/node_modules/lodash/iteratee.js @@ -0,0 +1,53 @@ +var baseClone = require('./_baseClone'), + baseIteratee = require('./_baseIteratee'); + +/** Used to compose bitmasks for cloning. */ +var CLONE_DEEP_FLAG = 1; + +/** + * Creates a function that invokes `func` with the arguments of the created + * function. If `func` is a property name, the created function returns the + * property value for a given element. If `func` is an array or object, the + * created function returns `true` for elements that contain the equivalent + * source properties, otherwise it returns `false`. + * + * @static + * @since 4.0.0 + * @memberOf _ + * @category Util + * @param {*} [func=_.identity] The value to convert to a callback. + * @returns {Function} Returns the callback. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': true }, + * { 'user': 'fred', 'age': 40, 'active': false } + * ]; + * + * // The `_.matches` iteratee shorthand. + * _.filter(users, _.iteratee({ 'user': 'barney', 'active': true })); + * // => [{ 'user': 'barney', 'age': 36, 'active': true }] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.filter(users, _.iteratee(['user', 'fred'])); + * // => [{ 'user': 'fred', 'age': 40 }] + * + * // The `_.property` iteratee shorthand. + * _.map(users, _.iteratee('user')); + * // => ['barney', 'fred'] + * + * // Create custom iteratee shorthands. + * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) { + * return !_.isRegExp(func) ? iteratee(func) : function(string) { + * return func.test(string); + * }; + * }); + * + * _.filter(['abc', 'def'], /ef/); + * // => ['def'] + */ +function iteratee(func) { + return baseIteratee(typeof func == 'function' ? func : baseClone(func, CLONE_DEEP_FLAG)); +} + +module.exports = iteratee; diff --git a/node_modules/lodash/join.js b/node_modules/lodash/join.js new file mode 100644 index 0000000..45de079 --- /dev/null +++ b/node_modules/lodash/join.js @@ -0,0 +1,26 @@ +/** Used for built-in method references. */ +var arrayProto = Array.prototype; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeJoin = arrayProto.join; + +/** + * Converts all elements in `array` into a string separated by `separator`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to convert. + * @param {string} [separator=','] The element separator. + * @returns {string} Returns the joined string. + * @example + * + * _.join(['a', 'b', 'c'], '~'); + * // => 'a~b~c' + */ +function join(array, separator) { + return array == null ? '' : nativeJoin.call(array, separator); +} + +module.exports = join; diff --git a/node_modules/lodash/kebabCase.js b/node_modules/lodash/kebabCase.js new file mode 100644 index 0000000..8a52be6 --- /dev/null +++ b/node_modules/lodash/kebabCase.js @@ -0,0 +1,28 @@ +var createCompounder = require('./_createCompounder'); + +/** + * Converts `string` to + * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to convert. + * @returns {string} Returns the kebab cased string. + * @example + * + * _.kebabCase('Foo Bar'); + * // => 'foo-bar' + * + * _.kebabCase('fooBar'); + * // => 'foo-bar' + * + * _.kebabCase('__FOO_BAR__'); + * // => 'foo-bar' + */ +var kebabCase = createCompounder(function(result, word, index) { + return result + (index ? '-' : '') + word.toLowerCase(); +}); + +module.exports = kebabCase; diff --git a/node_modules/lodash/keyBy.js b/node_modules/lodash/keyBy.js new file mode 100644 index 0000000..acc007a --- /dev/null +++ b/node_modules/lodash/keyBy.js @@ -0,0 +1,36 @@ +var baseAssignValue = require('./_baseAssignValue'), + createAggregator = require('./_createAggregator'); + +/** + * Creates an object composed of keys generated from the results of running + * each element of `collection` thru `iteratee`. The corresponding value of + * each key is the last element responsible for generating the key. The + * iteratee is invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The iteratee to transform keys. + * @returns {Object} Returns the composed aggregate object. + * @example + * + * var array = [ + * { 'dir': 'left', 'code': 97 }, + * { 'dir': 'right', 'code': 100 } + * ]; + * + * _.keyBy(array, function(o) { + * return String.fromCharCode(o.code); + * }); + * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } } + * + * _.keyBy(array, 'dir'); + * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } } + */ +var keyBy = createAggregator(function(result, value, key) { + baseAssignValue(result, key, value); +}); + +module.exports = keyBy; diff --git a/node_modules/lodash/keys.js b/node_modules/lodash/keys.js new file mode 100644 index 0000000..d143c71 --- /dev/null +++ b/node_modules/lodash/keys.js @@ -0,0 +1,37 @@ +var arrayLikeKeys = require('./_arrayLikeKeys'), + baseKeys = require('./_baseKeys'), + isArrayLike = require('./isArrayLike'); + +/** + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * for more details. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] + */ +function keys(object) { + return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); +} + +module.exports = keys; diff --git a/node_modules/lodash/keysIn.js b/node_modules/lodash/keysIn.js new file mode 100644 index 0000000..a62308f --- /dev/null +++ b/node_modules/lodash/keysIn.js @@ -0,0 +1,32 @@ +var arrayLikeKeys = require('./_arrayLikeKeys'), + baseKeysIn = require('./_baseKeysIn'), + isArrayLike = require('./isArrayLike'); + +/** + * Creates an array of the own and inherited enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keysIn(new Foo); + * // => ['a', 'b', 'c'] (iteration order is not guaranteed) + */ +function keysIn(object) { + return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); +} + +module.exports = keysIn; diff --git a/node_modules/lodash/lang.js b/node_modules/lodash/lang.js new file mode 100644 index 0000000..a396216 --- /dev/null +++ b/node_modules/lodash/lang.js @@ -0,0 +1,58 @@ +module.exports = { + 'castArray': require('./castArray'), + 'clone': require('./clone'), + 'cloneDeep': require('./cloneDeep'), + 'cloneDeepWith': require('./cloneDeepWith'), + 'cloneWith': require('./cloneWith'), + 'conformsTo': require('./conformsTo'), + 'eq': require('./eq'), + 'gt': require('./gt'), + 'gte': require('./gte'), + 'isArguments': require('./isArguments'), + 'isArray': require('./isArray'), + 'isArrayBuffer': require('./isArrayBuffer'), + 'isArrayLike': require('./isArrayLike'), + 'isArrayLikeObject': require('./isArrayLikeObject'), + 'isBoolean': require('./isBoolean'), + 'isBuffer': require('./isBuffer'), + 'isDate': require('./isDate'), + 'isElement': require('./isElement'), + 'isEmpty': require('./isEmpty'), + 'isEqual': require('./isEqual'), + 'isEqualWith': require('./isEqualWith'), + 'isError': require('./isError'), + 'isFinite': require('./isFinite'), + 'isFunction': require('./isFunction'), + 'isInteger': require('./isInteger'), + 'isLength': require('./isLength'), + 'isMap': require('./isMap'), + 'isMatch': require('./isMatch'), + 'isMatchWith': require('./isMatchWith'), + 'isNaN': require('./isNaN'), + 'isNative': require('./isNative'), + 'isNil': require('./isNil'), + 'isNull': require('./isNull'), + 'isNumber': require('./isNumber'), + 'isObject': require('./isObject'), + 'isObjectLike': require('./isObjectLike'), + 'isPlainObject': require('./isPlainObject'), + 'isRegExp': require('./isRegExp'), + 'isSafeInteger': require('./isSafeInteger'), + 'isSet': require('./isSet'), + 'isString': require('./isString'), + 'isSymbol': require('./isSymbol'), + 'isTypedArray': require('./isTypedArray'), + 'isUndefined': require('./isUndefined'), + 'isWeakMap': require('./isWeakMap'), + 'isWeakSet': require('./isWeakSet'), + 'lt': require('./lt'), + 'lte': require('./lte'), + 'toArray': require('./toArray'), + 'toFinite': require('./toFinite'), + 'toInteger': require('./toInteger'), + 'toLength': require('./toLength'), + 'toNumber': require('./toNumber'), + 'toPlainObject': require('./toPlainObject'), + 'toSafeInteger': require('./toSafeInteger'), + 'toString': require('./toString') +}; diff --git a/node_modules/lodash/last.js b/node_modules/lodash/last.js new file mode 100644 index 0000000..cad1eaf --- /dev/null +++ b/node_modules/lodash/last.js @@ -0,0 +1,20 @@ +/** + * Gets the last element of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to query. + * @returns {*} Returns the last element of `array`. + * @example + * + * _.last([1, 2, 3]); + * // => 3 + */ +function last(array) { + var length = array == null ? 0 : array.length; + return length ? array[length - 1] : undefined; +} + +module.exports = last; diff --git a/node_modules/lodash/lastIndexOf.js b/node_modules/lodash/lastIndexOf.js new file mode 100644 index 0000000..dabfb61 --- /dev/null +++ b/node_modules/lodash/lastIndexOf.js @@ -0,0 +1,46 @@ +var baseFindIndex = require('./_baseFindIndex'), + baseIsNaN = require('./_baseIsNaN'), + strictLastIndexOf = require('./_strictLastIndexOf'), + toInteger = require('./toInteger'); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max, + nativeMin = Math.min; + +/** + * This method is like `_.indexOf` except that it iterates over elements of + * `array` from right to left. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} [fromIndex=array.length-1] The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + * @example + * + * _.lastIndexOf([1, 2, 1, 2], 2); + * // => 3 + * + * // Search from the `fromIndex`. + * _.lastIndexOf([1, 2, 1, 2], 2, 2); + * // => 1 + */ +function lastIndexOf(array, value, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = length; + if (fromIndex !== undefined) { + index = toInteger(fromIndex); + index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); + } + return value === value + ? strictLastIndexOf(array, value, index) + : baseFindIndex(array, baseIsNaN, index, true); +} + +module.exports = lastIndexOf; diff --git a/node_modules/lodash/lodash.js b/node_modules/lodash/lodash.js new file mode 100644 index 0000000..1fd7116 --- /dev/null +++ b/node_modules/lodash/lodash.js @@ -0,0 +1,17161 @@ +/** + * @license + * Lodash + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */ +;(function() { + + /** Used as a safe reference for `undefined` in pre-ES5 environments. */ + var undefined; + + /** Used as the semantic version number. */ + var VERSION = '4.17.20'; + + /** Used as the size to enable large array optimizations. */ + var LARGE_ARRAY_SIZE = 200; + + /** Error message constants. */ + var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.', + FUNC_ERROR_TEXT = 'Expected a function'; + + /** Used to stand-in for `undefined` hash values. */ + var HASH_UNDEFINED = '__lodash_hash_undefined__'; + + /** Used as the maximum memoize cache size. */ + var MAX_MEMOIZE_SIZE = 500; + + /** Used as the internal argument placeholder. */ + var PLACEHOLDER = '__lodash_placeholder__'; + + /** Used to compose bitmasks for cloning. */ + var CLONE_DEEP_FLAG = 1, + CLONE_FLAT_FLAG = 2, + CLONE_SYMBOLS_FLAG = 4; + + /** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + + /** Used to compose bitmasks for function metadata. */ + var WRAP_BIND_FLAG = 1, + WRAP_BIND_KEY_FLAG = 2, + WRAP_CURRY_BOUND_FLAG = 4, + WRAP_CURRY_FLAG = 8, + WRAP_CURRY_RIGHT_FLAG = 16, + WRAP_PARTIAL_FLAG = 32, + WRAP_PARTIAL_RIGHT_FLAG = 64, + WRAP_ARY_FLAG = 128, + WRAP_REARG_FLAG = 256, + WRAP_FLIP_FLAG = 512; + + /** Used as default options for `_.truncate`. */ + var DEFAULT_TRUNC_LENGTH = 30, + DEFAULT_TRUNC_OMISSION = '...'; + + /** Used to detect hot functions by number of calls within a span of milliseconds. */ + var HOT_COUNT = 800, + HOT_SPAN = 16; + + /** Used to indicate the type of lazy iteratees. */ + var LAZY_FILTER_FLAG = 1, + LAZY_MAP_FLAG = 2, + LAZY_WHILE_FLAG = 3; + + /** Used as references for various `Number` constants. */ + var INFINITY = 1 / 0, + MAX_SAFE_INTEGER = 9007199254740991, + MAX_INTEGER = 1.7976931348623157e+308, + NAN = 0 / 0; + + /** Used as references for the maximum length and index of an array. */ + var MAX_ARRAY_LENGTH = 4294967295, + MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1, + HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1; + + /** Used to associate wrap methods with their bit flags. */ + var wrapFlags = [ + ['ary', WRAP_ARY_FLAG], + ['bind', WRAP_BIND_FLAG], + ['bindKey', WRAP_BIND_KEY_FLAG], + ['curry', WRAP_CURRY_FLAG], + ['curryRight', WRAP_CURRY_RIGHT_FLAG], + ['flip', WRAP_FLIP_FLAG], + ['partial', WRAP_PARTIAL_FLAG], + ['partialRight', WRAP_PARTIAL_RIGHT_FLAG], + ['rearg', WRAP_REARG_FLAG] + ]; + + /** `Object#toString` result references. */ + var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + asyncTag = '[object AsyncFunction]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + domExcTag = '[object DOMException]', + errorTag = '[object Error]', + funcTag = '[object Function]', + genTag = '[object GeneratorFunction]', + mapTag = '[object Map]', + numberTag = '[object Number]', + nullTag = '[object Null]', + objectTag = '[object Object]', + promiseTag = '[object Promise]', + proxyTag = '[object Proxy]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + symbolTag = '[object Symbol]', + undefinedTag = '[object Undefined]', + weakMapTag = '[object WeakMap]', + weakSetTag = '[object WeakSet]'; + + var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + + /** Used to match empty string literals in compiled template source. */ + var reEmptyStringLeading = /\b__p \+= '';/g, + reEmptyStringMiddle = /\b(__p \+=) '' \+/g, + reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g; + + /** Used to match HTML entities and HTML characters. */ + var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g, + reUnescapedHtml = /[&<>"']/g, + reHasEscapedHtml = RegExp(reEscapedHtml.source), + reHasUnescapedHtml = RegExp(reUnescapedHtml.source); + + /** Used to match template delimiters. */ + var reEscape = /<%-([\s\S]+?)%>/g, + reEvaluate = /<%([\s\S]+?)%>/g, + reInterpolate = /<%=([\s\S]+?)%>/g; + + /** Used to match property names within property paths. */ + var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, + reIsPlainProp = /^\w*$/, + rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; + + /** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + */ + var reRegExpChar = /[\\^$.*+?()[\]{}|]/g, + reHasRegExpChar = RegExp(reRegExpChar.source); + + /** Used to match leading and trailing whitespace. */ + var reTrim = /^\s+|\s+$/g, + reTrimStart = /^\s+/, + reTrimEnd = /\s+$/; + + /** Used to match wrap detail comments. */ + var reWrapComment = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, + reWrapDetails = /\{\n\/\* \[wrapped with (.+)\] \*/, + reSplitDetails = /,? & /; + + /** Used to match words composed of alphanumeric characters. */ + var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g; + + /** Used to match backslashes in property paths. */ + var reEscapeChar = /\\(\\)?/g; + + /** + * Used to match + * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components). + */ + var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g; + + /** Used to match `RegExp` flags from their coerced string values. */ + var reFlags = /\w*$/; + + /** Used to detect bad signed hexadecimal string values. */ + var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + + /** Used to detect binary string values. */ + var reIsBinary = /^0b[01]+$/i; + + /** Used to detect host constructors (Safari). */ + var reIsHostCtor = /^\[object .+?Constructor\]$/; + + /** Used to detect octal string values. */ + var reIsOctal = /^0o[0-7]+$/i; + + /** Used to detect unsigned integer values. */ + var reIsUint = /^(?:0|[1-9]\d*)$/; + + /** Used to match Latin Unicode letters (excluding mathematical operators). */ + var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g; + + /** Used to ensure capturing order of template delimiters. */ + var reNoMatch = /($^)/; + + /** Used to match unescaped characters in compiled string literals. */ + var reUnescapedString = /['\n\r\u2028\u2029\\]/g; + + /** Used to compose unicode character classes. */ + var rsAstralRange = '\\ud800-\\udfff', + rsComboMarksRange = '\\u0300-\\u036f', + reComboHalfMarksRange = '\\ufe20-\\ufe2f', + rsComboSymbolsRange = '\\u20d0-\\u20ff', + rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, + rsDingbatRange = '\\u2700-\\u27bf', + rsLowerRange = 'a-z\\xdf-\\xf6\\xf8-\\xff', + rsMathOpRange = '\\xac\\xb1\\xd7\\xf7', + rsNonCharRange = '\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf', + rsPunctuationRange = '\\u2000-\\u206f', + rsSpaceRange = ' \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000', + rsUpperRange = 'A-Z\\xc0-\\xd6\\xd8-\\xde', + rsVarRange = '\\ufe0e\\ufe0f', + rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange; + + /** Used to compose unicode capture groups. */ + var rsApos = "['\u2019]", + rsAstral = '[' + rsAstralRange + ']', + rsBreak = '[' + rsBreakRange + ']', + rsCombo = '[' + rsComboRange + ']', + rsDigits = '\\d+', + rsDingbat = '[' + rsDingbatRange + ']', + rsLower = '[' + rsLowerRange + ']', + rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']', + rsFitz = '\\ud83c[\\udffb-\\udfff]', + rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', + rsNonAstral = '[^' + rsAstralRange + ']', + rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', + rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', + rsUpper = '[' + rsUpperRange + ']', + rsZWJ = '\\u200d'; + + /** Used to compose unicode regexes. */ + var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')', + rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')', + rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?', + rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?', + reOptMod = rsModifier + '?', + rsOptVar = '[' + rsVarRange + ']?', + rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', + rsOrdLower = '\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])', + rsOrdUpper = '\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])', + rsSeq = rsOptVar + reOptMod + rsOptJoin, + rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq, + rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; + + /** Used to match apostrophes. */ + var reApos = RegExp(rsApos, 'g'); + + /** + * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and + * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols). + */ + var reComboMark = RegExp(rsCombo, 'g'); + + /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */ + var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g'); + + /** Used to match complex or compound words. */ + var reUnicodeWord = RegExp([ + rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')', + rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')', + rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower, + rsUpper + '+' + rsOptContrUpper, + rsOrdUpper, + rsOrdLower, + rsDigits, + rsEmoji + ].join('|'), 'g'); + + /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */ + var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']'); + + /** Used to detect strings that need a more robust regexp to match words. */ + var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/; + + /** Used to assign default `context` object properties. */ + var contextProps = [ + 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array', + 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object', + 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array', + 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap', + '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout' + ]; + + /** Used to make template sourceURLs easier to identify. */ + var templateCounter = -1; + + /** Used to identify `toStringTag` values of typed arrays. */ + var typedArrayTags = {}; + typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = + typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = + typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = + typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = + typedArrayTags[uint32Tag] = true; + typedArrayTags[argsTag] = typedArrayTags[arrayTag] = + typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = + typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = + typedArrayTags[errorTag] = typedArrayTags[funcTag] = + typedArrayTags[mapTag] = typedArrayTags[numberTag] = + typedArrayTags[objectTag] = typedArrayTags[regexpTag] = + typedArrayTags[setTag] = typedArrayTags[stringTag] = + typedArrayTags[weakMapTag] = false; + + /** Used to identify `toStringTag` values supported by `_.clone`. */ + var cloneableTags = {}; + cloneableTags[argsTag] = cloneableTags[arrayTag] = + cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = + cloneableTags[boolTag] = cloneableTags[dateTag] = + cloneableTags[float32Tag] = cloneableTags[float64Tag] = + cloneableTags[int8Tag] = cloneableTags[int16Tag] = + cloneableTags[int32Tag] = cloneableTags[mapTag] = + cloneableTags[numberTag] = cloneableTags[objectTag] = + cloneableTags[regexpTag] = cloneableTags[setTag] = + cloneableTags[stringTag] = cloneableTags[symbolTag] = + cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = + cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; + cloneableTags[errorTag] = cloneableTags[funcTag] = + cloneableTags[weakMapTag] = false; + + /** Used to map Latin Unicode letters to basic Latin letters. */ + var deburredLetters = { + // Latin-1 Supplement block. + '\xc0': 'A', '\xc1': 'A', '\xc2': 'A', '\xc3': 'A', '\xc4': 'A', '\xc5': 'A', + '\xe0': 'a', '\xe1': 'a', '\xe2': 'a', '\xe3': 'a', '\xe4': 'a', '\xe5': 'a', + '\xc7': 'C', '\xe7': 'c', + '\xd0': 'D', '\xf0': 'd', + '\xc8': 'E', '\xc9': 'E', '\xca': 'E', '\xcb': 'E', + '\xe8': 'e', '\xe9': 'e', '\xea': 'e', '\xeb': 'e', + '\xcc': 'I', '\xcd': 'I', '\xce': 'I', '\xcf': 'I', + '\xec': 'i', '\xed': 'i', '\xee': 'i', '\xef': 'i', + '\xd1': 'N', '\xf1': 'n', + '\xd2': 'O', '\xd3': 'O', '\xd4': 'O', '\xd5': 'O', '\xd6': 'O', '\xd8': 'O', + '\xf2': 'o', '\xf3': 'o', '\xf4': 'o', '\xf5': 'o', '\xf6': 'o', '\xf8': 'o', + '\xd9': 'U', '\xda': 'U', '\xdb': 'U', '\xdc': 'U', + '\xf9': 'u', '\xfa': 'u', '\xfb': 'u', '\xfc': 'u', + '\xdd': 'Y', '\xfd': 'y', '\xff': 'y', + '\xc6': 'Ae', '\xe6': 'ae', + '\xde': 'Th', '\xfe': 'th', + '\xdf': 'ss', + // Latin Extended-A block. + '\u0100': 'A', '\u0102': 'A', '\u0104': 'A', + '\u0101': 'a', '\u0103': 'a', '\u0105': 'a', + '\u0106': 'C', '\u0108': 'C', '\u010a': 'C', '\u010c': 'C', + '\u0107': 'c', '\u0109': 'c', '\u010b': 'c', '\u010d': 'c', + '\u010e': 'D', '\u0110': 'D', '\u010f': 'd', '\u0111': 'd', + '\u0112': 'E', '\u0114': 'E', '\u0116': 'E', '\u0118': 'E', '\u011a': 'E', + '\u0113': 'e', '\u0115': 'e', '\u0117': 'e', '\u0119': 'e', '\u011b': 'e', + '\u011c': 'G', '\u011e': 'G', '\u0120': 'G', '\u0122': 'G', + '\u011d': 'g', '\u011f': 'g', '\u0121': 'g', '\u0123': 'g', + '\u0124': 'H', '\u0126': 'H', '\u0125': 'h', '\u0127': 'h', + '\u0128': 'I', '\u012a': 'I', '\u012c': 'I', '\u012e': 'I', '\u0130': 'I', + '\u0129': 'i', '\u012b': 'i', '\u012d': 'i', '\u012f': 'i', '\u0131': 'i', + '\u0134': 'J', '\u0135': 'j', + '\u0136': 'K', '\u0137': 'k', '\u0138': 'k', + '\u0139': 'L', '\u013b': 'L', '\u013d': 'L', '\u013f': 'L', '\u0141': 'L', + '\u013a': 'l', '\u013c': 'l', '\u013e': 'l', '\u0140': 'l', '\u0142': 'l', + '\u0143': 'N', '\u0145': 'N', '\u0147': 'N', '\u014a': 'N', + '\u0144': 'n', '\u0146': 'n', '\u0148': 'n', '\u014b': 'n', + '\u014c': 'O', '\u014e': 'O', '\u0150': 'O', + '\u014d': 'o', '\u014f': 'o', '\u0151': 'o', + '\u0154': 'R', '\u0156': 'R', '\u0158': 'R', + '\u0155': 'r', '\u0157': 'r', '\u0159': 'r', + '\u015a': 'S', '\u015c': 'S', '\u015e': 'S', '\u0160': 'S', + '\u015b': 's', '\u015d': 's', '\u015f': 's', '\u0161': 's', + '\u0162': 'T', '\u0164': 'T', '\u0166': 'T', + '\u0163': 't', '\u0165': 't', '\u0167': 't', + '\u0168': 'U', '\u016a': 'U', '\u016c': 'U', '\u016e': 'U', '\u0170': 'U', '\u0172': 'U', + '\u0169': 'u', '\u016b': 'u', '\u016d': 'u', '\u016f': 'u', '\u0171': 'u', '\u0173': 'u', + '\u0174': 'W', '\u0175': 'w', + '\u0176': 'Y', '\u0177': 'y', '\u0178': 'Y', + '\u0179': 'Z', '\u017b': 'Z', '\u017d': 'Z', + '\u017a': 'z', '\u017c': 'z', '\u017e': 'z', + '\u0132': 'IJ', '\u0133': 'ij', + '\u0152': 'Oe', '\u0153': 'oe', + '\u0149': "'n", '\u017f': 's' + }; + + /** Used to map characters to HTML entities. */ + var htmlEscapes = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''' + }; + + /** Used to map HTML entities to characters. */ + var htmlUnescapes = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + ''': "'" + }; + + /** Used to escape characters for inclusion in compiled string literals. */ + var stringEscapes = { + '\\': '\\', + "'": "'", + '\n': 'n', + '\r': 'r', + '\u2028': 'u2028', + '\u2029': 'u2029' + }; + + /** Built-in method references without a dependency on `root`. */ + var freeParseFloat = parseFloat, + freeParseInt = parseInt; + + /** Detect free variable `global` from Node.js. */ + var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; + + /** Detect free variable `self`. */ + var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + + /** Used as a reference to the global object. */ + var root = freeGlobal || freeSelf || Function('return this')(); + + /** Detect free variable `exports`. */ + var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; + + /** Detect free variable `module`. */ + var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; + + /** Detect the popular CommonJS extension `module.exports`. */ + var moduleExports = freeModule && freeModule.exports === freeExports; + + /** Detect free variable `process` from Node.js. */ + var freeProcess = moduleExports && freeGlobal.process; + + /** Used to access faster Node.js helpers. */ + var nodeUtil = (function() { + try { + // Use `util.types` for Node.js 10+. + var types = freeModule && freeModule.require && freeModule.require('util').types; + + if (types) { + return types; + } + + // Legacy `process.binding('util')` for Node.js < 10. + return freeProcess && freeProcess.binding && freeProcess.binding('util'); + } catch (e) {} + }()); + + /* Node.js helper references. */ + var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer, + nodeIsDate = nodeUtil && nodeUtil.isDate, + nodeIsMap = nodeUtil && nodeUtil.isMap, + nodeIsRegExp = nodeUtil && nodeUtil.isRegExp, + nodeIsSet = nodeUtil && nodeUtil.isSet, + nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; + + /*--------------------------------------------------------------------------*/ + + /** + * A faster alternative to `Function#apply`, this function invokes `func` + * with the `this` binding of `thisArg` and the arguments of `args`. + * + * @private + * @param {Function} func The function to invoke. + * @param {*} thisArg The `this` binding of `func`. + * @param {Array} args The arguments to invoke `func` with. + * @returns {*} Returns the result of `func`. + */ + function apply(func, thisArg, args) { + switch (args.length) { + case 0: return func.call(thisArg); + case 1: return func.call(thisArg, args[0]); + case 2: return func.call(thisArg, args[0], args[1]); + case 3: return func.call(thisArg, args[0], args[1], args[2]); + } + return func.apply(thisArg, args); + } + + /** + * A specialized version of `baseAggregator` for arrays. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} setter The function to set `accumulator` values. + * @param {Function} iteratee The iteratee to transform keys. + * @param {Object} accumulator The initial aggregated object. + * @returns {Function} Returns `accumulator`. + */ + function arrayAggregator(array, setter, iteratee, accumulator) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + var value = array[index]; + setter(accumulator, value, iteratee(value), array); + } + return accumulator; + } + + /** + * A specialized version of `_.forEach` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns `array`. + */ + function arrayEach(array, iteratee) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (iteratee(array[index], index, array) === false) { + break; + } + } + return array; + } + + /** + * A specialized version of `_.forEachRight` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns `array`. + */ + function arrayEachRight(array, iteratee) { + var length = array == null ? 0 : array.length; + + while (length--) { + if (iteratee(array[length], length, array) === false) { + break; + } + } + return array; + } + + /** + * A specialized version of `_.every` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if all elements pass the predicate check, + * else `false`. + */ + function arrayEvery(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (!predicate(array[index], index, array)) { + return false; + } + } + return true; + } + + /** + * A specialized version of `_.filter` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + */ + function arrayFilter(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length, + resIndex = 0, + result = []; + + while (++index < length) { + var value = array[index]; + if (predicate(value, index, array)) { + result[resIndex++] = value; + } + } + return result; + } + + /** + * A specialized version of `_.includes` for arrays without support for + * specifying an index to search from. + * + * @private + * @param {Array} [array] The array to inspect. + * @param {*} target The value to search for. + * @returns {boolean} Returns `true` if `target` is found, else `false`. + */ + function arrayIncludes(array, value) { + var length = array == null ? 0 : array.length; + return !!length && baseIndexOf(array, value, 0) > -1; + } + + /** + * This function is like `arrayIncludes` except that it accepts a comparator. + * + * @private + * @param {Array} [array] The array to inspect. + * @param {*} target The value to search for. + * @param {Function} comparator The comparator invoked per element. + * @returns {boolean} Returns `true` if `target` is found, else `false`. + */ + function arrayIncludesWith(array, value, comparator) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (comparator(value, array[index])) { + return true; + } + } + return false; + } + + /** + * A specialized version of `_.map` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ + function arrayMap(array, iteratee) { + var index = -1, + length = array == null ? 0 : array.length, + result = Array(length); + + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; + } + + /** + * Appends the elements of `values` to `array`. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to append. + * @returns {Array} Returns `array`. + */ + function arrayPush(array, values) { + var index = -1, + length = values.length, + offset = array.length; + + while (++index < length) { + array[offset + index] = values[index]; + } + return array; + } + + /** + * A specialized version of `_.reduce` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {*} [accumulator] The initial value. + * @param {boolean} [initAccum] Specify using the first element of `array` as + * the initial value. + * @returns {*} Returns the accumulated value. + */ + function arrayReduce(array, iteratee, accumulator, initAccum) { + var index = -1, + length = array == null ? 0 : array.length; + + if (initAccum && length) { + accumulator = array[++index]; + } + while (++index < length) { + accumulator = iteratee(accumulator, array[index], index, array); + } + return accumulator; + } + + /** + * A specialized version of `_.reduceRight` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {*} [accumulator] The initial value. + * @param {boolean} [initAccum] Specify using the last element of `array` as + * the initial value. + * @returns {*} Returns the accumulated value. + */ + function arrayReduceRight(array, iteratee, accumulator, initAccum) { + var length = array == null ? 0 : array.length; + if (initAccum && length) { + accumulator = array[--length]; + } + while (length--) { + accumulator = iteratee(accumulator, array[length], length, array); + } + return accumulator; + } + + /** + * A specialized version of `_.some` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ + function arraySome(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (predicate(array[index], index, array)) { + return true; + } + } + return false; + } + + /** + * Gets the size of an ASCII `string`. + * + * @private + * @param {string} string The string inspect. + * @returns {number} Returns the string size. + */ + var asciiSize = baseProperty('length'); + + /** + * Converts an ASCII `string` to an array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the converted array. + */ + function asciiToArray(string) { + return string.split(''); + } + + /** + * Splits an ASCII `string` into an array of its words. + * + * @private + * @param {string} The string to inspect. + * @returns {Array} Returns the words of `string`. + */ + function asciiWords(string) { + return string.match(reAsciiWord) || []; + } + + /** + * The base implementation of methods like `_.findKey` and `_.findLastKey`, + * without support for iteratee shorthands, which iterates over `collection` + * using `eachFunc`. + * + * @private + * @param {Array|Object} collection The collection to inspect. + * @param {Function} predicate The function invoked per iteration. + * @param {Function} eachFunc The function to iterate over `collection`. + * @returns {*} Returns the found element or its key, else `undefined`. + */ + function baseFindKey(collection, predicate, eachFunc) { + var result; + eachFunc(collection, function(value, key, collection) { + if (predicate(value, key, collection)) { + result = key; + return false; + } + }); + return result; + } + + /** + * The base implementation of `_.findIndex` and `_.findLastIndex` without + * support for iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} predicate The function invoked per iteration. + * @param {number} fromIndex The index to search from. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function baseFindIndex(array, predicate, fromIndex, fromRight) { + var length = array.length, + index = fromIndex + (fromRight ? 1 : -1); + + while ((fromRight ? index-- : ++index < length)) { + if (predicate(array[index], index, array)) { + return index; + } + } + return -1; + } + + /** + * The base implementation of `_.indexOf` without `fromIndex` bounds checks. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function baseIndexOf(array, value, fromIndex) { + return value === value + ? strictIndexOf(array, value, fromIndex) + : baseFindIndex(array, baseIsNaN, fromIndex); + } + + /** + * This function is like `baseIndexOf` except that it accepts a comparator. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @param {Function} comparator The comparator invoked per element. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function baseIndexOfWith(array, value, fromIndex, comparator) { + var index = fromIndex - 1, + length = array.length; + + while (++index < length) { + if (comparator(array[index], value)) { + return index; + } + } + return -1; + } + + /** + * The base implementation of `_.isNaN` without support for number objects. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. + */ + function baseIsNaN(value) { + return value !== value; + } + + /** + * The base implementation of `_.mean` and `_.meanBy` without support for + * iteratee shorthands. + * + * @private + * @param {Array} array The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {number} Returns the mean. + */ + function baseMean(array, iteratee) { + var length = array == null ? 0 : array.length; + return length ? (baseSum(array, iteratee) / length) : NAN; + } + + /** + * The base implementation of `_.property` without support for deep paths. + * + * @private + * @param {string} key The key of the property to get. + * @returns {Function} Returns the new accessor function. + */ + function baseProperty(key) { + return function(object) { + return object == null ? undefined : object[key]; + }; + } + + /** + * The base implementation of `_.propertyOf` without support for deep paths. + * + * @private + * @param {Object} object The object to query. + * @returns {Function} Returns the new accessor function. + */ + function basePropertyOf(object) { + return function(key) { + return object == null ? undefined : object[key]; + }; + } + + /** + * The base implementation of `_.reduce` and `_.reduceRight`, without support + * for iteratee shorthands, which iterates over `collection` using `eachFunc`. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {*} accumulator The initial value. + * @param {boolean} initAccum Specify using the first or last element of + * `collection` as the initial value. + * @param {Function} eachFunc The function to iterate over `collection`. + * @returns {*} Returns the accumulated value. + */ + function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { + eachFunc(collection, function(value, index, collection) { + accumulator = initAccum + ? (initAccum = false, value) + : iteratee(accumulator, value, index, collection); + }); + return accumulator; + } + + /** + * The base implementation of `_.sortBy` which uses `comparer` to define the + * sort order of `array` and replaces criteria objects with their corresponding + * values. + * + * @private + * @param {Array} array The array to sort. + * @param {Function} comparer The function to define sort order. + * @returns {Array} Returns `array`. + */ + function baseSortBy(array, comparer) { + var length = array.length; + + array.sort(comparer); + while (length--) { + array[length] = array[length].value; + } + return array; + } + + /** + * The base implementation of `_.sum` and `_.sumBy` without support for + * iteratee shorthands. + * + * @private + * @param {Array} array The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {number} Returns the sum. + */ + function baseSum(array, iteratee) { + var result, + index = -1, + length = array.length; + + while (++index < length) { + var current = iteratee(array[index]); + if (current !== undefined) { + result = result === undefined ? current : (result + current); + } + } + return result; + } + + /** + * The base implementation of `_.times` without support for iteratee shorthands + * or max array length checks. + * + * @private + * @param {number} n The number of times to invoke `iteratee`. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the array of results. + */ + function baseTimes(n, iteratee) { + var index = -1, + result = Array(n); + + while (++index < n) { + result[index] = iteratee(index); + } + return result; + } + + /** + * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array + * of key-value pairs for `object` corresponding to the property names of `props`. + * + * @private + * @param {Object} object The object to query. + * @param {Array} props The property names to get values for. + * @returns {Object} Returns the key-value pairs. + */ + function baseToPairs(object, props) { + return arrayMap(props, function(key) { + return [key, object[key]]; + }); + } + + /** + * The base implementation of `_.unary` without support for storing metadata. + * + * @private + * @param {Function} func The function to cap arguments for. + * @returns {Function} Returns the new capped function. + */ + function baseUnary(func) { + return function(value) { + return func(value); + }; + } + + /** + * The base implementation of `_.values` and `_.valuesIn` which creates an + * array of `object` property values corresponding to the property names + * of `props`. + * + * @private + * @param {Object} object The object to query. + * @param {Array} props The property names to get values for. + * @returns {Object} Returns the array of property values. + */ + function baseValues(object, props) { + return arrayMap(props, function(key) { + return object[key]; + }); + } + + /** + * Checks if a `cache` value for `key` exists. + * + * @private + * @param {Object} cache The cache to query. + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function cacheHas(cache, key) { + return cache.has(key); + } + + /** + * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol + * that is not found in the character symbols. + * + * @private + * @param {Array} strSymbols The string symbols to inspect. + * @param {Array} chrSymbols The character symbols to find. + * @returns {number} Returns the index of the first unmatched string symbol. + */ + function charsStartIndex(strSymbols, chrSymbols) { + var index = -1, + length = strSymbols.length; + + while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {} + return index; + } + + /** + * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol + * that is not found in the character symbols. + * + * @private + * @param {Array} strSymbols The string symbols to inspect. + * @param {Array} chrSymbols The character symbols to find. + * @returns {number} Returns the index of the last unmatched string symbol. + */ + function charsEndIndex(strSymbols, chrSymbols) { + var index = strSymbols.length; + + while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {} + return index; + } + + /** + * Gets the number of `placeholder` occurrences in `array`. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} placeholder The placeholder to search for. + * @returns {number} Returns the placeholder count. + */ + function countHolders(array, placeholder) { + var length = array.length, + result = 0; + + while (length--) { + if (array[length] === placeholder) { + ++result; + } + } + return result; + } + + /** + * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A + * letters to basic Latin letters. + * + * @private + * @param {string} letter The matched letter to deburr. + * @returns {string} Returns the deburred letter. + */ + var deburrLetter = basePropertyOf(deburredLetters); + + /** + * Used by `_.escape` to convert characters to HTML entities. + * + * @private + * @param {string} chr The matched character to escape. + * @returns {string} Returns the escaped character. + */ + var escapeHtmlChar = basePropertyOf(htmlEscapes); + + /** + * Used by `_.template` to escape characters for inclusion in compiled string literals. + * + * @private + * @param {string} chr The matched character to escape. + * @returns {string} Returns the escaped character. + */ + function escapeStringChar(chr) { + return '\\' + stringEscapes[chr]; + } + + /** + * Gets the value at `key` of `object`. + * + * @private + * @param {Object} [object] The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ + function getValue(object, key) { + return object == null ? undefined : object[key]; + } + + /** + * Checks if `string` contains Unicode symbols. + * + * @private + * @param {string} string The string to inspect. + * @returns {boolean} Returns `true` if a symbol is found, else `false`. + */ + function hasUnicode(string) { + return reHasUnicode.test(string); + } + + /** + * Checks if `string` contains a word composed of Unicode symbols. + * + * @private + * @param {string} string The string to inspect. + * @returns {boolean} Returns `true` if a word is found, else `false`. + */ + function hasUnicodeWord(string) { + return reHasUnicodeWord.test(string); + } + + /** + * Converts `iterator` to an array. + * + * @private + * @param {Object} iterator The iterator to convert. + * @returns {Array} Returns the converted array. + */ + function iteratorToArray(iterator) { + var data, + result = []; + + while (!(data = iterator.next()).done) { + result.push(data.value); + } + return result; + } + + /** + * Converts `map` to its key-value pairs. + * + * @private + * @param {Object} map The map to convert. + * @returns {Array} Returns the key-value pairs. + */ + function mapToArray(map) { + var index = -1, + result = Array(map.size); + + map.forEach(function(value, key) { + result[++index] = [key, value]; + }); + return result; + } + + /** + * Creates a unary function that invokes `func` with its argument transformed. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. + */ + function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; + } + + /** + * Replaces all `placeholder` elements in `array` with an internal placeholder + * and returns an array of their indexes. + * + * @private + * @param {Array} array The array to modify. + * @param {*} placeholder The placeholder to replace. + * @returns {Array} Returns the new array of placeholder indexes. + */ + function replaceHolders(array, placeholder) { + var index = -1, + length = array.length, + resIndex = 0, + result = []; + + while (++index < length) { + var value = array[index]; + if (value === placeholder || value === PLACEHOLDER) { + array[index] = PLACEHOLDER; + result[resIndex++] = index; + } + } + return result; + } + + /** + * Converts `set` to an array of its values. + * + * @private + * @param {Object} set The set to convert. + * @returns {Array} Returns the values. + */ + function setToArray(set) { + var index = -1, + result = Array(set.size); + + set.forEach(function(value) { + result[++index] = value; + }); + return result; + } + + /** + * Converts `set` to its value-value pairs. + * + * @private + * @param {Object} set The set to convert. + * @returns {Array} Returns the value-value pairs. + */ + function setToPairs(set) { + var index = -1, + result = Array(set.size); + + set.forEach(function(value) { + result[++index] = [value, value]; + }); + return result; + } + + /** + * A specialized version of `_.indexOf` which performs strict equality + * comparisons of values, i.e. `===`. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function strictIndexOf(array, value, fromIndex) { + var index = fromIndex - 1, + length = array.length; + + while (++index < length) { + if (array[index] === value) { + return index; + } + } + return -1; + } + + /** + * A specialized version of `_.lastIndexOf` which performs strict equality + * comparisons of values, i.e. `===`. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function strictLastIndexOf(array, value, fromIndex) { + var index = fromIndex + 1; + while (index--) { + if (array[index] === value) { + return index; + } + } + return index; + } + + /** + * Gets the number of symbols in `string`. + * + * @private + * @param {string} string The string to inspect. + * @returns {number} Returns the string size. + */ + function stringSize(string) { + return hasUnicode(string) + ? unicodeSize(string) + : asciiSize(string); + } + + /** + * Converts `string` to an array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the converted array. + */ + function stringToArray(string) { + return hasUnicode(string) + ? unicodeToArray(string) + : asciiToArray(string); + } + + /** + * Used by `_.unescape` to convert HTML entities to characters. + * + * @private + * @param {string} chr The matched character to unescape. + * @returns {string} Returns the unescaped character. + */ + var unescapeHtmlChar = basePropertyOf(htmlUnescapes); + + /** + * Gets the size of a Unicode `string`. + * + * @private + * @param {string} string The string inspect. + * @returns {number} Returns the string size. + */ + function unicodeSize(string) { + var result = reUnicode.lastIndex = 0; + while (reUnicode.test(string)) { + ++result; + } + return result; + } + + /** + * Converts a Unicode `string` to an array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the converted array. + */ + function unicodeToArray(string) { + return string.match(reUnicode) || []; + } + + /** + * Splits a Unicode `string` into an array of its words. + * + * @private + * @param {string} The string to inspect. + * @returns {Array} Returns the words of `string`. + */ + function unicodeWords(string) { + return string.match(reUnicodeWord) || []; + } + + /*--------------------------------------------------------------------------*/ + + /** + * Create a new pristine `lodash` function using the `context` object. + * + * @static + * @memberOf _ + * @since 1.1.0 + * @category Util + * @param {Object} [context=root] The context object. + * @returns {Function} Returns a new `lodash` function. + * @example + * + * _.mixin({ 'foo': _.constant('foo') }); + * + * var lodash = _.runInContext(); + * lodash.mixin({ 'bar': lodash.constant('bar') }); + * + * _.isFunction(_.foo); + * // => true + * _.isFunction(_.bar); + * // => false + * + * lodash.isFunction(lodash.foo); + * // => false + * lodash.isFunction(lodash.bar); + * // => true + * + * // Create a suped-up `defer` in Node.js. + * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer; + */ + var runInContext = (function runInContext(context) { + context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps)); + + /** Built-in constructor references. */ + var Array = context.Array, + Date = context.Date, + Error = context.Error, + Function = context.Function, + Math = context.Math, + Object = context.Object, + RegExp = context.RegExp, + String = context.String, + TypeError = context.TypeError; + + /** Used for built-in method references. */ + var arrayProto = Array.prototype, + funcProto = Function.prototype, + objectProto = Object.prototype; + + /** Used to detect overreaching core-js shims. */ + var coreJsData = context['__core-js_shared__']; + + /** Used to resolve the decompiled source of functions. */ + var funcToString = funcProto.toString; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** Used to generate unique IDs. */ + var idCounter = 0; + + /** Used to detect methods masquerading as native. */ + var maskSrcKey = (function() { + var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); + return uid ? ('Symbol(src)_1.' + uid) : ''; + }()); + + /** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ + var nativeObjectToString = objectProto.toString; + + /** Used to infer the `Object` constructor. */ + var objectCtorString = funcToString.call(Object); + + /** Used to restore the original `_` reference in `_.noConflict`. */ + var oldDash = root._; + + /** Used to detect if a method is native. */ + var reIsNative = RegExp('^' + + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' + ); + + /** Built-in value references. */ + var Buffer = moduleExports ? context.Buffer : undefined, + Symbol = context.Symbol, + Uint8Array = context.Uint8Array, + allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined, + getPrototype = overArg(Object.getPrototypeOf, Object), + objectCreate = Object.create, + propertyIsEnumerable = objectProto.propertyIsEnumerable, + splice = arrayProto.splice, + spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined, + symIterator = Symbol ? Symbol.iterator : undefined, + symToStringTag = Symbol ? Symbol.toStringTag : undefined; + + var defineProperty = (function() { + try { + var func = getNative(Object, 'defineProperty'); + func({}, '', {}); + return func; + } catch (e) {} + }()); + + /** Mocked built-ins. */ + var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout, + ctxNow = Date && Date.now !== root.Date.now && Date.now, + ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout; + + /* Built-in method references for those with the same name as other `lodash` methods. */ + var nativeCeil = Math.ceil, + nativeFloor = Math.floor, + nativeGetSymbols = Object.getOwnPropertySymbols, + nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined, + nativeIsFinite = context.isFinite, + nativeJoin = arrayProto.join, + nativeKeys = overArg(Object.keys, Object), + nativeMax = Math.max, + nativeMin = Math.min, + nativeNow = Date.now, + nativeParseInt = context.parseInt, + nativeRandom = Math.random, + nativeReverse = arrayProto.reverse; + + /* Built-in method references that are verified to be native. */ + var DataView = getNative(context, 'DataView'), + Map = getNative(context, 'Map'), + Promise = getNative(context, 'Promise'), + Set = getNative(context, 'Set'), + WeakMap = getNative(context, 'WeakMap'), + nativeCreate = getNative(Object, 'create'); + + /** Used to store function metadata. */ + var metaMap = WeakMap && new WeakMap; + + /** Used to lookup unminified function names. */ + var realNames = {}; + + /** Used to detect maps, sets, and weakmaps. */ + var dataViewCtorString = toSource(DataView), + mapCtorString = toSource(Map), + promiseCtorString = toSource(Promise), + setCtorString = toSource(Set), + weakMapCtorString = toSource(WeakMap); + + /** Used to convert symbols to primitives and strings. */ + var symbolProto = Symbol ? Symbol.prototype : undefined, + symbolValueOf = symbolProto ? symbolProto.valueOf : undefined, + symbolToString = symbolProto ? symbolProto.toString : undefined; + + /*------------------------------------------------------------------------*/ + + /** + * Creates a `lodash` object which wraps `value` to enable implicit method + * chain sequences. Methods that operate on and return arrays, collections, + * and functions can be chained together. Methods that retrieve a single value + * or may return a primitive value will automatically end the chain sequence + * and return the unwrapped value. Otherwise, the value must be unwrapped + * with `_#value`. + * + * Explicit chain sequences, which must be unwrapped with `_#value`, may be + * enabled using `_.chain`. + * + * The execution of chained methods is lazy, that is, it's deferred until + * `_#value` is implicitly or explicitly called. + * + * Lazy evaluation allows several methods to support shortcut fusion. + * Shortcut fusion is an optimization to merge iteratee calls; this avoids + * the creation of intermediate arrays and can greatly reduce the number of + * iteratee executions. Sections of a chain sequence qualify for shortcut + * fusion if the section is applied to an array and iteratees accept only + * one argument. The heuristic for whether a section qualifies for shortcut + * fusion is subject to change. + * + * Chaining is supported in custom builds as long as the `_#value` method is + * directly or indirectly included in the build. + * + * In addition to lodash methods, wrappers have `Array` and `String` methods. + * + * The wrapper `Array` methods are: + * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift` + * + * The wrapper `String` methods are: + * `replace` and `split` + * + * The wrapper methods that support shortcut fusion are: + * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`, + * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`, + * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray` + * + * The chainable wrapper methods are: + * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`, + * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`, + * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`, + * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`, + * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`, + * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`, + * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`, + * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`, + * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`, + * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`, + * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`, + * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`, + * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`, + * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`, + * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`, + * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`, + * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`, + * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`, + * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`, + * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`, + * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`, + * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`, + * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`, + * `zipObject`, `zipObjectDeep`, and `zipWith` + * + * The wrapper methods that are **not** chainable by default are: + * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`, + * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`, + * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`, + * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`, + * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`, + * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`, + * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`, + * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, + * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`, + * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`, + * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, + * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`, + * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`, + * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`, + * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`, + * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`, + * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`, + * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`, + * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`, + * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`, + * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`, + * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`, + * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`, + * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`, + * `upperFirst`, `value`, and `words` + * + * @name _ + * @constructor + * @category Seq + * @param {*} value The value to wrap in a `lodash` instance. + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * function square(n) { + * return n * n; + * } + * + * var wrapped = _([1, 2, 3]); + * + * // Returns an unwrapped value. + * wrapped.reduce(_.add); + * // => 6 + * + * // Returns a wrapped value. + * var squares = wrapped.map(square); + * + * _.isArray(squares); + * // => false + * + * _.isArray(squares.value()); + * // => true + */ + function lodash(value) { + if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) { + if (value instanceof LodashWrapper) { + return value; + } + if (hasOwnProperty.call(value, '__wrapped__')) { + return wrapperClone(value); + } + } + return new LodashWrapper(value); + } + + /** + * The base implementation of `_.create` without support for assigning + * properties to the created object. + * + * @private + * @param {Object} proto The object to inherit from. + * @returns {Object} Returns the new object. + */ + var baseCreate = (function() { + function object() {} + return function(proto) { + if (!isObject(proto)) { + return {}; + } + if (objectCreate) { + return objectCreate(proto); + } + object.prototype = proto; + var result = new object; + object.prototype = undefined; + return result; + }; + }()); + + /** + * The function whose prototype chain sequence wrappers inherit from. + * + * @private + */ + function baseLodash() { + // No operation performed. + } + + /** + * The base constructor for creating `lodash` wrapper objects. + * + * @private + * @param {*} value The value to wrap. + * @param {boolean} [chainAll] Enable explicit method chain sequences. + */ + function LodashWrapper(value, chainAll) { + this.__wrapped__ = value; + this.__actions__ = []; + this.__chain__ = !!chainAll; + this.__index__ = 0; + this.__values__ = undefined; + } + + /** + * By default, the template delimiters used by lodash are like those in + * embedded Ruby (ERB) as well as ES2015 template strings. Change the + * following template settings to use alternative delimiters. + * + * @static + * @memberOf _ + * @type {Object} + */ + lodash.templateSettings = { + + /** + * Used to detect `data` property values to be HTML-escaped. + * + * @memberOf _.templateSettings + * @type {RegExp} + */ + 'escape': reEscape, + + /** + * Used to detect code to be evaluated. + * + * @memberOf _.templateSettings + * @type {RegExp} + */ + 'evaluate': reEvaluate, + + /** + * Used to detect `data` property values to inject. + * + * @memberOf _.templateSettings + * @type {RegExp} + */ + 'interpolate': reInterpolate, + + /** + * Used to reference the data object in the template text. + * + * @memberOf _.templateSettings + * @type {string} + */ + 'variable': '', + + /** + * Used to import variables into the compiled template. + * + * @memberOf _.templateSettings + * @type {Object} + */ + 'imports': { + + /** + * A reference to the `lodash` function. + * + * @memberOf _.templateSettings.imports + * @type {Function} + */ + '_': lodash + } + }; + + // Ensure wrappers are instances of `baseLodash`. + lodash.prototype = baseLodash.prototype; + lodash.prototype.constructor = lodash; + + LodashWrapper.prototype = baseCreate(baseLodash.prototype); + LodashWrapper.prototype.constructor = LodashWrapper; + + /*------------------------------------------------------------------------*/ + + /** + * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation. + * + * @private + * @constructor + * @param {*} value The value to wrap. + */ + function LazyWrapper(value) { + this.__wrapped__ = value; + this.__actions__ = []; + this.__dir__ = 1; + this.__filtered__ = false; + this.__iteratees__ = []; + this.__takeCount__ = MAX_ARRAY_LENGTH; + this.__views__ = []; + } + + /** + * Creates a clone of the lazy wrapper object. + * + * @private + * @name clone + * @memberOf LazyWrapper + * @returns {Object} Returns the cloned `LazyWrapper` object. + */ + function lazyClone() { + var result = new LazyWrapper(this.__wrapped__); + result.__actions__ = copyArray(this.__actions__); + result.__dir__ = this.__dir__; + result.__filtered__ = this.__filtered__; + result.__iteratees__ = copyArray(this.__iteratees__); + result.__takeCount__ = this.__takeCount__; + result.__views__ = copyArray(this.__views__); + return result; + } + + /** + * Reverses the direction of lazy iteration. + * + * @private + * @name reverse + * @memberOf LazyWrapper + * @returns {Object} Returns the new reversed `LazyWrapper` object. + */ + function lazyReverse() { + if (this.__filtered__) { + var result = new LazyWrapper(this); + result.__dir__ = -1; + result.__filtered__ = true; + } else { + result = this.clone(); + result.__dir__ *= -1; + } + return result; + } + + /** + * Extracts the unwrapped value from its lazy wrapper. + * + * @private + * @name value + * @memberOf LazyWrapper + * @returns {*} Returns the unwrapped value. + */ + function lazyValue() { + var array = this.__wrapped__.value(), + dir = this.__dir__, + isArr = isArray(array), + isRight = dir < 0, + arrLength = isArr ? array.length : 0, + view = getView(0, arrLength, this.__views__), + start = view.start, + end = view.end, + length = end - start, + index = isRight ? end : (start - 1), + iteratees = this.__iteratees__, + iterLength = iteratees.length, + resIndex = 0, + takeCount = nativeMin(length, this.__takeCount__); + + if (!isArr || (!isRight && arrLength == length && takeCount == length)) { + return baseWrapperValue(array, this.__actions__); + } + var result = []; + + outer: + while (length-- && resIndex < takeCount) { + index += dir; + + var iterIndex = -1, + value = array[index]; + + while (++iterIndex < iterLength) { + var data = iteratees[iterIndex], + iteratee = data.iteratee, + type = data.type, + computed = iteratee(value); + + if (type == LAZY_MAP_FLAG) { + value = computed; + } else if (!computed) { + if (type == LAZY_FILTER_FLAG) { + continue outer; + } else { + break outer; + } + } + } + result[resIndex++] = value; + } + return result; + } + + // Ensure `LazyWrapper` is an instance of `baseLodash`. + LazyWrapper.prototype = baseCreate(baseLodash.prototype); + LazyWrapper.prototype.constructor = LazyWrapper; + + /*------------------------------------------------------------------------*/ + + /** + * Creates a hash object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function Hash(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + + /** + * Removes all key-value entries from the hash. + * + * @private + * @name clear + * @memberOf Hash + */ + function hashClear() { + this.__data__ = nativeCreate ? nativeCreate(null) : {}; + this.size = 0; + } + + /** + * Removes `key` and its value from the hash. + * + * @private + * @name delete + * @memberOf Hash + * @param {Object} hash The hash to modify. + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function hashDelete(key) { + var result = this.has(key) && delete this.__data__[key]; + this.size -= result ? 1 : 0; + return result; + } + + /** + * Gets the hash value for `key`. + * + * @private + * @name get + * @memberOf Hash + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function hashGet(key) { + var data = this.__data__; + if (nativeCreate) { + var result = data[key]; + return result === HASH_UNDEFINED ? undefined : result; + } + return hasOwnProperty.call(data, key) ? data[key] : undefined; + } + + /** + * Checks if a hash value for `key` exists. + * + * @private + * @name has + * @memberOf Hash + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function hashHas(key) { + var data = this.__data__; + return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key); + } + + /** + * Sets the hash `key` to `value`. + * + * @private + * @name set + * @memberOf Hash + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the hash instance. + */ + function hashSet(key, value) { + var data = this.__data__; + this.size += this.has(key) ? 0 : 1; + data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; + return this; + } + + // Add methods to `Hash`. + Hash.prototype.clear = hashClear; + Hash.prototype['delete'] = hashDelete; + Hash.prototype.get = hashGet; + Hash.prototype.has = hashHas; + Hash.prototype.set = hashSet; + + /*------------------------------------------------------------------------*/ + + /** + * Creates an list cache object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function ListCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + + /** + * Removes all key-value entries from the list cache. + * + * @private + * @name clear + * @memberOf ListCache + */ + function listCacheClear() { + this.__data__ = []; + this.size = 0; + } + + /** + * Removes `key` and its value from the list cache. + * + * @private + * @name delete + * @memberOf ListCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function listCacheDelete(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + --this.size; + return true; + } + + /** + * Gets the list cache value for `key`. + * + * @private + * @name get + * @memberOf ListCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function listCacheGet(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + return index < 0 ? undefined : data[index][1]; + } + + /** + * Checks if a list cache value for `key` exists. + * + * @private + * @name has + * @memberOf ListCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function listCacheHas(key) { + return assocIndexOf(this.__data__, key) > -1; + } + + /** + * Sets the list cache `key` to `value`. + * + * @private + * @name set + * @memberOf ListCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the list cache instance. + */ + function listCacheSet(key, value) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + ++this.size; + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; + } + + // Add methods to `ListCache`. + ListCache.prototype.clear = listCacheClear; + ListCache.prototype['delete'] = listCacheDelete; + ListCache.prototype.get = listCacheGet; + ListCache.prototype.has = listCacheHas; + ListCache.prototype.set = listCacheSet; + + /*------------------------------------------------------------------------*/ + + /** + * Creates a map cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function MapCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + + /** + * Removes all key-value entries from the map. + * + * @private + * @name clear + * @memberOf MapCache + */ + function mapCacheClear() { + this.size = 0; + this.__data__ = { + 'hash': new Hash, + 'map': new (Map || ListCache), + 'string': new Hash + }; + } + + /** + * Removes `key` and its value from the map. + * + * @private + * @name delete + * @memberOf MapCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function mapCacheDelete(key) { + var result = getMapData(this, key)['delete'](key); + this.size -= result ? 1 : 0; + return result; + } + + /** + * Gets the map value for `key`. + * + * @private + * @name get + * @memberOf MapCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function mapCacheGet(key) { + return getMapData(this, key).get(key); + } + + /** + * Checks if a map value for `key` exists. + * + * @private + * @name has + * @memberOf MapCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function mapCacheHas(key) { + return getMapData(this, key).has(key); + } + + /** + * Sets the map `key` to `value`. + * + * @private + * @name set + * @memberOf MapCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the map cache instance. + */ + function mapCacheSet(key, value) { + var data = getMapData(this, key), + size = data.size; + + data.set(key, value); + this.size += data.size == size ? 0 : 1; + return this; + } + + // Add methods to `MapCache`. + MapCache.prototype.clear = mapCacheClear; + MapCache.prototype['delete'] = mapCacheDelete; + MapCache.prototype.get = mapCacheGet; + MapCache.prototype.has = mapCacheHas; + MapCache.prototype.set = mapCacheSet; + + /*------------------------------------------------------------------------*/ + + /** + * + * Creates an array cache object to store unique values. + * + * @private + * @constructor + * @param {Array} [values] The values to cache. + */ + function SetCache(values) { + var index = -1, + length = values == null ? 0 : values.length; + + this.__data__ = new MapCache; + while (++index < length) { + this.add(values[index]); + } + } + + /** + * Adds `value` to the array cache. + * + * @private + * @name add + * @memberOf SetCache + * @alias push + * @param {*} value The value to cache. + * @returns {Object} Returns the cache instance. + */ + function setCacheAdd(value) { + this.__data__.set(value, HASH_UNDEFINED); + return this; + } + + /** + * Checks if `value` is in the array cache. + * + * @private + * @name has + * @memberOf SetCache + * @param {*} value The value to search for. + * @returns {number} Returns `true` if `value` is found, else `false`. + */ + function setCacheHas(value) { + return this.__data__.has(value); + } + + // Add methods to `SetCache`. + SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; + SetCache.prototype.has = setCacheHas; + + /*------------------------------------------------------------------------*/ + + /** + * Creates a stack cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function Stack(entries) { + var data = this.__data__ = new ListCache(entries); + this.size = data.size; + } + + /** + * Removes all key-value entries from the stack. + * + * @private + * @name clear + * @memberOf Stack + */ + function stackClear() { + this.__data__ = new ListCache; + this.size = 0; + } + + /** + * Removes `key` and its value from the stack. + * + * @private + * @name delete + * @memberOf Stack + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function stackDelete(key) { + var data = this.__data__, + result = data['delete'](key); + + this.size = data.size; + return result; + } + + /** + * Gets the stack value for `key`. + * + * @private + * @name get + * @memberOf Stack + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function stackGet(key) { + return this.__data__.get(key); + } + + /** + * Checks if a stack value for `key` exists. + * + * @private + * @name has + * @memberOf Stack + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function stackHas(key) { + return this.__data__.has(key); + } + + /** + * Sets the stack `key` to `value`. + * + * @private + * @name set + * @memberOf Stack + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the stack cache instance. + */ + function stackSet(key, value) { + var data = this.__data__; + if (data instanceof ListCache) { + var pairs = data.__data__; + if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { + pairs.push([key, value]); + this.size = ++data.size; + return this; + } + data = this.__data__ = new MapCache(pairs); + } + data.set(key, value); + this.size = data.size; + return this; + } + + // Add methods to `Stack`. + Stack.prototype.clear = stackClear; + Stack.prototype['delete'] = stackDelete; + Stack.prototype.get = stackGet; + Stack.prototype.has = stackHas; + Stack.prototype.set = stackSet; + + /*------------------------------------------------------------------------*/ + + /** + * Creates an array of the enumerable property names of the array-like `value`. + * + * @private + * @param {*} value The value to query. + * @param {boolean} inherited Specify returning inherited property names. + * @returns {Array} Returns the array of property names. + */ + function arrayLikeKeys(value, inherited) { + var isArr = isArray(value), + isArg = !isArr && isArguments(value), + isBuff = !isArr && !isArg && isBuffer(value), + isType = !isArr && !isArg && !isBuff && isTypedArray(value), + skipIndexes = isArr || isArg || isBuff || isType, + result = skipIndexes ? baseTimes(value.length, String) : [], + length = result.length; + + for (var key in value) { + if ((inherited || hasOwnProperty.call(value, key)) && + !(skipIndexes && ( + // Safari 9 has enumerable `arguments.length` in strict mode. + key == 'length' || + // Node.js 0.10 has enumerable non-index properties on buffers. + (isBuff && (key == 'offset' || key == 'parent')) || + // PhantomJS 2 has enumerable non-index properties on typed arrays. + (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || + // Skip index properties. + isIndex(key, length) + ))) { + result.push(key); + } + } + return result; + } + + /** + * A specialized version of `_.sample` for arrays. + * + * @private + * @param {Array} array The array to sample. + * @returns {*} Returns the random element. + */ + function arraySample(array) { + var length = array.length; + return length ? array[baseRandom(0, length - 1)] : undefined; + } + + /** + * A specialized version of `_.sampleSize` for arrays. + * + * @private + * @param {Array} array The array to sample. + * @param {number} n The number of elements to sample. + * @returns {Array} Returns the random elements. + */ + function arraySampleSize(array, n) { + return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length)); + } + + /** + * A specialized version of `_.shuffle` for arrays. + * + * @private + * @param {Array} array The array to shuffle. + * @returns {Array} Returns the new shuffled array. + */ + function arrayShuffle(array) { + return shuffleSelf(copyArray(array)); + } + + /** + * This function is like `assignValue` except that it doesn't assign + * `undefined` values. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ + function assignMergeValue(object, key, value) { + if ((value !== undefined && !eq(object[key], value)) || + (value === undefined && !(key in object))) { + baseAssignValue(object, key, value); + } + } + + /** + * Assigns `value` to `key` of `object` if the existing value is not equivalent + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ + function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || + (value === undefined && !(key in object))) { + baseAssignValue(object, key, value); + } + } + + /** + * Gets the index at which the `key` is found in `array` of key-value pairs. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} key The key to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function assocIndexOf(array, key) { + var length = array.length; + while (length--) { + if (eq(array[length][0], key)) { + return length; + } + } + return -1; + } + + /** + * Aggregates elements of `collection` on `accumulator` with keys transformed + * by `iteratee` and values set by `setter`. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} setter The function to set `accumulator` values. + * @param {Function} iteratee The iteratee to transform keys. + * @param {Object} accumulator The initial aggregated object. + * @returns {Function} Returns `accumulator`. + */ + function baseAggregator(collection, setter, iteratee, accumulator) { + baseEach(collection, function(value, key, collection) { + setter(accumulator, value, iteratee(value), collection); + }); + return accumulator; + } + + /** + * The base implementation of `_.assign` without support for multiple sources + * or `customizer` functions. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @returns {Object} Returns `object`. + */ + function baseAssign(object, source) { + return object && copyObject(source, keys(source), object); + } + + /** + * The base implementation of `_.assignIn` without support for multiple sources + * or `customizer` functions. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @returns {Object} Returns `object`. + */ + function baseAssignIn(object, source) { + return object && copyObject(source, keysIn(source), object); + } + + /** + * The base implementation of `assignValue` and `assignMergeValue` without + * value checks. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ + function baseAssignValue(object, key, value) { + if (key == '__proto__' && defineProperty) { + defineProperty(object, key, { + 'configurable': true, + 'enumerable': true, + 'value': value, + 'writable': true + }); + } else { + object[key] = value; + } + } + + /** + * The base implementation of `_.at` without support for individual paths. + * + * @private + * @param {Object} object The object to iterate over. + * @param {string[]} paths The property paths to pick. + * @returns {Array} Returns the picked elements. + */ + function baseAt(object, paths) { + var index = -1, + length = paths.length, + result = Array(length), + skip = object == null; + + while (++index < length) { + result[index] = skip ? undefined : get(object, paths[index]); + } + return result; + } + + /** + * The base implementation of `_.clamp` which doesn't coerce arguments. + * + * @private + * @param {number} number The number to clamp. + * @param {number} [lower] The lower bound. + * @param {number} upper The upper bound. + * @returns {number} Returns the clamped number. + */ + function baseClamp(number, lower, upper) { + if (number === number) { + if (upper !== undefined) { + number = number <= upper ? number : upper; + } + if (lower !== undefined) { + number = number >= lower ? number : lower; + } + } + return number; + } + + /** + * The base implementation of `_.clone` and `_.cloneDeep` which tracks + * traversed objects. + * + * @private + * @param {*} value The value to clone. + * @param {boolean} bitmask The bitmask flags. + * 1 - Deep clone + * 2 - Flatten inherited properties + * 4 - Clone symbols + * @param {Function} [customizer] The function to customize cloning. + * @param {string} [key] The key of `value`. + * @param {Object} [object] The parent object of `value`. + * @param {Object} [stack] Tracks traversed objects and their clone counterparts. + * @returns {*} Returns the cloned value. + */ + function baseClone(value, bitmask, customizer, key, object, stack) { + var result, + isDeep = bitmask & CLONE_DEEP_FLAG, + isFlat = bitmask & CLONE_FLAT_FLAG, + isFull = bitmask & CLONE_SYMBOLS_FLAG; + + if (customizer) { + result = object ? customizer(value, key, object, stack) : customizer(value); + } + if (result !== undefined) { + return result; + } + if (!isObject(value)) { + return value; + } + var isArr = isArray(value); + if (isArr) { + result = initCloneArray(value); + if (!isDeep) { + return copyArray(value, result); + } + } else { + var tag = getTag(value), + isFunc = tag == funcTag || tag == genTag; + + if (isBuffer(value)) { + return cloneBuffer(value, isDeep); + } + if (tag == objectTag || tag == argsTag || (isFunc && !object)) { + result = (isFlat || isFunc) ? {} : initCloneObject(value); + if (!isDeep) { + return isFlat + ? copySymbolsIn(value, baseAssignIn(result, value)) + : copySymbols(value, baseAssign(result, value)); + } + } else { + if (!cloneableTags[tag]) { + return object ? value : {}; + } + result = initCloneByTag(value, tag, isDeep); + } + } + // Check for circular references and return its corresponding clone. + stack || (stack = new Stack); + var stacked = stack.get(value); + if (stacked) { + return stacked; + } + stack.set(value, result); + + if (isSet(value)) { + value.forEach(function(subValue) { + result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack)); + }); + } else if (isMap(value)) { + value.forEach(function(subValue, key) { + result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack)); + }); + } + + var keysFunc = isFull + ? (isFlat ? getAllKeysIn : getAllKeys) + : (isFlat ? keysIn : keys); + + var props = isArr ? undefined : keysFunc(value); + arrayEach(props || value, function(subValue, key) { + if (props) { + key = subValue; + subValue = value[key]; + } + // Recursively populate clone (susceptible to call stack limits). + assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack)); + }); + return result; + } + + /** + * The base implementation of `_.conforms` which doesn't clone `source`. + * + * @private + * @param {Object} source The object of property predicates to conform to. + * @returns {Function} Returns the new spec function. + */ + function baseConforms(source) { + var props = keys(source); + return function(object) { + return baseConformsTo(object, source, props); + }; + } + + /** + * The base implementation of `_.conformsTo` which accepts `props` to check. + * + * @private + * @param {Object} object The object to inspect. + * @param {Object} source The object of property predicates to conform to. + * @returns {boolean} Returns `true` if `object` conforms, else `false`. + */ + function baseConformsTo(object, source, props) { + var length = props.length; + if (object == null) { + return !length; + } + object = Object(object); + while (length--) { + var key = props[length], + predicate = source[key], + value = object[key]; + + if ((value === undefined && !(key in object)) || !predicate(value)) { + return false; + } + } + return true; + } + + /** + * The base implementation of `_.delay` and `_.defer` which accepts `args` + * to provide to `func`. + * + * @private + * @param {Function} func The function to delay. + * @param {number} wait The number of milliseconds to delay invocation. + * @param {Array} args The arguments to provide to `func`. + * @returns {number|Object} Returns the timer id or timeout object. + */ + function baseDelay(func, wait, args) { + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + return setTimeout(function() { func.apply(undefined, args); }, wait); + } + + /** + * The base implementation of methods like `_.difference` without support + * for excluding multiple arrays or iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Array} values The values to exclude. + * @param {Function} [iteratee] The iteratee invoked per element. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of filtered values. + */ + function baseDifference(array, values, iteratee, comparator) { + var index = -1, + includes = arrayIncludes, + isCommon = true, + length = array.length, + result = [], + valuesLength = values.length; + + if (!length) { + return result; + } + if (iteratee) { + values = arrayMap(values, baseUnary(iteratee)); + } + if (comparator) { + includes = arrayIncludesWith; + isCommon = false; + } + else if (values.length >= LARGE_ARRAY_SIZE) { + includes = cacheHas; + isCommon = false; + values = new SetCache(values); + } + outer: + while (++index < length) { + var value = array[index], + computed = iteratee == null ? value : iteratee(value); + + value = (comparator || value !== 0) ? value : 0; + if (isCommon && computed === computed) { + var valuesIndex = valuesLength; + while (valuesIndex--) { + if (values[valuesIndex] === computed) { + continue outer; + } + } + result.push(value); + } + else if (!includes(values, computed, comparator)) { + result.push(value); + } + } + return result; + } + + /** + * The base implementation of `_.forEach` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + */ + var baseEach = createBaseEach(baseForOwn); + + /** + * The base implementation of `_.forEachRight` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + */ + var baseEachRight = createBaseEach(baseForOwnRight, true); + + /** + * The base implementation of `_.every` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if all elements pass the predicate check, + * else `false` + */ + function baseEvery(collection, predicate) { + var result = true; + baseEach(collection, function(value, index, collection) { + result = !!predicate(value, index, collection); + return result; + }); + return result; + } + + /** + * The base implementation of methods like `_.max` and `_.min` which accepts a + * `comparator` to determine the extremum value. + * + * @private + * @param {Array} array The array to iterate over. + * @param {Function} iteratee The iteratee invoked per iteration. + * @param {Function} comparator The comparator used to compare values. + * @returns {*} Returns the extremum value. + */ + function baseExtremum(array, iteratee, comparator) { + var index = -1, + length = array.length; + + while (++index < length) { + var value = array[index], + current = iteratee(value); + + if (current != null && (computed === undefined + ? (current === current && !isSymbol(current)) + : comparator(current, computed) + )) { + var computed = current, + result = value; + } + } + return result; + } + + /** + * The base implementation of `_.fill` without an iteratee call guard. + * + * @private + * @param {Array} array The array to fill. + * @param {*} value The value to fill `array` with. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns `array`. + */ + function baseFill(array, value, start, end) { + var length = array.length; + + start = toInteger(start); + if (start < 0) { + start = -start > length ? 0 : (length + start); + } + end = (end === undefined || end > length) ? length : toInteger(end); + if (end < 0) { + end += length; + } + end = start > end ? 0 : toLength(end); + while (start < end) { + array[start++] = value; + } + return array; + } + + /** + * The base implementation of `_.filter` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + */ + function baseFilter(collection, predicate) { + var result = []; + baseEach(collection, function(value, index, collection) { + if (predicate(value, index, collection)) { + result.push(value); + } + }); + return result; + } + + /** + * The base implementation of `_.flatten` with support for restricting flattening. + * + * @private + * @param {Array} array The array to flatten. + * @param {number} depth The maximum recursion depth. + * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. + * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. + * @param {Array} [result=[]] The initial result value. + * @returns {Array} Returns the new flattened array. + */ + function baseFlatten(array, depth, predicate, isStrict, result) { + var index = -1, + length = array.length; + + predicate || (predicate = isFlattenable); + result || (result = []); + + while (++index < length) { + var value = array[index]; + if (depth > 0 && predicate(value)) { + if (depth > 1) { + // Recursively flatten arrays (susceptible to call stack limits). + baseFlatten(value, depth - 1, predicate, isStrict, result); + } else { + arrayPush(result, value); + } + } else if (!isStrict) { + result[result.length] = value; + } + } + return result; + } + + /** + * The base implementation of `baseForOwn` which iterates over `object` + * properties returned by `keysFunc` and invokes `iteratee` for each property. + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */ + var baseFor = createBaseFor(); + + /** + * This function is like `baseFor` except that it iterates over properties + * in the opposite order. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */ + var baseForRight = createBaseFor(true); + + /** + * The base implementation of `_.forOwn` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Object} Returns `object`. + */ + function baseForOwn(object, iteratee) { + return object && baseFor(object, iteratee, keys); + } + + /** + * The base implementation of `_.forOwnRight` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Object} Returns `object`. + */ + function baseForOwnRight(object, iteratee) { + return object && baseForRight(object, iteratee, keys); + } + + /** + * The base implementation of `_.functions` which creates an array of + * `object` function property names filtered from `props`. + * + * @private + * @param {Object} object The object to inspect. + * @param {Array} props The property names to filter. + * @returns {Array} Returns the function names. + */ + function baseFunctions(object, props) { + return arrayFilter(props, function(key) { + return isFunction(object[key]); + }); + } + + /** + * The base implementation of `_.get` without support for default values. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @returns {*} Returns the resolved value. + */ + function baseGet(object, path) { + path = castPath(path, object); + + var index = 0, + length = path.length; + + while (object != null && index < length) { + object = object[toKey(path[index++])]; + } + return (index && index == length) ? object : undefined; + } + + /** + * The base implementation of `getAllKeys` and `getAllKeysIn` which uses + * `keysFunc` and `symbolsFunc` to get the enumerable property names and + * symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Function} keysFunc The function to get the keys of `object`. + * @param {Function} symbolsFunc The function to get the symbols of `object`. + * @returns {Array} Returns the array of property names and symbols. + */ + function baseGetAllKeys(object, keysFunc, symbolsFunc) { + var result = keysFunc(object); + return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); + } + + /** + * The base implementation of `getTag` without fallbacks for buggy environments. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ + function baseGetTag(value) { + if (value == null) { + return value === undefined ? undefinedTag : nullTag; + } + return (symToStringTag && symToStringTag in Object(value)) + ? getRawTag(value) + : objectToString(value); + } + + /** + * The base implementation of `_.gt` which doesn't coerce arguments. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if `value` is greater than `other`, + * else `false`. + */ + function baseGt(value, other) { + return value > other; + } + + /** + * The base implementation of `_.has` without support for deep paths. + * + * @private + * @param {Object} [object] The object to query. + * @param {Array|string} key The key to check. + * @returns {boolean} Returns `true` if `key` exists, else `false`. + */ + function baseHas(object, key) { + return object != null && hasOwnProperty.call(object, key); + } + + /** + * The base implementation of `_.hasIn` without support for deep paths. + * + * @private + * @param {Object} [object] The object to query. + * @param {Array|string} key The key to check. + * @returns {boolean} Returns `true` if `key` exists, else `false`. + */ + function baseHasIn(object, key) { + return object != null && key in Object(object); + } + + /** + * The base implementation of `_.inRange` which doesn't coerce arguments. + * + * @private + * @param {number} number The number to check. + * @param {number} start The start of the range. + * @param {number} end The end of the range. + * @returns {boolean} Returns `true` if `number` is in the range, else `false`. + */ + function baseInRange(number, start, end) { + return number >= nativeMin(start, end) && number < nativeMax(start, end); + } + + /** + * The base implementation of methods like `_.intersection`, without support + * for iteratee shorthands, that accepts an array of arrays to inspect. + * + * @private + * @param {Array} arrays The arrays to inspect. + * @param {Function} [iteratee] The iteratee invoked per element. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of shared values. + */ + function baseIntersection(arrays, iteratee, comparator) { + var includes = comparator ? arrayIncludesWith : arrayIncludes, + length = arrays[0].length, + othLength = arrays.length, + othIndex = othLength, + caches = Array(othLength), + maxLength = Infinity, + result = []; + + while (othIndex--) { + var array = arrays[othIndex]; + if (othIndex && iteratee) { + array = arrayMap(array, baseUnary(iteratee)); + } + maxLength = nativeMin(array.length, maxLength); + caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120)) + ? new SetCache(othIndex && array) + : undefined; + } + array = arrays[0]; + + var index = -1, + seen = caches[0]; + + outer: + while (++index < length && result.length < maxLength) { + var value = array[index], + computed = iteratee ? iteratee(value) : value; + + value = (comparator || value !== 0) ? value : 0; + if (!(seen + ? cacheHas(seen, computed) + : includes(result, computed, comparator) + )) { + othIndex = othLength; + while (--othIndex) { + var cache = caches[othIndex]; + if (!(cache + ? cacheHas(cache, computed) + : includes(arrays[othIndex], computed, comparator)) + ) { + continue outer; + } + } + if (seen) { + seen.push(computed); + } + result.push(value); + } + } + return result; + } + + /** + * The base implementation of `_.invert` and `_.invertBy` which inverts + * `object` with values transformed by `iteratee` and set by `setter`. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} setter The function to set `accumulator` values. + * @param {Function} iteratee The iteratee to transform values. + * @param {Object} accumulator The initial inverted object. + * @returns {Function} Returns `accumulator`. + */ + function baseInverter(object, setter, iteratee, accumulator) { + baseForOwn(object, function(value, key, object) { + setter(accumulator, iteratee(value), key, object); + }); + return accumulator; + } + + /** + * The base implementation of `_.invoke` without support for individual + * method arguments. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path of the method to invoke. + * @param {Array} args The arguments to invoke the method with. + * @returns {*} Returns the result of the invoked method. + */ + function baseInvoke(object, path, args) { + path = castPath(path, object); + object = parent(object, path); + var func = object == null ? object : object[toKey(last(path))]; + return func == null ? undefined : apply(func, object, args); + } + + /** + * The base implementation of `_.isArguments`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + */ + function baseIsArguments(value) { + return isObjectLike(value) && baseGetTag(value) == argsTag; + } + + /** + * The base implementation of `_.isArrayBuffer` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`. + */ + function baseIsArrayBuffer(value) { + return isObjectLike(value) && baseGetTag(value) == arrayBufferTag; + } + + /** + * The base implementation of `_.isDate` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a date object, else `false`. + */ + function baseIsDate(value) { + return isObjectLike(value) && baseGetTag(value) == dateTag; + } + + /** + * The base implementation of `_.isEqual` which supports partial comparisons + * and tracks traversed objects. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {boolean} bitmask The bitmask flags. + * 1 - Unordered comparison + * 2 - Partial comparison + * @param {Function} [customizer] The function to customize comparisons. + * @param {Object} [stack] Tracks traversed `value` and `other` objects. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + */ + function baseIsEqual(value, other, bitmask, customizer, stack) { + if (value === other) { + return true; + } + if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { + return value !== value && other !== other; + } + return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); + } + + /** + * A specialized version of `baseIsEqual` for arrays and objects which performs + * deep comparisons and tracks traversed objects enabling objects with circular + * references to be compared. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} [stack] Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { + var objIsArr = isArray(object), + othIsArr = isArray(other), + objTag = objIsArr ? arrayTag : getTag(object), + othTag = othIsArr ? arrayTag : getTag(other); + + objTag = objTag == argsTag ? objectTag : objTag; + othTag = othTag == argsTag ? objectTag : othTag; + + var objIsObj = objTag == objectTag, + othIsObj = othTag == objectTag, + isSameTag = objTag == othTag; + + if (isSameTag && isBuffer(object)) { + if (!isBuffer(other)) { + return false; + } + objIsArr = true; + objIsObj = false; + } + if (isSameTag && !objIsObj) { + stack || (stack = new Stack); + return (objIsArr || isTypedArray(object)) + ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) + : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); + } + if (!(bitmask & COMPARE_PARTIAL_FLAG)) { + var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), + othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); + + if (objIsWrapped || othIsWrapped) { + var objUnwrapped = objIsWrapped ? object.value() : object, + othUnwrapped = othIsWrapped ? other.value() : other; + + stack || (stack = new Stack); + return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); + } + } + if (!isSameTag) { + return false; + } + stack || (stack = new Stack); + return equalObjects(object, other, bitmask, customizer, equalFunc, stack); + } + + /** + * The base implementation of `_.isMap` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a map, else `false`. + */ + function baseIsMap(value) { + return isObjectLike(value) && getTag(value) == mapTag; + } + + /** + * The base implementation of `_.isMatch` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to inspect. + * @param {Object} source The object of property values to match. + * @param {Array} matchData The property names, values, and compare flags to match. + * @param {Function} [customizer] The function to customize comparisons. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + */ + function baseIsMatch(object, source, matchData, customizer) { + var index = matchData.length, + length = index, + noCustomizer = !customizer; + + if (object == null) { + return !length; + } + object = Object(object); + while (index--) { + var data = matchData[index]; + if ((noCustomizer && data[2]) + ? data[1] !== object[data[0]] + : !(data[0] in object) + ) { + return false; + } + } + while (++index < length) { + data = matchData[index]; + var key = data[0], + objValue = object[key], + srcValue = data[1]; + + if (noCustomizer && data[2]) { + if (objValue === undefined && !(key in object)) { + return false; + } + } else { + var stack = new Stack; + if (customizer) { + var result = customizer(objValue, srcValue, key, object, source, stack); + } + if (!(result === undefined + ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) + : result + )) { + return false; + } + } + } + return true; + } + + /** + * The base implementation of `_.isNative` without bad shim checks. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + */ + function baseIsNative(value) { + if (!isObject(value) || isMasked(value)) { + return false; + } + var pattern = isFunction(value) ? reIsNative : reIsHostCtor; + return pattern.test(toSource(value)); + } + + /** + * The base implementation of `_.isRegExp` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. + */ + function baseIsRegExp(value) { + return isObjectLike(value) && baseGetTag(value) == regexpTag; + } + + /** + * The base implementation of `_.isSet` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a set, else `false`. + */ + function baseIsSet(value) { + return isObjectLike(value) && getTag(value) == setTag; + } + + /** + * The base implementation of `_.isTypedArray` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + */ + function baseIsTypedArray(value) { + return isObjectLike(value) && + isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; + } + + /** + * The base implementation of `_.iteratee`. + * + * @private + * @param {*} [value=_.identity] The value to convert to an iteratee. + * @returns {Function} Returns the iteratee. + */ + function baseIteratee(value) { + // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. + // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. + if (typeof value == 'function') { + return value; + } + if (value == null) { + return identity; + } + if (typeof value == 'object') { + return isArray(value) + ? baseMatchesProperty(value[0], value[1]) + : baseMatches(value); + } + return property(value); + } + + /** + * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ + function baseKeys(object) { + if (!isPrototype(object)) { + return nativeKeys(object); + } + var result = []; + for (var key in Object(object)) { + if (hasOwnProperty.call(object, key) && key != 'constructor') { + result.push(key); + } + } + return result; + } + + /** + * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ + function baseKeysIn(object) { + if (!isObject(object)) { + return nativeKeysIn(object); + } + var isProto = isPrototype(object), + result = []; + + for (var key in object) { + if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { + result.push(key); + } + } + return result; + } + + /** + * The base implementation of `_.lt` which doesn't coerce arguments. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if `value` is less than `other`, + * else `false`. + */ + function baseLt(value, other) { + return value < other; + } + + /** + * The base implementation of `_.map` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ + function baseMap(collection, iteratee) { + var index = -1, + result = isArrayLike(collection) ? Array(collection.length) : []; + + baseEach(collection, function(value, key, collection) { + result[++index] = iteratee(value, key, collection); + }); + return result; + } + + /** + * The base implementation of `_.matches` which doesn't clone `source`. + * + * @private + * @param {Object} source The object of property values to match. + * @returns {Function} Returns the new spec function. + */ + function baseMatches(source) { + var matchData = getMatchData(source); + if (matchData.length == 1 && matchData[0][2]) { + return matchesStrictComparable(matchData[0][0], matchData[0][1]); + } + return function(object) { + return object === source || baseIsMatch(object, source, matchData); + }; + } + + /** + * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. + * + * @private + * @param {string} path The path of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. + */ + function baseMatchesProperty(path, srcValue) { + if (isKey(path) && isStrictComparable(srcValue)) { + return matchesStrictComparable(toKey(path), srcValue); + } + return function(object) { + var objValue = get(object, path); + return (objValue === undefined && objValue === srcValue) + ? hasIn(object, path) + : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); + }; + } + + /** + * The base implementation of `_.merge` without support for multiple sources. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {number} srcIndex The index of `source`. + * @param {Function} [customizer] The function to customize merged values. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. + */ + function baseMerge(object, source, srcIndex, customizer, stack) { + if (object === source) { + return; + } + baseFor(source, function(srcValue, key) { + stack || (stack = new Stack); + if (isObject(srcValue)) { + baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); + } + else { + var newValue = customizer + ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack) + : undefined; + + if (newValue === undefined) { + newValue = srcValue; + } + assignMergeValue(object, key, newValue); + } + }, keysIn); + } + + /** + * A specialized version of `baseMerge` for arrays and objects which performs + * deep merges and tracks traversed objects enabling objects with circular + * references to be merged. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {string} key The key of the value to merge. + * @param {number} srcIndex The index of `source`. + * @param {Function} mergeFunc The function to merge values. + * @param {Function} [customizer] The function to customize assigned values. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. + */ + function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { + var objValue = safeGet(object, key), + srcValue = safeGet(source, key), + stacked = stack.get(srcValue); + + if (stacked) { + assignMergeValue(object, key, stacked); + return; + } + var newValue = customizer + ? customizer(objValue, srcValue, (key + ''), object, source, stack) + : undefined; + + var isCommon = newValue === undefined; + + if (isCommon) { + var isArr = isArray(srcValue), + isBuff = !isArr && isBuffer(srcValue), + isTyped = !isArr && !isBuff && isTypedArray(srcValue); + + newValue = srcValue; + if (isArr || isBuff || isTyped) { + if (isArray(objValue)) { + newValue = objValue; + } + else if (isArrayLikeObject(objValue)) { + newValue = copyArray(objValue); + } + else if (isBuff) { + isCommon = false; + newValue = cloneBuffer(srcValue, true); + } + else if (isTyped) { + isCommon = false; + newValue = cloneTypedArray(srcValue, true); + } + else { + newValue = []; + } + } + else if (isPlainObject(srcValue) || isArguments(srcValue)) { + newValue = objValue; + if (isArguments(objValue)) { + newValue = toPlainObject(objValue); + } + else if (!isObject(objValue) || isFunction(objValue)) { + newValue = initCloneObject(srcValue); + } + } + else { + isCommon = false; + } + } + if (isCommon) { + // Recursively merge objects and arrays (susceptible to call stack limits). + stack.set(srcValue, newValue); + mergeFunc(newValue, srcValue, srcIndex, customizer, stack); + stack['delete'](srcValue); + } + assignMergeValue(object, key, newValue); + } + + /** + * The base implementation of `_.nth` which doesn't coerce arguments. + * + * @private + * @param {Array} array The array to query. + * @param {number} n The index of the element to return. + * @returns {*} Returns the nth element of `array`. + */ + function baseNth(array, n) { + var length = array.length; + if (!length) { + return; + } + n += n < 0 ? length : 0; + return isIndex(n, length) ? array[n] : undefined; + } + + /** + * The base implementation of `_.orderBy` without param guards. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by. + * @param {string[]} orders The sort orders of `iteratees`. + * @returns {Array} Returns the new sorted array. + */ + function baseOrderBy(collection, iteratees, orders) { + if (iteratees.length) { + iteratees = arrayMap(iteratees, function(iteratee) { + if (isArray(iteratee)) { + return function(value) { + return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee); + } + } + return iteratee; + }); + } else { + iteratees = [identity]; + } + + var index = -1; + iteratees = arrayMap(iteratees, baseUnary(getIteratee())); + + var result = baseMap(collection, function(value, key, collection) { + var criteria = arrayMap(iteratees, function(iteratee) { + return iteratee(value); + }); + return { 'criteria': criteria, 'index': ++index, 'value': value }; + }); + + return baseSortBy(result, function(object, other) { + return compareMultiple(object, other, orders); + }); + } + + /** + * The base implementation of `_.pick` without support for individual + * property identifiers. + * + * @private + * @param {Object} object The source object. + * @param {string[]} paths The property paths to pick. + * @returns {Object} Returns the new object. + */ + function basePick(object, paths) { + return basePickBy(object, paths, function(value, path) { + return hasIn(object, path); + }); + } + + /** + * The base implementation of `_.pickBy` without support for iteratee shorthands. + * + * @private + * @param {Object} object The source object. + * @param {string[]} paths The property paths to pick. + * @param {Function} predicate The function invoked per property. + * @returns {Object} Returns the new object. + */ + function basePickBy(object, paths, predicate) { + var index = -1, + length = paths.length, + result = {}; + + while (++index < length) { + var path = paths[index], + value = baseGet(object, path); + + if (predicate(value, path)) { + baseSet(result, castPath(path, object), value); + } + } + return result; + } + + /** + * A specialized version of `baseProperty` which supports deep paths. + * + * @private + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new accessor function. + */ + function basePropertyDeep(path) { + return function(object) { + return baseGet(object, path); + }; + } + + /** + * The base implementation of `_.pullAllBy` without support for iteratee + * shorthands. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to remove. + * @param {Function} [iteratee] The iteratee invoked per element. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns `array`. + */ + function basePullAll(array, values, iteratee, comparator) { + var indexOf = comparator ? baseIndexOfWith : baseIndexOf, + index = -1, + length = values.length, + seen = array; + + if (array === values) { + values = copyArray(values); + } + if (iteratee) { + seen = arrayMap(array, baseUnary(iteratee)); + } + while (++index < length) { + var fromIndex = 0, + value = values[index], + computed = iteratee ? iteratee(value) : value; + + while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) { + if (seen !== array) { + splice.call(seen, fromIndex, 1); + } + splice.call(array, fromIndex, 1); + } + } + return array; + } + + /** + * The base implementation of `_.pullAt` without support for individual + * indexes or capturing the removed elements. + * + * @private + * @param {Array} array The array to modify. + * @param {number[]} indexes The indexes of elements to remove. + * @returns {Array} Returns `array`. + */ + function basePullAt(array, indexes) { + var length = array ? indexes.length : 0, + lastIndex = length - 1; + + while (length--) { + var index = indexes[length]; + if (length == lastIndex || index !== previous) { + var previous = index; + if (isIndex(index)) { + splice.call(array, index, 1); + } else { + baseUnset(array, index); + } + } + } + return array; + } + + /** + * The base implementation of `_.random` without support for returning + * floating-point numbers. + * + * @private + * @param {number} lower The lower bound. + * @param {number} upper The upper bound. + * @returns {number} Returns the random number. + */ + function baseRandom(lower, upper) { + return lower + nativeFloor(nativeRandom() * (upper - lower + 1)); + } + + /** + * The base implementation of `_.range` and `_.rangeRight` which doesn't + * coerce arguments. + * + * @private + * @param {number} start The start of the range. + * @param {number} end The end of the range. + * @param {number} step The value to increment or decrement by. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Array} Returns the range of numbers. + */ + function baseRange(start, end, step, fromRight) { + var index = -1, + length = nativeMax(nativeCeil((end - start) / (step || 1)), 0), + result = Array(length); + + while (length--) { + result[fromRight ? length : ++index] = start; + start += step; + } + return result; + } + + /** + * The base implementation of `_.repeat` which doesn't coerce arguments. + * + * @private + * @param {string} string The string to repeat. + * @param {number} n The number of times to repeat the string. + * @returns {string} Returns the repeated string. + */ + function baseRepeat(string, n) { + var result = ''; + if (!string || n < 1 || n > MAX_SAFE_INTEGER) { + return result; + } + // Leverage the exponentiation by squaring algorithm for a faster repeat. + // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details. + do { + if (n % 2) { + result += string; + } + n = nativeFloor(n / 2); + if (n) { + string += string; + } + } while (n); + + return result; + } + + /** + * The base implementation of `_.rest` which doesn't validate or coerce arguments. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + */ + function baseRest(func, start) { + return setToString(overRest(func, start, identity), func + ''); + } + + /** + * The base implementation of `_.sample`. + * + * @private + * @param {Array|Object} collection The collection to sample. + * @returns {*} Returns the random element. + */ + function baseSample(collection) { + return arraySample(values(collection)); + } + + /** + * The base implementation of `_.sampleSize` without param guards. + * + * @private + * @param {Array|Object} collection The collection to sample. + * @param {number} n The number of elements to sample. + * @returns {Array} Returns the random elements. + */ + function baseSampleSize(collection, n) { + var array = values(collection); + return shuffleSelf(array, baseClamp(n, 0, array.length)); + } + + /** + * The base implementation of `_.set`. + * + * @private + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {*} value The value to set. + * @param {Function} [customizer] The function to customize path creation. + * @returns {Object} Returns `object`. + */ + function baseSet(object, path, value, customizer) { + if (!isObject(object)) { + return object; + } + path = castPath(path, object); + + var index = -1, + length = path.length, + lastIndex = length - 1, + nested = object; + + while (nested != null && ++index < length) { + var key = toKey(path[index]), + newValue = value; + + if (key === '__proto__' || key === 'constructor' || key === 'prototype') { + return object; + } + + if (index != lastIndex) { + var objValue = nested[key]; + newValue = customizer ? customizer(objValue, key, nested) : undefined; + if (newValue === undefined) { + newValue = isObject(objValue) + ? objValue + : (isIndex(path[index + 1]) ? [] : {}); + } + } + assignValue(nested, key, newValue); + nested = nested[key]; + } + return object; + } + + /** + * The base implementation of `setData` without support for hot loop shorting. + * + * @private + * @param {Function} func The function to associate metadata with. + * @param {*} data The metadata. + * @returns {Function} Returns `func`. + */ + var baseSetData = !metaMap ? identity : function(func, data) { + metaMap.set(func, data); + return func; + }; + + /** + * The base implementation of `setToString` without support for hot loop shorting. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ + var baseSetToString = !defineProperty ? identity : function(func, string) { + return defineProperty(func, 'toString', { + 'configurable': true, + 'enumerable': false, + 'value': constant(string), + 'writable': true + }); + }; + + /** + * The base implementation of `_.shuffle`. + * + * @private + * @param {Array|Object} collection The collection to shuffle. + * @returns {Array} Returns the new shuffled array. + */ + function baseShuffle(collection) { + return shuffleSelf(values(collection)); + } + + /** + * The base implementation of `_.slice` without an iteratee call guard. + * + * @private + * @param {Array} array The array to slice. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns the slice of `array`. + */ + function baseSlice(array, start, end) { + var index = -1, + length = array.length; + + if (start < 0) { + start = -start > length ? 0 : (length + start); + } + end = end > length ? length : end; + if (end < 0) { + end += length; + } + length = start > end ? 0 : ((end - start) >>> 0); + start >>>= 0; + + var result = Array(length); + while (++index < length) { + result[index] = array[index + start]; + } + return result; + } + + /** + * The base implementation of `_.some` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ + function baseSome(collection, predicate) { + var result; + + baseEach(collection, function(value, index, collection) { + result = predicate(value, index, collection); + return !result; + }); + return !!result; + } + + /** + * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which + * performs a binary search of `array` to determine the index at which `value` + * should be inserted into `array` in order to maintain its sort order. + * + * @private + * @param {Array} array The sorted array to inspect. + * @param {*} value The value to evaluate. + * @param {boolean} [retHighest] Specify returning the highest qualified index. + * @returns {number} Returns the index at which `value` should be inserted + * into `array`. + */ + function baseSortedIndex(array, value, retHighest) { + var low = 0, + high = array == null ? low : array.length; + + if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) { + while (low < high) { + var mid = (low + high) >>> 1, + computed = array[mid]; + + if (computed !== null && !isSymbol(computed) && + (retHighest ? (computed <= value) : (computed < value))) { + low = mid + 1; + } else { + high = mid; + } + } + return high; + } + return baseSortedIndexBy(array, value, identity, retHighest); + } + + /** + * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy` + * which invokes `iteratee` for `value` and each element of `array` to compute + * their sort ranking. The iteratee is invoked with one argument; (value). + * + * @private + * @param {Array} array The sorted array to inspect. + * @param {*} value The value to evaluate. + * @param {Function} iteratee The iteratee invoked per element. + * @param {boolean} [retHighest] Specify returning the highest qualified index. + * @returns {number} Returns the index at which `value` should be inserted + * into `array`. + */ + function baseSortedIndexBy(array, value, iteratee, retHighest) { + var low = 0, + high = array == null ? 0 : array.length; + if (high === 0) { + return 0; + } + + value = iteratee(value); + var valIsNaN = value !== value, + valIsNull = value === null, + valIsSymbol = isSymbol(value), + valIsUndefined = value === undefined; + + while (low < high) { + var mid = nativeFloor((low + high) / 2), + computed = iteratee(array[mid]), + othIsDefined = computed !== undefined, + othIsNull = computed === null, + othIsReflexive = computed === computed, + othIsSymbol = isSymbol(computed); + + if (valIsNaN) { + var setLow = retHighest || othIsReflexive; + } else if (valIsUndefined) { + setLow = othIsReflexive && (retHighest || othIsDefined); + } else if (valIsNull) { + setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull); + } else if (valIsSymbol) { + setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol); + } else if (othIsNull || othIsSymbol) { + setLow = false; + } else { + setLow = retHighest ? (computed <= value) : (computed < value); + } + if (setLow) { + low = mid + 1; + } else { + high = mid; + } + } + return nativeMin(high, MAX_ARRAY_INDEX); + } + + /** + * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without + * support for iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} [iteratee] The iteratee invoked per element. + * @returns {Array} Returns the new duplicate free array. + */ + function baseSortedUniq(array, iteratee) { + var index = -1, + length = array.length, + resIndex = 0, + result = []; + + while (++index < length) { + var value = array[index], + computed = iteratee ? iteratee(value) : value; + + if (!index || !eq(computed, seen)) { + var seen = computed; + result[resIndex++] = value === 0 ? 0 : value; + } + } + return result; + } + + /** + * The base implementation of `_.toNumber` which doesn't ensure correct + * conversions of binary, hexadecimal, or octal string values. + * + * @private + * @param {*} value The value to process. + * @returns {number} Returns the number. + */ + function baseToNumber(value) { + if (typeof value == 'number') { + return value; + } + if (isSymbol(value)) { + return NAN; + } + return +value; + } + + /** + * The base implementation of `_.toString` which doesn't convert nullish + * values to empty strings. + * + * @private + * @param {*} value The value to process. + * @returns {string} Returns the string. + */ + function baseToString(value) { + // Exit early for strings to avoid a performance hit in some environments. + if (typeof value == 'string') { + return value; + } + if (isArray(value)) { + // Recursively convert values (susceptible to call stack limits). + return arrayMap(value, baseToString) + ''; + } + if (isSymbol(value)) { + return symbolToString ? symbolToString.call(value) : ''; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; + } + + /** + * The base implementation of `_.uniqBy` without support for iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} [iteratee] The iteratee invoked per element. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new duplicate free array. + */ + function baseUniq(array, iteratee, comparator) { + var index = -1, + includes = arrayIncludes, + length = array.length, + isCommon = true, + result = [], + seen = result; + + if (comparator) { + isCommon = false; + includes = arrayIncludesWith; + } + else if (length >= LARGE_ARRAY_SIZE) { + var set = iteratee ? null : createSet(array); + if (set) { + return setToArray(set); + } + isCommon = false; + includes = cacheHas; + seen = new SetCache; + } + else { + seen = iteratee ? [] : result; + } + outer: + while (++index < length) { + var value = array[index], + computed = iteratee ? iteratee(value) : value; + + value = (comparator || value !== 0) ? value : 0; + if (isCommon && computed === computed) { + var seenIndex = seen.length; + while (seenIndex--) { + if (seen[seenIndex] === computed) { + continue outer; + } + } + if (iteratee) { + seen.push(computed); + } + result.push(value); + } + else if (!includes(seen, computed, comparator)) { + if (seen !== result) { + seen.push(computed); + } + result.push(value); + } + } + return result; + } + + /** + * The base implementation of `_.unset`. + * + * @private + * @param {Object} object The object to modify. + * @param {Array|string} path The property path to unset. + * @returns {boolean} Returns `true` if the property is deleted, else `false`. + */ + function baseUnset(object, path) { + path = castPath(path, object); + object = parent(object, path); + return object == null || delete object[toKey(last(path))]; + } + + /** + * The base implementation of `_.update`. + * + * @private + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to update. + * @param {Function} updater The function to produce the updated value. + * @param {Function} [customizer] The function to customize path creation. + * @returns {Object} Returns `object`. + */ + function baseUpdate(object, path, updater, customizer) { + return baseSet(object, path, updater(baseGet(object, path)), customizer); + } + + /** + * The base implementation of methods like `_.dropWhile` and `_.takeWhile` + * without support for iteratee shorthands. + * + * @private + * @param {Array} array The array to query. + * @param {Function} predicate The function invoked per iteration. + * @param {boolean} [isDrop] Specify dropping elements instead of taking them. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Array} Returns the slice of `array`. + */ + function baseWhile(array, predicate, isDrop, fromRight) { + var length = array.length, + index = fromRight ? length : -1; + + while ((fromRight ? index-- : ++index < length) && + predicate(array[index], index, array)) {} + + return isDrop + ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length)) + : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index)); + } + + /** + * The base implementation of `wrapperValue` which returns the result of + * performing a sequence of actions on the unwrapped `value`, where each + * successive action is supplied the return value of the previous. + * + * @private + * @param {*} value The unwrapped value. + * @param {Array} actions Actions to perform to resolve the unwrapped value. + * @returns {*} Returns the resolved value. + */ + function baseWrapperValue(value, actions) { + var result = value; + if (result instanceof LazyWrapper) { + result = result.value(); + } + return arrayReduce(actions, function(result, action) { + return action.func.apply(action.thisArg, arrayPush([result], action.args)); + }, result); + } + + /** + * The base implementation of methods like `_.xor`, without support for + * iteratee shorthands, that accepts an array of arrays to inspect. + * + * @private + * @param {Array} arrays The arrays to inspect. + * @param {Function} [iteratee] The iteratee invoked per element. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of values. + */ + function baseXor(arrays, iteratee, comparator) { + var length = arrays.length; + if (length < 2) { + return length ? baseUniq(arrays[0]) : []; + } + var index = -1, + result = Array(length); + + while (++index < length) { + var array = arrays[index], + othIndex = -1; + + while (++othIndex < length) { + if (othIndex != index) { + result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator); + } + } + } + return baseUniq(baseFlatten(result, 1), iteratee, comparator); + } + + /** + * This base implementation of `_.zipObject` which assigns values using `assignFunc`. + * + * @private + * @param {Array} props The property identifiers. + * @param {Array} values The property values. + * @param {Function} assignFunc The function to assign values. + * @returns {Object} Returns the new object. + */ + function baseZipObject(props, values, assignFunc) { + var index = -1, + length = props.length, + valsLength = values.length, + result = {}; + + while (++index < length) { + var value = index < valsLength ? values[index] : undefined; + assignFunc(result, props[index], value); + } + return result; + } + + /** + * Casts `value` to an empty array if it's not an array like object. + * + * @private + * @param {*} value The value to inspect. + * @returns {Array|Object} Returns the cast array-like object. + */ + function castArrayLikeObject(value) { + return isArrayLikeObject(value) ? value : []; + } + + /** + * Casts `value` to `identity` if it's not a function. + * + * @private + * @param {*} value The value to inspect. + * @returns {Function} Returns cast function. + */ + function castFunction(value) { + return typeof value == 'function' ? value : identity; + } + + /** + * Casts `value` to a path array if it's not one. + * + * @private + * @param {*} value The value to inspect. + * @param {Object} [object] The object to query keys on. + * @returns {Array} Returns the cast property path array. + */ + function castPath(value, object) { + if (isArray(value)) { + return value; + } + return isKey(value, object) ? [value] : stringToPath(toString(value)); + } + + /** + * A `baseRest` alias which can be replaced with `identity` by module + * replacement plugins. + * + * @private + * @type {Function} + * @param {Function} func The function to apply a rest parameter to. + * @returns {Function} Returns the new function. + */ + var castRest = baseRest; + + /** + * Casts `array` to a slice if it's needed. + * + * @private + * @param {Array} array The array to inspect. + * @param {number} start The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns the cast slice. + */ + function castSlice(array, start, end) { + var length = array.length; + end = end === undefined ? length : end; + return (!start && end >= length) ? array : baseSlice(array, start, end); + } + + /** + * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout). + * + * @private + * @param {number|Object} id The timer id or timeout object of the timer to clear. + */ + var clearTimeout = ctxClearTimeout || function(id) { + return root.clearTimeout(id); + }; + + /** + * Creates a clone of `buffer`. + * + * @private + * @param {Buffer} buffer The buffer to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Buffer} Returns the cloned buffer. + */ + function cloneBuffer(buffer, isDeep) { + if (isDeep) { + return buffer.slice(); + } + var length = buffer.length, + result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); + + buffer.copy(result); + return result; + } + + /** + * Creates a clone of `arrayBuffer`. + * + * @private + * @param {ArrayBuffer} arrayBuffer The array buffer to clone. + * @returns {ArrayBuffer} Returns the cloned array buffer. + */ + function cloneArrayBuffer(arrayBuffer) { + var result = new arrayBuffer.constructor(arrayBuffer.byteLength); + new Uint8Array(result).set(new Uint8Array(arrayBuffer)); + return result; + } + + /** + * Creates a clone of `dataView`. + * + * @private + * @param {Object} dataView The data view to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned data view. + */ + function cloneDataView(dataView, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer; + return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); + } + + /** + * Creates a clone of `regexp`. + * + * @private + * @param {Object} regexp The regexp to clone. + * @returns {Object} Returns the cloned regexp. + */ + function cloneRegExp(regexp) { + var result = new regexp.constructor(regexp.source, reFlags.exec(regexp)); + result.lastIndex = regexp.lastIndex; + return result; + } + + /** + * Creates a clone of the `symbol` object. + * + * @private + * @param {Object} symbol The symbol object to clone. + * @returns {Object} Returns the cloned symbol object. + */ + function cloneSymbol(symbol) { + return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {}; + } + + /** + * Creates a clone of `typedArray`. + * + * @private + * @param {Object} typedArray The typed array to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned typed array. + */ + function cloneTypedArray(typedArray, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; + return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); + } + + /** + * Compares values to sort them in ascending order. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {number} Returns the sort order indicator for `value`. + */ + function compareAscending(value, other) { + if (value !== other) { + var valIsDefined = value !== undefined, + valIsNull = value === null, + valIsReflexive = value === value, + valIsSymbol = isSymbol(value); + + var othIsDefined = other !== undefined, + othIsNull = other === null, + othIsReflexive = other === other, + othIsSymbol = isSymbol(other); + + if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) || + (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) || + (valIsNull && othIsDefined && othIsReflexive) || + (!valIsDefined && othIsReflexive) || + !valIsReflexive) { + return 1; + } + if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) || + (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) || + (othIsNull && valIsDefined && valIsReflexive) || + (!othIsDefined && valIsReflexive) || + !othIsReflexive) { + return -1; + } + } + return 0; + } + + /** + * Used by `_.orderBy` to compare multiple properties of a value to another + * and stable sort them. + * + * If `orders` is unspecified, all values are sorted in ascending order. Otherwise, + * specify an order of "desc" for descending or "asc" for ascending sort order + * of corresponding values. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {boolean[]|string[]} orders The order to sort by for each property. + * @returns {number} Returns the sort order indicator for `object`. + */ + function compareMultiple(object, other, orders) { + var index = -1, + objCriteria = object.criteria, + othCriteria = other.criteria, + length = objCriteria.length, + ordersLength = orders.length; + + while (++index < length) { + var result = compareAscending(objCriteria[index], othCriteria[index]); + if (result) { + if (index >= ordersLength) { + return result; + } + var order = orders[index]; + return result * (order == 'desc' ? -1 : 1); + } + } + // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications + // that causes it, under certain circumstances, to provide the same value for + // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247 + // for more details. + // + // This also ensures a stable sort in V8 and other engines. + // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details. + return object.index - other.index; + } + + /** + * Creates an array that is the composition of partially applied arguments, + * placeholders, and provided arguments into a single array of arguments. + * + * @private + * @param {Array} args The provided arguments. + * @param {Array} partials The arguments to prepend to those provided. + * @param {Array} holders The `partials` placeholder indexes. + * @params {boolean} [isCurried] Specify composing for a curried function. + * @returns {Array} Returns the new array of composed arguments. + */ + function composeArgs(args, partials, holders, isCurried) { + var argsIndex = -1, + argsLength = args.length, + holdersLength = holders.length, + leftIndex = -1, + leftLength = partials.length, + rangeLength = nativeMax(argsLength - holdersLength, 0), + result = Array(leftLength + rangeLength), + isUncurried = !isCurried; + + while (++leftIndex < leftLength) { + result[leftIndex] = partials[leftIndex]; + } + while (++argsIndex < holdersLength) { + if (isUncurried || argsIndex < argsLength) { + result[holders[argsIndex]] = args[argsIndex]; + } + } + while (rangeLength--) { + result[leftIndex++] = args[argsIndex++]; + } + return result; + } + + /** + * This function is like `composeArgs` except that the arguments composition + * is tailored for `_.partialRight`. + * + * @private + * @param {Array} args The provided arguments. + * @param {Array} partials The arguments to append to those provided. + * @param {Array} holders The `partials` placeholder indexes. + * @params {boolean} [isCurried] Specify composing for a curried function. + * @returns {Array} Returns the new array of composed arguments. + */ + function composeArgsRight(args, partials, holders, isCurried) { + var argsIndex = -1, + argsLength = args.length, + holdersIndex = -1, + holdersLength = holders.length, + rightIndex = -1, + rightLength = partials.length, + rangeLength = nativeMax(argsLength - holdersLength, 0), + result = Array(rangeLength + rightLength), + isUncurried = !isCurried; + + while (++argsIndex < rangeLength) { + result[argsIndex] = args[argsIndex]; + } + var offset = argsIndex; + while (++rightIndex < rightLength) { + result[offset + rightIndex] = partials[rightIndex]; + } + while (++holdersIndex < holdersLength) { + if (isUncurried || argsIndex < argsLength) { + result[offset + holders[holdersIndex]] = args[argsIndex++]; + } + } + return result; + } + + /** + * Copies the values of `source` to `array`. + * + * @private + * @param {Array} source The array to copy values from. + * @param {Array} [array=[]] The array to copy values to. + * @returns {Array} Returns `array`. + */ + function copyArray(source, array) { + var index = -1, + length = source.length; + + array || (array = Array(length)); + while (++index < length) { + array[index] = source[index]; + } + return array; + } + + /** + * Copies properties of `source` to `object`. + * + * @private + * @param {Object} source The object to copy properties from. + * @param {Array} props The property identifiers to copy. + * @param {Object} [object={}] The object to copy properties to. + * @param {Function} [customizer] The function to customize copied values. + * @returns {Object} Returns `object`. + */ + function copyObject(source, props, object, customizer) { + var isNew = !object; + object || (object = {}); + + var index = -1, + length = props.length; + + while (++index < length) { + var key = props[index]; + + var newValue = customizer + ? customizer(object[key], source[key], key, object, source) + : undefined; + + if (newValue === undefined) { + newValue = source[key]; + } + if (isNew) { + baseAssignValue(object, key, newValue); + } else { + assignValue(object, key, newValue); + } + } + return object; + } + + /** + * Copies own symbols of `source` to `object`. + * + * @private + * @param {Object} source The object to copy symbols from. + * @param {Object} [object={}] The object to copy symbols to. + * @returns {Object} Returns `object`. + */ + function copySymbols(source, object) { + return copyObject(source, getSymbols(source), object); + } + + /** + * Copies own and inherited symbols of `source` to `object`. + * + * @private + * @param {Object} source The object to copy symbols from. + * @param {Object} [object={}] The object to copy symbols to. + * @returns {Object} Returns `object`. + */ + function copySymbolsIn(source, object) { + return copyObject(source, getSymbolsIn(source), object); + } + + /** + * Creates a function like `_.groupBy`. + * + * @private + * @param {Function} setter The function to set accumulator values. + * @param {Function} [initializer] The accumulator object initializer. + * @returns {Function} Returns the new aggregator function. + */ + function createAggregator(setter, initializer) { + return function(collection, iteratee) { + var func = isArray(collection) ? arrayAggregator : baseAggregator, + accumulator = initializer ? initializer() : {}; + + return func(collection, setter, getIteratee(iteratee, 2), accumulator); + }; + } + + /** + * Creates a function like `_.assign`. + * + * @private + * @param {Function} assigner The function to assign values. + * @returns {Function} Returns the new assigner function. + */ + function createAssigner(assigner) { + return baseRest(function(object, sources) { + var index = -1, + length = sources.length, + customizer = length > 1 ? sources[length - 1] : undefined, + guard = length > 2 ? sources[2] : undefined; + + customizer = (assigner.length > 3 && typeof customizer == 'function') + ? (length--, customizer) + : undefined; + + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + customizer = length < 3 ? undefined : customizer; + length = 1; + } + object = Object(object); + while (++index < length) { + var source = sources[index]; + if (source) { + assigner(object, source, index, customizer); + } + } + return object; + }); + } + + /** + * Creates a `baseEach` or `baseEachRight` function. + * + * @private + * @param {Function} eachFunc The function to iterate over a collection. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ + function createBaseEach(eachFunc, fromRight) { + return function(collection, iteratee) { + if (collection == null) { + return collection; + } + if (!isArrayLike(collection)) { + return eachFunc(collection, iteratee); + } + var length = collection.length, + index = fromRight ? length : -1, + iterable = Object(collection); + + while ((fromRight ? index-- : ++index < length)) { + if (iteratee(iterable[index], index, iterable) === false) { + break; + } + } + return collection; + }; + } + + /** + * Creates a base function for methods like `_.forIn` and `_.forOwn`. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ + function createBaseFor(fromRight) { + return function(object, iteratee, keysFunc) { + var index = -1, + iterable = Object(object), + props = keysFunc(object), + length = props.length; + + while (length--) { + var key = props[fromRight ? length : ++index]; + if (iteratee(iterable[key], key, iterable) === false) { + break; + } + } + return object; + }; + } + + /** + * Creates a function that wraps `func` to invoke it with the optional `this` + * binding of `thisArg`. + * + * @private + * @param {Function} func The function to wrap. + * @param {number} bitmask The bitmask flags. See `createWrap` for more details. + * @param {*} [thisArg] The `this` binding of `func`. + * @returns {Function} Returns the new wrapped function. + */ + function createBind(func, bitmask, thisArg) { + var isBind = bitmask & WRAP_BIND_FLAG, + Ctor = createCtor(func); + + function wrapper() { + var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; + return fn.apply(isBind ? thisArg : this, arguments); + } + return wrapper; + } + + /** + * Creates a function like `_.lowerFirst`. + * + * @private + * @param {string} methodName The name of the `String` case method to use. + * @returns {Function} Returns the new case function. + */ + function createCaseFirst(methodName) { + return function(string) { + string = toString(string); + + var strSymbols = hasUnicode(string) + ? stringToArray(string) + : undefined; + + var chr = strSymbols + ? strSymbols[0] + : string.charAt(0); + + var trailing = strSymbols + ? castSlice(strSymbols, 1).join('') + : string.slice(1); + + return chr[methodName]() + trailing; + }; + } + + /** + * Creates a function like `_.camelCase`. + * + * @private + * @param {Function} callback The function to combine each word. + * @returns {Function} Returns the new compounder function. + */ + function createCompounder(callback) { + return function(string) { + return arrayReduce(words(deburr(string).replace(reApos, '')), callback, ''); + }; + } + + /** + * Creates a function that produces an instance of `Ctor` regardless of + * whether it was invoked as part of a `new` expression or by `call` or `apply`. + * + * @private + * @param {Function} Ctor The constructor to wrap. + * @returns {Function} Returns the new wrapped function. + */ + function createCtor(Ctor) { + return function() { + // Use a `switch` statement to work with class constructors. See + // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist + // for more details. + var args = arguments; + switch (args.length) { + case 0: return new Ctor; + case 1: return new Ctor(args[0]); + case 2: return new Ctor(args[0], args[1]); + case 3: return new Ctor(args[0], args[1], args[2]); + case 4: return new Ctor(args[0], args[1], args[2], args[3]); + case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]); + case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]); + case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]); + } + var thisBinding = baseCreate(Ctor.prototype), + result = Ctor.apply(thisBinding, args); + + // Mimic the constructor's `return` behavior. + // See https://es5.github.io/#x13.2.2 for more details. + return isObject(result) ? result : thisBinding; + }; + } + + /** + * Creates a function that wraps `func` to enable currying. + * + * @private + * @param {Function} func The function to wrap. + * @param {number} bitmask The bitmask flags. See `createWrap` for more details. + * @param {number} arity The arity of `func`. + * @returns {Function} Returns the new wrapped function. + */ + function createCurry(func, bitmask, arity) { + var Ctor = createCtor(func); + + function wrapper() { + var length = arguments.length, + args = Array(length), + index = length, + placeholder = getHolder(wrapper); + + while (index--) { + args[index] = arguments[index]; + } + var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder) + ? [] + : replaceHolders(args, placeholder); + + length -= holders.length; + if (length < arity) { + return createRecurry( + func, bitmask, createHybrid, wrapper.placeholder, undefined, + args, holders, undefined, undefined, arity - length); + } + var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; + return apply(fn, this, args); + } + return wrapper; + } + + /** + * Creates a `_.find` or `_.findLast` function. + * + * @private + * @param {Function} findIndexFunc The function to find the collection index. + * @returns {Function} Returns the new find function. + */ + function createFind(findIndexFunc) { + return function(collection, predicate, fromIndex) { + var iterable = Object(collection); + if (!isArrayLike(collection)) { + var iteratee = getIteratee(predicate, 3); + collection = keys(collection); + predicate = function(key) { return iteratee(iterable[key], key, iterable); }; + } + var index = findIndexFunc(collection, predicate, fromIndex); + return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined; + }; + } + + /** + * Creates a `_.flow` or `_.flowRight` function. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new flow function. + */ + function createFlow(fromRight) { + return flatRest(function(funcs) { + var length = funcs.length, + index = length, + prereq = LodashWrapper.prototype.thru; + + if (fromRight) { + funcs.reverse(); + } + while (index--) { + var func = funcs[index]; + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + if (prereq && !wrapper && getFuncName(func) == 'wrapper') { + var wrapper = new LodashWrapper([], true); + } + } + index = wrapper ? index : length; + while (++index < length) { + func = funcs[index]; + + var funcName = getFuncName(func), + data = funcName == 'wrapper' ? getData(func) : undefined; + + if (data && isLaziable(data[0]) && + data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && + !data[4].length && data[9] == 1 + ) { + wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]); + } else { + wrapper = (func.length == 1 && isLaziable(func)) + ? wrapper[funcName]() + : wrapper.thru(func); + } + } + return function() { + var args = arguments, + value = args[0]; + + if (wrapper && args.length == 1 && isArray(value)) { + return wrapper.plant(value).value(); + } + var index = 0, + result = length ? funcs[index].apply(this, args) : value; + + while (++index < length) { + result = funcs[index].call(this, result); + } + return result; + }; + }); + } + + /** + * Creates a function that wraps `func` to invoke it with optional `this` + * binding of `thisArg`, partial application, and currying. + * + * @private + * @param {Function|string} func The function or method name to wrap. + * @param {number} bitmask The bitmask flags. See `createWrap` for more details. + * @param {*} [thisArg] The `this` binding of `func`. + * @param {Array} [partials] The arguments to prepend to those provided to + * the new function. + * @param {Array} [holders] The `partials` placeholder indexes. + * @param {Array} [partialsRight] The arguments to append to those provided + * to the new function. + * @param {Array} [holdersRight] The `partialsRight` placeholder indexes. + * @param {Array} [argPos] The argument positions of the new function. + * @param {number} [ary] The arity cap of `func`. + * @param {number} [arity] The arity of `func`. + * @returns {Function} Returns the new wrapped function. + */ + function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) { + var isAry = bitmask & WRAP_ARY_FLAG, + isBind = bitmask & WRAP_BIND_FLAG, + isBindKey = bitmask & WRAP_BIND_KEY_FLAG, + isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG), + isFlip = bitmask & WRAP_FLIP_FLAG, + Ctor = isBindKey ? undefined : createCtor(func); + + function wrapper() { + var length = arguments.length, + args = Array(length), + index = length; + + while (index--) { + args[index] = arguments[index]; + } + if (isCurried) { + var placeholder = getHolder(wrapper), + holdersCount = countHolders(args, placeholder); + } + if (partials) { + args = composeArgs(args, partials, holders, isCurried); + } + if (partialsRight) { + args = composeArgsRight(args, partialsRight, holdersRight, isCurried); + } + length -= holdersCount; + if (isCurried && length < arity) { + var newHolders = replaceHolders(args, placeholder); + return createRecurry( + func, bitmask, createHybrid, wrapper.placeholder, thisArg, + args, newHolders, argPos, ary, arity - length + ); + } + var thisBinding = isBind ? thisArg : this, + fn = isBindKey ? thisBinding[func] : func; + + length = args.length; + if (argPos) { + args = reorder(args, argPos); + } else if (isFlip && length > 1) { + args.reverse(); + } + if (isAry && ary < length) { + args.length = ary; + } + if (this && this !== root && this instanceof wrapper) { + fn = Ctor || createCtor(fn); + } + return fn.apply(thisBinding, args); + } + return wrapper; + } + + /** + * Creates a function like `_.invertBy`. + * + * @private + * @param {Function} setter The function to set accumulator values. + * @param {Function} toIteratee The function to resolve iteratees. + * @returns {Function} Returns the new inverter function. + */ + function createInverter(setter, toIteratee) { + return function(object, iteratee) { + return baseInverter(object, setter, toIteratee(iteratee), {}); + }; + } + + /** + * Creates a function that performs a mathematical operation on two values. + * + * @private + * @param {Function} operator The function to perform the operation. + * @param {number} [defaultValue] The value used for `undefined` arguments. + * @returns {Function} Returns the new mathematical operation function. + */ + function createMathOperation(operator, defaultValue) { + return function(value, other) { + var result; + if (value === undefined && other === undefined) { + return defaultValue; + } + if (value !== undefined) { + result = value; + } + if (other !== undefined) { + if (result === undefined) { + return other; + } + if (typeof value == 'string' || typeof other == 'string') { + value = baseToString(value); + other = baseToString(other); + } else { + value = baseToNumber(value); + other = baseToNumber(other); + } + result = operator(value, other); + } + return result; + }; + } + + /** + * Creates a function like `_.over`. + * + * @private + * @param {Function} arrayFunc The function to iterate over iteratees. + * @returns {Function} Returns the new over function. + */ + function createOver(arrayFunc) { + return flatRest(function(iteratees) { + iteratees = arrayMap(iteratees, baseUnary(getIteratee())); + return baseRest(function(args) { + var thisArg = this; + return arrayFunc(iteratees, function(iteratee) { + return apply(iteratee, thisArg, args); + }); + }); + }); + } + + /** + * Creates the padding for `string` based on `length`. The `chars` string + * is truncated if the number of characters exceeds `length`. + * + * @private + * @param {number} length The padding length. + * @param {string} [chars=' '] The string used as padding. + * @returns {string} Returns the padding for `string`. + */ + function createPadding(length, chars) { + chars = chars === undefined ? ' ' : baseToString(chars); + + var charsLength = chars.length; + if (charsLength < 2) { + return charsLength ? baseRepeat(chars, length) : chars; + } + var result = baseRepeat(chars, nativeCeil(length / stringSize(chars))); + return hasUnicode(chars) + ? castSlice(stringToArray(result), 0, length).join('') + : result.slice(0, length); + } + + /** + * Creates a function that wraps `func` to invoke it with the `this` binding + * of `thisArg` and `partials` prepended to the arguments it receives. + * + * @private + * @param {Function} func The function to wrap. + * @param {number} bitmask The bitmask flags. See `createWrap` for more details. + * @param {*} thisArg The `this` binding of `func`. + * @param {Array} partials The arguments to prepend to those provided to + * the new function. + * @returns {Function} Returns the new wrapped function. + */ + function createPartial(func, bitmask, thisArg, partials) { + var isBind = bitmask & WRAP_BIND_FLAG, + Ctor = createCtor(func); + + function wrapper() { + var argsIndex = -1, + argsLength = arguments.length, + leftIndex = -1, + leftLength = partials.length, + args = Array(leftLength + argsLength), + fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; + + while (++leftIndex < leftLength) { + args[leftIndex] = partials[leftIndex]; + } + while (argsLength--) { + args[leftIndex++] = arguments[++argsIndex]; + } + return apply(fn, isBind ? thisArg : this, args); + } + return wrapper; + } + + /** + * Creates a `_.range` or `_.rangeRight` function. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new range function. + */ + function createRange(fromRight) { + return function(start, end, step) { + if (step && typeof step != 'number' && isIterateeCall(start, end, step)) { + end = step = undefined; + } + // Ensure the sign of `-0` is preserved. + start = toFinite(start); + if (end === undefined) { + end = start; + start = 0; + } else { + end = toFinite(end); + } + step = step === undefined ? (start < end ? 1 : -1) : toFinite(step); + return baseRange(start, end, step, fromRight); + }; + } + + /** + * Creates a function that performs a relational operation on two values. + * + * @private + * @param {Function} operator The function to perform the operation. + * @returns {Function} Returns the new relational operation function. + */ + function createRelationalOperation(operator) { + return function(value, other) { + if (!(typeof value == 'string' && typeof other == 'string')) { + value = toNumber(value); + other = toNumber(other); + } + return operator(value, other); + }; + } + + /** + * Creates a function that wraps `func` to continue currying. + * + * @private + * @param {Function} func The function to wrap. + * @param {number} bitmask The bitmask flags. See `createWrap` for more details. + * @param {Function} wrapFunc The function to create the `func` wrapper. + * @param {*} placeholder The placeholder value. + * @param {*} [thisArg] The `this` binding of `func`. + * @param {Array} [partials] The arguments to prepend to those provided to + * the new function. + * @param {Array} [holders] The `partials` placeholder indexes. + * @param {Array} [argPos] The argument positions of the new function. + * @param {number} [ary] The arity cap of `func`. + * @param {number} [arity] The arity of `func`. + * @returns {Function} Returns the new wrapped function. + */ + function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) { + var isCurry = bitmask & WRAP_CURRY_FLAG, + newHolders = isCurry ? holders : undefined, + newHoldersRight = isCurry ? undefined : holders, + newPartials = isCurry ? partials : undefined, + newPartialsRight = isCurry ? undefined : partials; + + bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG); + bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG); + + if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) { + bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG); + } + var newData = [ + func, bitmask, thisArg, newPartials, newHolders, newPartialsRight, + newHoldersRight, argPos, ary, arity + ]; + + var result = wrapFunc.apply(undefined, newData); + if (isLaziable(func)) { + setData(result, newData); + } + result.placeholder = placeholder; + return setWrapToString(result, func, bitmask); + } + + /** + * Creates a function like `_.round`. + * + * @private + * @param {string} methodName The name of the `Math` method to use when rounding. + * @returns {Function} Returns the new round function. + */ + function createRound(methodName) { + var func = Math[methodName]; + return function(number, precision) { + number = toNumber(number); + precision = precision == null ? 0 : nativeMin(toInteger(precision), 292); + if (precision && nativeIsFinite(number)) { + // Shift with exponential notation to avoid floating-point issues. + // See [MDN](https://mdn.io/round#Examples) for more details. + var pair = (toString(number) + 'e').split('e'), + value = func(pair[0] + 'e' + (+pair[1] + precision)); + + pair = (toString(value) + 'e').split('e'); + return +(pair[0] + 'e' + (+pair[1] - precision)); + } + return func(number); + }; + } + + /** + * Creates a set object of `values`. + * + * @private + * @param {Array} values The values to add to the set. + * @returns {Object} Returns the new set. + */ + var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) { + return new Set(values); + }; + + /** + * Creates a `_.toPairs` or `_.toPairsIn` function. + * + * @private + * @param {Function} keysFunc The function to get the keys of a given object. + * @returns {Function} Returns the new pairs function. + */ + function createToPairs(keysFunc) { + return function(object) { + var tag = getTag(object); + if (tag == mapTag) { + return mapToArray(object); + } + if (tag == setTag) { + return setToPairs(object); + } + return baseToPairs(object, keysFunc(object)); + }; + } + + /** + * Creates a function that either curries or invokes `func` with optional + * `this` binding and partially applied arguments. + * + * @private + * @param {Function|string} func The function or method name to wrap. + * @param {number} bitmask The bitmask flags. + * 1 - `_.bind` + * 2 - `_.bindKey` + * 4 - `_.curry` or `_.curryRight` of a bound function + * 8 - `_.curry` + * 16 - `_.curryRight` + * 32 - `_.partial` + * 64 - `_.partialRight` + * 128 - `_.rearg` + * 256 - `_.ary` + * 512 - `_.flip` + * @param {*} [thisArg] The `this` binding of `func`. + * @param {Array} [partials] The arguments to be partially applied. + * @param {Array} [holders] The `partials` placeholder indexes. + * @param {Array} [argPos] The argument positions of the new function. + * @param {number} [ary] The arity cap of `func`. + * @param {number} [arity] The arity of `func`. + * @returns {Function} Returns the new wrapped function. + */ + function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) { + var isBindKey = bitmask & WRAP_BIND_KEY_FLAG; + if (!isBindKey && typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + var length = partials ? partials.length : 0; + if (!length) { + bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG); + partials = holders = undefined; + } + ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0); + arity = arity === undefined ? arity : toInteger(arity); + length -= holders ? holders.length : 0; + + if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) { + var partialsRight = partials, + holdersRight = holders; + + partials = holders = undefined; + } + var data = isBindKey ? undefined : getData(func); + + var newData = [ + func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, + argPos, ary, arity + ]; + + if (data) { + mergeData(newData, data); + } + func = newData[0]; + bitmask = newData[1]; + thisArg = newData[2]; + partials = newData[3]; + holders = newData[4]; + arity = newData[9] = newData[9] === undefined + ? (isBindKey ? 0 : func.length) + : nativeMax(newData[9] - length, 0); + + if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) { + bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG); + } + if (!bitmask || bitmask == WRAP_BIND_FLAG) { + var result = createBind(func, bitmask, thisArg); + } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) { + result = createCurry(func, bitmask, arity); + } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) { + result = createPartial(func, bitmask, thisArg, partials); + } else { + result = createHybrid.apply(undefined, newData); + } + var setter = data ? baseSetData : setData; + return setWrapToString(setter(result, newData), func, bitmask); + } + + /** + * Used by `_.defaults` to customize its `_.assignIn` use to assign properties + * of source objects to the destination object for all destination properties + * that resolve to `undefined`. + * + * @private + * @param {*} objValue The destination value. + * @param {*} srcValue The source value. + * @param {string} key The key of the property to assign. + * @param {Object} object The parent object of `objValue`. + * @returns {*} Returns the value to assign. + */ + function customDefaultsAssignIn(objValue, srcValue, key, object) { + if (objValue === undefined || + (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) { + return srcValue; + } + return objValue; + } + + /** + * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source + * objects into destination objects that are passed thru. + * + * @private + * @param {*} objValue The destination value. + * @param {*} srcValue The source value. + * @param {string} key The key of the property to merge. + * @param {Object} object The parent object of `objValue`. + * @param {Object} source The parent object of `srcValue`. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. + * @returns {*} Returns the value to assign. + */ + function customDefaultsMerge(objValue, srcValue, key, object, source, stack) { + if (isObject(objValue) && isObject(srcValue)) { + // Recursively merge objects and arrays (susceptible to call stack limits). + stack.set(srcValue, objValue); + baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack); + stack['delete'](srcValue); + } + return objValue; + } + + /** + * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain + * objects. + * + * @private + * @param {*} value The value to inspect. + * @param {string} key The key of the property to inspect. + * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`. + */ + function customOmitClone(value) { + return isPlainObject(value) ? undefined : value; + } + + /** + * A specialized version of `baseIsEqualDeep` for arrays with support for + * partial deep comparisons. + * + * @private + * @param {Array} array The array to compare. + * @param {Array} other The other array to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `array` and `other` objects. + * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. + */ + function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, + arrLength = array.length, + othLength = other.length; + + if (arrLength != othLength && !(isPartial && othLength > arrLength)) { + return false; + } + // Check that cyclic values are equal. + var arrStacked = stack.get(array); + var othStacked = stack.get(other); + if (arrStacked && othStacked) { + return arrStacked == other && othStacked == array; + } + var index = -1, + result = true, + seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined; + + stack.set(array, other); + stack.set(other, array); + + // Ignore non-index properties. + while (++index < arrLength) { + var arrValue = array[index], + othValue = other[index]; + + if (customizer) { + var compared = isPartial + ? customizer(othValue, arrValue, index, other, array, stack) + : customizer(arrValue, othValue, index, array, other, stack); + } + if (compared !== undefined) { + if (compared) { + continue; + } + result = false; + break; + } + // Recursively compare arrays (susceptible to call stack limits). + if (seen) { + if (!arraySome(other, function(othValue, othIndex) { + if (!cacheHas(seen, othIndex) && + (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + return seen.push(othIndex); + } + })) { + result = false; + break; + } + } else if (!( + arrValue === othValue || + equalFunc(arrValue, othValue, bitmask, customizer, stack) + )) { + result = false; + break; + } + } + stack['delete'](array); + stack['delete'](other); + return result; + } + + /** + * A specialized version of `baseIsEqualDeep` for comparing objects of + * the same `toStringTag`. + * + * **Note:** This function only supports comparing values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {string} tag The `toStringTag` of the objects to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { + switch (tag) { + case dataViewTag: + if ((object.byteLength != other.byteLength) || + (object.byteOffset != other.byteOffset)) { + return false; + } + object = object.buffer; + other = other.buffer; + + case arrayBufferTag: + if ((object.byteLength != other.byteLength) || + !equalFunc(new Uint8Array(object), new Uint8Array(other))) { + return false; + } + return true; + + case boolTag: + case dateTag: + case numberTag: + // Coerce booleans to `1` or `0` and dates to milliseconds. + // Invalid dates are coerced to `NaN`. + return eq(+object, +other); + + case errorTag: + return object.name == other.name && object.message == other.message; + + case regexpTag: + case stringTag: + // Coerce regexes to strings and treat strings, primitives and objects, + // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring + // for more details. + return object == (other + ''); + + case mapTag: + var convert = mapToArray; + + case setTag: + var isPartial = bitmask & COMPARE_PARTIAL_FLAG; + convert || (convert = setToArray); + + if (object.size != other.size && !isPartial) { + return false; + } + // Assume cyclic values are equal. + var stacked = stack.get(object); + if (stacked) { + return stacked == other; + } + bitmask |= COMPARE_UNORDERED_FLAG; + + // Recursively compare objects (susceptible to call stack limits). + stack.set(object, other); + var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); + stack['delete'](object); + return result; + + case symbolTag: + if (symbolValueOf) { + return symbolValueOf.call(object) == symbolValueOf.call(other); + } + } + return false; + } + + /** + * A specialized version of `baseIsEqualDeep` for objects with support for + * partial deep comparisons. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, + objProps = getAllKeys(object), + objLength = objProps.length, + othProps = getAllKeys(other), + othLength = othProps.length; + + if (objLength != othLength && !isPartial) { + return false; + } + var index = objLength; + while (index--) { + var key = objProps[index]; + if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { + return false; + } + } + // Check that cyclic values are equal. + var objStacked = stack.get(object); + var othStacked = stack.get(other); + if (objStacked && othStacked) { + return objStacked == other && othStacked == object; + } + var result = true; + stack.set(object, other); + stack.set(other, object); + + var skipCtor = isPartial; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], + othValue = other[key]; + + if (customizer) { + var compared = isPartial + ? customizer(othValue, objValue, key, other, object, stack) + : customizer(objValue, othValue, key, object, other, stack); + } + // Recursively compare objects (susceptible to call stack limits). + if (!(compared === undefined + ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) + : compared + )) { + result = false; + break; + } + skipCtor || (skipCtor = key == 'constructor'); + } + if (result && !skipCtor) { + var objCtor = object.constructor, + othCtor = other.constructor; + + // Non `Object` object instances with different constructors are not equal. + if (objCtor != othCtor && + ('constructor' in object && 'constructor' in other) && + !(typeof objCtor == 'function' && objCtor instanceof objCtor && + typeof othCtor == 'function' && othCtor instanceof othCtor)) { + result = false; + } + } + stack['delete'](object); + stack['delete'](other); + return result; + } + + /** + * A specialized version of `baseRest` which flattens the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @returns {Function} Returns the new function. + */ + function flatRest(func) { + return setToString(overRest(func, undefined, flatten), func + ''); + } + + /** + * Creates an array of own enumerable property names and symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. + */ + function getAllKeys(object) { + return baseGetAllKeys(object, keys, getSymbols); + } + + /** + * Creates an array of own and inherited enumerable property names and + * symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. + */ + function getAllKeysIn(object) { + return baseGetAllKeys(object, keysIn, getSymbolsIn); + } + + /** + * Gets metadata for `func`. + * + * @private + * @param {Function} func The function to query. + * @returns {*} Returns the metadata for `func`. + */ + var getData = !metaMap ? noop : function(func) { + return metaMap.get(func); + }; + + /** + * Gets the name of `func`. + * + * @private + * @param {Function} func The function to query. + * @returns {string} Returns the function name. + */ + function getFuncName(func) { + var result = (func.name + ''), + array = realNames[result], + length = hasOwnProperty.call(realNames, result) ? array.length : 0; + + while (length--) { + var data = array[length], + otherFunc = data.func; + if (otherFunc == null || otherFunc == func) { + return data.name; + } + } + return result; + } + + /** + * Gets the argument placeholder value for `func`. + * + * @private + * @param {Function} func The function to inspect. + * @returns {*} Returns the placeholder value. + */ + function getHolder(func) { + var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func; + return object.placeholder; + } + + /** + * Gets the appropriate "iteratee" function. If `_.iteratee` is customized, + * this function returns the custom method, otherwise it returns `baseIteratee`. + * If arguments are provided, the chosen function is invoked with them and + * its result is returned. + * + * @private + * @param {*} [value] The value to convert to an iteratee. + * @param {number} [arity] The arity of the created iteratee. + * @returns {Function} Returns the chosen function or its result. + */ + function getIteratee() { + var result = lodash.iteratee || iteratee; + result = result === iteratee ? baseIteratee : result; + return arguments.length ? result(arguments[0], arguments[1]) : result; + } + + /** + * Gets the data for `map`. + * + * @private + * @param {Object} map The map to query. + * @param {string} key The reference key. + * @returns {*} Returns the map data. + */ + function getMapData(map, key) { + var data = map.__data__; + return isKeyable(key) + ? data[typeof key == 'string' ? 'string' : 'hash'] + : data.map; + } + + /** + * Gets the property names, values, and compare flags of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the match data of `object`. + */ + function getMatchData(object) { + var result = keys(object), + length = result.length; + + while (length--) { + var key = result[length], + value = object[key]; + + result[length] = [key, value, isStrictComparable(value)]; + } + return result; + } + + /** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ + function getNative(object, key) { + var value = getValue(object, key); + return baseIsNative(value) ? value : undefined; + } + + /** + * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the raw `toStringTag`. + */ + function getRawTag(value) { + var isOwn = hasOwnProperty.call(value, symToStringTag), + tag = value[symToStringTag]; + + try { + value[symToStringTag] = undefined; + var unmasked = true; + } catch (e) {} + + var result = nativeObjectToString.call(value); + if (unmasked) { + if (isOwn) { + value[symToStringTag] = tag; + } else { + delete value[symToStringTag]; + } + } + return result; + } + + /** + * Creates an array of the own enumerable symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. + */ + var getSymbols = !nativeGetSymbols ? stubArray : function(object) { + if (object == null) { + return []; + } + object = Object(object); + return arrayFilter(nativeGetSymbols(object), function(symbol) { + return propertyIsEnumerable.call(object, symbol); + }); + }; + + /** + * Creates an array of the own and inherited enumerable symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. + */ + var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { + var result = []; + while (object) { + arrayPush(result, getSymbols(object)); + object = getPrototype(object); + } + return result; + }; + + /** + * Gets the `toStringTag` of `value`. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ + var getTag = baseGetTag; + + // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. + if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || + (Map && getTag(new Map) != mapTag) || + (Promise && getTag(Promise.resolve()) != promiseTag) || + (Set && getTag(new Set) != setTag) || + (WeakMap && getTag(new WeakMap) != weakMapTag)) { + getTag = function(value) { + var result = baseGetTag(value), + Ctor = result == objectTag ? value.constructor : undefined, + ctorString = Ctor ? toSource(Ctor) : ''; + + if (ctorString) { + switch (ctorString) { + case dataViewCtorString: return dataViewTag; + case mapCtorString: return mapTag; + case promiseCtorString: return promiseTag; + case setCtorString: return setTag; + case weakMapCtorString: return weakMapTag; + } + } + return result; + }; + } + + /** + * Gets the view, applying any `transforms` to the `start` and `end` positions. + * + * @private + * @param {number} start The start of the view. + * @param {number} end The end of the view. + * @param {Array} transforms The transformations to apply to the view. + * @returns {Object} Returns an object containing the `start` and `end` + * positions of the view. + */ + function getView(start, end, transforms) { + var index = -1, + length = transforms.length; + + while (++index < length) { + var data = transforms[index], + size = data.size; + + switch (data.type) { + case 'drop': start += size; break; + case 'dropRight': end -= size; break; + case 'take': end = nativeMin(end, start + size); break; + case 'takeRight': start = nativeMax(start, end - size); break; + } + } + return { 'start': start, 'end': end }; + } + + /** + * Extracts wrapper details from the `source` body comment. + * + * @private + * @param {string} source The source to inspect. + * @returns {Array} Returns the wrapper details. + */ + function getWrapDetails(source) { + var match = source.match(reWrapDetails); + return match ? match[1].split(reSplitDetails) : []; + } + + /** + * Checks if `path` exists on `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @param {Function} hasFunc The function to check properties. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + */ + function hasPath(object, path, hasFunc) { + path = castPath(path, object); + + var index = -1, + length = path.length, + result = false; + + while (++index < length) { + var key = toKey(path[index]); + if (!(result = object != null && hasFunc(object, key))) { + break; + } + object = object[key]; + } + if (result || ++index != length) { + return result; + } + length = object == null ? 0 : object.length; + return !!length && isLength(length) && isIndex(key, length) && + (isArray(object) || isArguments(object)); + } + + /** + * Initializes an array clone. + * + * @private + * @param {Array} array The array to clone. + * @returns {Array} Returns the initialized clone. + */ + function initCloneArray(array) { + var length = array.length, + result = new array.constructor(length); + + // Add properties assigned by `RegExp#exec`. + if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) { + result.index = array.index; + result.input = array.input; + } + return result; + } + + /** + * Initializes an object clone. + * + * @private + * @param {Object} object The object to clone. + * @returns {Object} Returns the initialized clone. + */ + function initCloneObject(object) { + return (typeof object.constructor == 'function' && !isPrototype(object)) + ? baseCreate(getPrototype(object)) + : {}; + } + + /** + * Initializes an object clone based on its `toStringTag`. + * + * **Note:** This function only supports cloning values with tags of + * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`. + * + * @private + * @param {Object} object The object to clone. + * @param {string} tag The `toStringTag` of the object to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the initialized clone. + */ + function initCloneByTag(object, tag, isDeep) { + var Ctor = object.constructor; + switch (tag) { + case arrayBufferTag: + return cloneArrayBuffer(object); + + case boolTag: + case dateTag: + return new Ctor(+object); + + case dataViewTag: + return cloneDataView(object, isDeep); + + case float32Tag: case float64Tag: + case int8Tag: case int16Tag: case int32Tag: + case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag: + return cloneTypedArray(object, isDeep); + + case mapTag: + return new Ctor; + + case numberTag: + case stringTag: + return new Ctor(object); + + case regexpTag: + return cloneRegExp(object); + + case setTag: + return new Ctor; + + case symbolTag: + return cloneSymbol(object); + } + } + + /** + * Inserts wrapper `details` in a comment at the top of the `source` body. + * + * @private + * @param {string} source The source to modify. + * @returns {Array} details The details to insert. + * @returns {string} Returns the modified source. + */ + function insertWrapDetails(source, details) { + var length = details.length; + if (!length) { + return source; + } + var lastIndex = length - 1; + details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex]; + details = details.join(length > 2 ? ', ' : ' '); + return source.replace(reWrapComment, '{\n/* [wrapped with ' + details + '] */\n'); + } + + /** + * Checks if `value` is a flattenable `arguments` object or array. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. + */ + function isFlattenable(value) { + return isArray(value) || isArguments(value) || + !!(spreadableSymbol && value && value[spreadableSymbol]); + } + + /** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ + function isIndex(value, length) { + var type = typeof value; + length = length == null ? MAX_SAFE_INTEGER : length; + + return !!length && + (type == 'number' || + (type != 'symbol' && reIsUint.test(value))) && + (value > -1 && value % 1 == 0 && value < length); + } + + /** + * Checks if the given arguments are from an iteratee call. + * + * @private + * @param {*} value The potential iteratee value argument. + * @param {*} index The potential iteratee index or key argument. + * @param {*} object The potential iteratee object argument. + * @returns {boolean} Returns `true` if the arguments are from an iteratee call, + * else `false`. + */ + function isIterateeCall(value, index, object) { + if (!isObject(object)) { + return false; + } + var type = typeof index; + if (type == 'number' + ? (isArrayLike(object) && isIndex(index, object.length)) + : (type == 'string' && index in object) + ) { + return eq(object[index], value); + } + return false; + } + + /** + * Checks if `value` is a property name and not a property path. + * + * @private + * @param {*} value The value to check. + * @param {Object} [object] The object to query keys on. + * @returns {boolean} Returns `true` if `value` is a property name, else `false`. + */ + function isKey(value, object) { + if (isArray(value)) { + return false; + } + var type = typeof value; + if (type == 'number' || type == 'symbol' || type == 'boolean' || + value == null || isSymbol(value)) { + return true; + } + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || + (object != null && value in Object(object)); + } + + /** + * Checks if `value` is suitable for use as unique object key. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is suitable, else `false`. + */ + function isKeyable(value) { + var type = typeof value; + return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') + ? (value !== '__proto__') + : (value === null); + } + + /** + * Checks if `func` has a lazy counterpart. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` has a lazy counterpart, + * else `false`. + */ + function isLaziable(func) { + var funcName = getFuncName(func), + other = lodash[funcName]; + + if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) { + return false; + } + if (func === other) { + return true; + } + var data = getData(other); + return !!data && func === data[0]; + } + + /** + * Checks if `func` has its source masked. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` is masked, else `false`. + */ + function isMasked(func) { + return !!maskSrcKey && (maskSrcKey in func); + } + + /** + * Checks if `func` is capable of being masked. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `func` is maskable, else `false`. + */ + var isMaskable = coreJsData ? isFunction : stubFalse; + + /** + * Checks if `value` is likely a prototype object. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. + */ + function isPrototype(value) { + var Ctor = value && value.constructor, + proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; + + return value === proto; + } + + /** + * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` if suitable for strict + * equality comparisons, else `false`. + */ + function isStrictComparable(value) { + return value === value && !isObject(value); + } + + /** + * A specialized version of `matchesProperty` for source values suitable + * for strict equality comparisons, i.e. `===`. + * + * @private + * @param {string} key The key of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. + */ + function matchesStrictComparable(key, srcValue) { + return function(object) { + if (object == null) { + return false; + } + return object[key] === srcValue && + (srcValue !== undefined || (key in Object(object))); + }; + } + + /** + * A specialized version of `_.memoize` which clears the memoized function's + * cache when it exceeds `MAX_MEMOIZE_SIZE`. + * + * @private + * @param {Function} func The function to have its output memoized. + * @returns {Function} Returns the new memoized function. + */ + function memoizeCapped(func) { + var result = memoize(func, function(key) { + if (cache.size === MAX_MEMOIZE_SIZE) { + cache.clear(); + } + return key; + }); + + var cache = result.cache; + return result; + } + + /** + * Merges the function metadata of `source` into `data`. + * + * Merging metadata reduces the number of wrappers used to invoke a function. + * This is possible because methods like `_.bind`, `_.curry`, and `_.partial` + * may be applied regardless of execution order. Methods like `_.ary` and + * `_.rearg` modify function arguments, making the order in which they are + * executed important, preventing the merging of metadata. However, we make + * an exception for a safe combined case where curried functions have `_.ary` + * and or `_.rearg` applied. + * + * @private + * @param {Array} data The destination metadata. + * @param {Array} source The source metadata. + * @returns {Array} Returns `data`. + */ + function mergeData(data, source) { + var bitmask = data[1], + srcBitmask = source[1], + newBitmask = bitmask | srcBitmask, + isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG); + + var isCombo = + ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) || + ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) || + ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG)); + + // Exit early if metadata can't be merged. + if (!(isCommon || isCombo)) { + return data; + } + // Use source `thisArg` if available. + if (srcBitmask & WRAP_BIND_FLAG) { + data[2] = source[2]; + // Set when currying a bound function. + newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG; + } + // Compose partial arguments. + var value = source[3]; + if (value) { + var partials = data[3]; + data[3] = partials ? composeArgs(partials, value, source[4]) : value; + data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4]; + } + // Compose partial right arguments. + value = source[5]; + if (value) { + partials = data[5]; + data[5] = partials ? composeArgsRight(partials, value, source[6]) : value; + data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6]; + } + // Use source `argPos` if available. + value = source[7]; + if (value) { + data[7] = value; + } + // Use source `ary` if it's smaller. + if (srcBitmask & WRAP_ARY_FLAG) { + data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]); + } + // Use source `arity` if one is not provided. + if (data[9] == null) { + data[9] = source[9]; + } + // Use source `func` and merge bitmasks. + data[0] = source[0]; + data[1] = newBitmask; + + return data; + } + + /** + * This function is like + * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * except that it includes inherited enumerable properties. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ + function nativeKeysIn(object) { + var result = []; + if (object != null) { + for (var key in Object(object)) { + result.push(key); + } + } + return result; + } + + /** + * Converts `value` to a string using `Object.prototype.toString`. + * + * @private + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + */ + function objectToString(value) { + return nativeObjectToString.call(value); + } + + /** + * A specialized version of `baseRest` which transforms the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @param {Function} transform The rest array transform. + * @returns {Function} Returns the new function. + */ + function overRest(func, start, transform) { + start = nativeMax(start === undefined ? (func.length - 1) : start, 0); + return function() { + var args = arguments, + index = -1, + length = nativeMax(args.length - start, 0), + array = Array(length); + + while (++index < length) { + array[index] = args[start + index]; + } + index = -1; + var otherArgs = Array(start + 1); + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = transform(array); + return apply(func, this, otherArgs); + }; + } + + /** + * Gets the parent value at `path` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Array} path The path to get the parent value of. + * @returns {*} Returns the parent value. + */ + function parent(object, path) { + return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1)); + } + + /** + * Reorder `array` according to the specified indexes where the element at + * the first index is assigned as the first element, the element at + * the second index is assigned as the second element, and so on. + * + * @private + * @param {Array} array The array to reorder. + * @param {Array} indexes The arranged array indexes. + * @returns {Array} Returns `array`. + */ + function reorder(array, indexes) { + var arrLength = array.length, + length = nativeMin(indexes.length, arrLength), + oldArray = copyArray(array); + + while (length--) { + var index = indexes[length]; + array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined; + } + return array; + } + + /** + * Gets the value at `key`, unless `key` is "__proto__" or "constructor". + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ + function safeGet(object, key) { + if (key === 'constructor' && typeof object[key] === 'function') { + return; + } + + if (key == '__proto__') { + return; + } + + return object[key]; + } + + /** + * Sets metadata for `func`. + * + * **Note:** If this function becomes hot, i.e. is invoked a lot in a short + * period of time, it will trip its breaker and transition to an identity + * function to avoid garbage collection pauses in V8. See + * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070) + * for more details. + * + * @private + * @param {Function} func The function to associate metadata with. + * @param {*} data The metadata. + * @returns {Function} Returns `func`. + */ + var setData = shortOut(baseSetData); + + /** + * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout). + * + * @private + * @param {Function} func The function to delay. + * @param {number} wait The number of milliseconds to delay invocation. + * @returns {number|Object} Returns the timer id or timeout object. + */ + var setTimeout = ctxSetTimeout || function(func, wait) { + return root.setTimeout(func, wait); + }; + + /** + * Sets the `toString` method of `func` to return `string`. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ + var setToString = shortOut(baseSetToString); + + /** + * Sets the `toString` method of `wrapper` to mimic the source of `reference` + * with wrapper details in a comment at the top of the source body. + * + * @private + * @param {Function} wrapper The function to modify. + * @param {Function} reference The reference function. + * @param {number} bitmask The bitmask flags. See `createWrap` for more details. + * @returns {Function} Returns `wrapper`. + */ + function setWrapToString(wrapper, reference, bitmask) { + var source = (reference + ''); + return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask))); + } + + /** + * Creates a function that'll short out and invoke `identity` instead + * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` + * milliseconds. + * + * @private + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new shortable function. + */ + function shortOut(func) { + var count = 0, + lastCalled = 0; + + return function() { + var stamp = nativeNow(), + remaining = HOT_SPAN - (stamp - lastCalled); + + lastCalled = stamp; + if (remaining > 0) { + if (++count >= HOT_COUNT) { + return arguments[0]; + } + } else { + count = 0; + } + return func.apply(undefined, arguments); + }; + } + + /** + * A specialized version of `_.shuffle` which mutates and sets the size of `array`. + * + * @private + * @param {Array} array The array to shuffle. + * @param {number} [size=array.length] The size of `array`. + * @returns {Array} Returns `array`. + */ + function shuffleSelf(array, size) { + var index = -1, + length = array.length, + lastIndex = length - 1; + + size = size === undefined ? length : size; + while (++index < size) { + var rand = baseRandom(index, lastIndex), + value = array[rand]; + + array[rand] = array[index]; + array[index] = value; + } + array.length = size; + return array; + } + + /** + * Converts `string` to a property path array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the property path array. + */ + var stringToPath = memoizeCapped(function(string) { + var result = []; + if (string.charCodeAt(0) === 46 /* . */) { + result.push(''); + } + string.replace(rePropName, function(match, number, quote, subString) { + result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match)); + }); + return result; + }); + + /** + * Converts `value` to a string key if it's not a string or symbol. + * + * @private + * @param {*} value The value to inspect. + * @returns {string|symbol} Returns the key. + */ + function toKey(value) { + if (typeof value == 'string' || isSymbol(value)) { + return value; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; + } + + /** + * Converts `func` to its source code. + * + * @private + * @param {Function} func The function to convert. + * @returns {string} Returns the source code. + */ + function toSource(func) { + if (func != null) { + try { + return funcToString.call(func); + } catch (e) {} + try { + return (func + ''); + } catch (e) {} + } + return ''; + } + + /** + * Updates wrapper `details` based on `bitmask` flags. + * + * @private + * @returns {Array} details The details to modify. + * @param {number} bitmask The bitmask flags. See `createWrap` for more details. + * @returns {Array} Returns `details`. + */ + function updateWrapDetails(details, bitmask) { + arrayEach(wrapFlags, function(pair) { + var value = '_.' + pair[0]; + if ((bitmask & pair[1]) && !arrayIncludes(details, value)) { + details.push(value); + } + }); + return details.sort(); + } + + /** + * Creates a clone of `wrapper`. + * + * @private + * @param {Object} wrapper The wrapper to clone. + * @returns {Object} Returns the cloned wrapper. + */ + function wrapperClone(wrapper) { + if (wrapper instanceof LazyWrapper) { + return wrapper.clone(); + } + var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__); + result.__actions__ = copyArray(wrapper.__actions__); + result.__index__ = wrapper.__index__; + result.__values__ = wrapper.__values__; + return result; + } + + /*------------------------------------------------------------------------*/ + + /** + * Creates an array of elements split into groups the length of `size`. + * If `array` can't be split evenly, the final chunk will be the remaining + * elements. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to process. + * @param {number} [size=1] The length of each chunk + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Array} Returns the new array of chunks. + * @example + * + * _.chunk(['a', 'b', 'c', 'd'], 2); + * // => [['a', 'b'], ['c', 'd']] + * + * _.chunk(['a', 'b', 'c', 'd'], 3); + * // => [['a', 'b', 'c'], ['d']] + */ + function chunk(array, size, guard) { + if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) { + size = 1; + } else { + size = nativeMax(toInteger(size), 0); + } + var length = array == null ? 0 : array.length; + if (!length || size < 1) { + return []; + } + var index = 0, + resIndex = 0, + result = Array(nativeCeil(length / size)); + + while (index < length) { + result[resIndex++] = baseSlice(array, index, (index += size)); + } + return result; + } + + /** + * Creates an array with all falsey values removed. The values `false`, `null`, + * `0`, `""`, `undefined`, and `NaN` are falsey. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to compact. + * @returns {Array} Returns the new array of filtered values. + * @example + * + * _.compact([0, 1, false, 2, '', 3]); + * // => [1, 2, 3] + */ + function compact(array) { + var index = -1, + length = array == null ? 0 : array.length, + resIndex = 0, + result = []; + + while (++index < length) { + var value = array[index]; + if (value) { + result[resIndex++] = value; + } + } + return result; + } + + /** + * Creates a new array concatenating `array` with any additional arrays + * and/or values. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to concatenate. + * @param {...*} [values] The values to concatenate. + * @returns {Array} Returns the new concatenated array. + * @example + * + * var array = [1]; + * var other = _.concat(array, 2, [3], [[4]]); + * + * console.log(other); + * // => [1, 2, 3, [4]] + * + * console.log(array); + * // => [1] + */ + function concat() { + var length = arguments.length; + if (!length) { + return []; + } + var args = Array(length - 1), + array = arguments[0], + index = length; + + while (index--) { + args[index - 1] = arguments[index]; + } + return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1)); + } + + /** + * Creates an array of `array` values not included in the other given arrays + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. The order and references of result values are + * determined by the first array. + * + * **Note:** Unlike `_.pullAll`, this method returns a new array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {...Array} [values] The values to exclude. + * @returns {Array} Returns the new array of filtered values. + * @see _.without, _.xor + * @example + * + * _.difference([2, 1], [2, 3]); + * // => [1] + */ + var difference = baseRest(function(array, values) { + return isArrayLikeObject(array) + ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true)) + : []; + }); + + /** + * This method is like `_.difference` except that it accepts `iteratee` which + * is invoked for each element of `array` and `values` to generate the criterion + * by which they're compared. The order and references of result values are + * determined by the first array. The iteratee is invoked with one argument: + * (value). + * + * **Note:** Unlike `_.pullAllBy`, this method returns a new array. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {...Array} [values] The values to exclude. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Array} Returns the new array of filtered values. + * @example + * + * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor); + * // => [1.2] + * + * // The `_.property` iteratee shorthand. + * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x'); + * // => [{ 'x': 2 }] + */ + var differenceBy = baseRest(function(array, values) { + var iteratee = last(values); + if (isArrayLikeObject(iteratee)) { + iteratee = undefined; + } + return isArrayLikeObject(array) + ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2)) + : []; + }); + + /** + * This method is like `_.difference` except that it accepts `comparator` + * which is invoked to compare elements of `array` to `values`. The order and + * references of result values are determined by the first array. The comparator + * is invoked with two arguments: (arrVal, othVal). + * + * **Note:** Unlike `_.pullAllWith`, this method returns a new array. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {...Array} [values] The values to exclude. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of filtered values. + * @example + * + * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; + * + * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual); + * // => [{ 'x': 2, 'y': 1 }] + */ + var differenceWith = baseRest(function(array, values) { + var comparator = last(values); + if (isArrayLikeObject(comparator)) { + comparator = undefined; + } + return isArrayLikeObject(array) + ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator) + : []; + }); + + /** + * Creates a slice of `array` with `n` elements dropped from the beginning. + * + * @static + * @memberOf _ + * @since 0.5.0 + * @category Array + * @param {Array} array The array to query. + * @param {number} [n=1] The number of elements to drop. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Array} Returns the slice of `array`. + * @example + * + * _.drop([1, 2, 3]); + * // => [2, 3] + * + * _.drop([1, 2, 3], 2); + * // => [3] + * + * _.drop([1, 2, 3], 5); + * // => [] + * + * _.drop([1, 2, 3], 0); + * // => [1, 2, 3] + */ + function drop(array, n, guard) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + n = (guard || n === undefined) ? 1 : toInteger(n); + return baseSlice(array, n < 0 ? 0 : n, length); + } + + /** + * Creates a slice of `array` with `n` elements dropped from the end. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to query. + * @param {number} [n=1] The number of elements to drop. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Array} Returns the slice of `array`. + * @example + * + * _.dropRight([1, 2, 3]); + * // => [1, 2] + * + * _.dropRight([1, 2, 3], 2); + * // => [1] + * + * _.dropRight([1, 2, 3], 5); + * // => [] + * + * _.dropRight([1, 2, 3], 0); + * // => [1, 2, 3] + */ + function dropRight(array, n, guard) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + n = (guard || n === undefined) ? 1 : toInteger(n); + n = length - n; + return baseSlice(array, 0, n < 0 ? 0 : n); + } + + /** + * Creates a slice of `array` excluding elements dropped from the end. + * Elements are dropped until `predicate` returns falsey. The predicate is + * invoked with three arguments: (value, index, array). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to query. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the slice of `array`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': true }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': false } + * ]; + * + * _.dropRightWhile(users, function(o) { return !o.active; }); + * // => objects for ['barney'] + * + * // The `_.matches` iteratee shorthand. + * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false }); + * // => objects for ['barney', 'fred'] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.dropRightWhile(users, ['active', false]); + * // => objects for ['barney'] + * + * // The `_.property` iteratee shorthand. + * _.dropRightWhile(users, 'active'); + * // => objects for ['barney', 'fred', 'pebbles'] + */ + function dropRightWhile(array, predicate) { + return (array && array.length) + ? baseWhile(array, getIteratee(predicate, 3), true, true) + : []; + } + + /** + * Creates a slice of `array` excluding elements dropped from the beginning. + * Elements are dropped until `predicate` returns falsey. The predicate is + * invoked with three arguments: (value, index, array). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to query. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the slice of `array`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': false }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': true } + * ]; + * + * _.dropWhile(users, function(o) { return !o.active; }); + * // => objects for ['pebbles'] + * + * // The `_.matches` iteratee shorthand. + * _.dropWhile(users, { 'user': 'barney', 'active': false }); + * // => objects for ['fred', 'pebbles'] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.dropWhile(users, ['active', false]); + * // => objects for ['pebbles'] + * + * // The `_.property` iteratee shorthand. + * _.dropWhile(users, 'active'); + * // => objects for ['barney', 'fred', 'pebbles'] + */ + function dropWhile(array, predicate) { + return (array && array.length) + ? baseWhile(array, getIteratee(predicate, 3), true) + : []; + } + + /** + * Fills elements of `array` with `value` from `start` up to, but not + * including, `end`. + * + * **Note:** This method mutates `array`. + * + * @static + * @memberOf _ + * @since 3.2.0 + * @category Array + * @param {Array} array The array to fill. + * @param {*} value The value to fill `array` with. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns `array`. + * @example + * + * var array = [1, 2, 3]; + * + * _.fill(array, 'a'); + * console.log(array); + * // => ['a', 'a', 'a'] + * + * _.fill(Array(3), 2); + * // => [2, 2, 2] + * + * _.fill([4, 6, 8, 10], '*', 1, 3); + * // => [4, '*', '*', 10] + */ + function fill(array, value, start, end) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + if (start && typeof start != 'number' && isIterateeCall(array, value, start)) { + start = 0; + end = length; + } + return baseFill(array, value, start, end); + } + + /** + * This method is like `_.find` except that it returns the index of the first + * element `predicate` returns truthy for instead of the element itself. + * + * @static + * @memberOf _ + * @since 1.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=0] The index to search from. + * @returns {number} Returns the index of the found element, else `-1`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': false }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': true } + * ]; + * + * _.findIndex(users, function(o) { return o.user == 'barney'; }); + * // => 0 + * + * // The `_.matches` iteratee shorthand. + * _.findIndex(users, { 'user': 'fred', 'active': false }); + * // => 1 + * + * // The `_.matchesProperty` iteratee shorthand. + * _.findIndex(users, ['active', false]); + * // => 0 + * + * // The `_.property` iteratee shorthand. + * _.findIndex(users, 'active'); + * // => 2 + */ + function findIndex(array, predicate, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = fromIndex == null ? 0 : toInteger(fromIndex); + if (index < 0) { + index = nativeMax(length + index, 0); + } + return baseFindIndex(array, getIteratee(predicate, 3), index); + } + + /** + * This method is like `_.findIndex` except that it iterates over elements + * of `collection` from right to left. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=array.length-1] The index to search from. + * @returns {number} Returns the index of the found element, else `-1`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': true }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': false } + * ]; + * + * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; }); + * // => 2 + * + * // The `_.matches` iteratee shorthand. + * _.findLastIndex(users, { 'user': 'barney', 'active': true }); + * // => 0 + * + * // The `_.matchesProperty` iteratee shorthand. + * _.findLastIndex(users, ['active', false]); + * // => 2 + * + * // The `_.property` iteratee shorthand. + * _.findLastIndex(users, 'active'); + * // => 0 + */ + function findLastIndex(array, predicate, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = length - 1; + if (fromIndex !== undefined) { + index = toInteger(fromIndex); + index = fromIndex < 0 + ? nativeMax(length + index, 0) + : nativeMin(index, length - 1); + } + return baseFindIndex(array, getIteratee(predicate, 3), index, true); + } + + /** + * Flattens `array` a single level deep. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to flatten. + * @returns {Array} Returns the new flattened array. + * @example + * + * _.flatten([1, [2, [3, [4]], 5]]); + * // => [1, 2, [3, [4]], 5] + */ + function flatten(array) { + var length = array == null ? 0 : array.length; + return length ? baseFlatten(array, 1) : []; + } + + /** + * Recursively flattens `array`. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to flatten. + * @returns {Array} Returns the new flattened array. + * @example + * + * _.flattenDeep([1, [2, [3, [4]], 5]]); + * // => [1, 2, 3, 4, 5] + */ + function flattenDeep(array) { + var length = array == null ? 0 : array.length; + return length ? baseFlatten(array, INFINITY) : []; + } + + /** + * Recursively flatten `array` up to `depth` times. + * + * @static + * @memberOf _ + * @since 4.4.0 + * @category Array + * @param {Array} array The array to flatten. + * @param {number} [depth=1] The maximum recursion depth. + * @returns {Array} Returns the new flattened array. + * @example + * + * var array = [1, [2, [3, [4]], 5]]; + * + * _.flattenDepth(array, 1); + * // => [1, 2, [3, [4]], 5] + * + * _.flattenDepth(array, 2); + * // => [1, 2, 3, [4], 5] + */ + function flattenDepth(array, depth) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + depth = depth === undefined ? 1 : toInteger(depth); + return baseFlatten(array, depth); + } + + /** + * The inverse of `_.toPairs`; this method returns an object composed + * from key-value `pairs`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} pairs The key-value pairs. + * @returns {Object} Returns the new object. + * @example + * + * _.fromPairs([['a', 1], ['b', 2]]); + * // => { 'a': 1, 'b': 2 } + */ + function fromPairs(pairs) { + var index = -1, + length = pairs == null ? 0 : pairs.length, + result = {}; + + while (++index < length) { + var pair = pairs[index]; + result[pair[0]] = pair[1]; + } + return result; + } + + /** + * Gets the first element of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @alias first + * @category Array + * @param {Array} array The array to query. + * @returns {*} Returns the first element of `array`. + * @example + * + * _.head([1, 2, 3]); + * // => 1 + * + * _.head([]); + * // => undefined + */ + function head(array) { + return (array && array.length) ? array[0] : undefined; + } + + /** + * Gets the index at which the first occurrence of `value` is found in `array` + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. If `fromIndex` is negative, it's used as the + * offset from the end of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} [fromIndex=0] The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + * @example + * + * _.indexOf([1, 2, 1, 2], 2); + * // => 1 + * + * // Search from the `fromIndex`. + * _.indexOf([1, 2, 1, 2], 2, 2); + * // => 3 + */ + function indexOf(array, value, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = fromIndex == null ? 0 : toInteger(fromIndex); + if (index < 0) { + index = nativeMax(length + index, 0); + } + return baseIndexOf(array, value, index); + } + + /** + * Gets all but the last element of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to query. + * @returns {Array} Returns the slice of `array`. + * @example + * + * _.initial([1, 2, 3]); + * // => [1, 2] + */ + function initial(array) { + var length = array == null ? 0 : array.length; + return length ? baseSlice(array, 0, -1) : []; + } + + /** + * Creates an array of unique values that are included in all given arrays + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. The order and references of result values are + * determined by the first array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @returns {Array} Returns the new array of intersecting values. + * @example + * + * _.intersection([2, 1], [2, 3]); + * // => [2] + */ + var intersection = baseRest(function(arrays) { + var mapped = arrayMap(arrays, castArrayLikeObject); + return (mapped.length && mapped[0] === arrays[0]) + ? baseIntersection(mapped) + : []; + }); + + /** + * This method is like `_.intersection` except that it accepts `iteratee` + * which is invoked for each element of each `arrays` to generate the criterion + * by which they're compared. The order and references of result values are + * determined by the first array. The iteratee is invoked with one argument: + * (value). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Array} Returns the new array of intersecting values. + * @example + * + * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor); + * // => [2.1] + * + * // The `_.property` iteratee shorthand. + * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); + * // => [{ 'x': 1 }] + */ + var intersectionBy = baseRest(function(arrays) { + var iteratee = last(arrays), + mapped = arrayMap(arrays, castArrayLikeObject); + + if (iteratee === last(mapped)) { + iteratee = undefined; + } else { + mapped.pop(); + } + return (mapped.length && mapped[0] === arrays[0]) + ? baseIntersection(mapped, getIteratee(iteratee, 2)) + : []; + }); + + /** + * This method is like `_.intersection` except that it accepts `comparator` + * which is invoked to compare elements of `arrays`. The order and references + * of result values are determined by the first array. The comparator is + * invoked with two arguments: (arrVal, othVal). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of intersecting values. + * @example + * + * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; + * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; + * + * _.intersectionWith(objects, others, _.isEqual); + * // => [{ 'x': 1, 'y': 2 }] + */ + var intersectionWith = baseRest(function(arrays) { + var comparator = last(arrays), + mapped = arrayMap(arrays, castArrayLikeObject); + + comparator = typeof comparator == 'function' ? comparator : undefined; + if (comparator) { + mapped.pop(); + } + return (mapped.length && mapped[0] === arrays[0]) + ? baseIntersection(mapped, undefined, comparator) + : []; + }); + + /** + * Converts all elements in `array` into a string separated by `separator`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to convert. + * @param {string} [separator=','] The element separator. + * @returns {string} Returns the joined string. + * @example + * + * _.join(['a', 'b', 'c'], '~'); + * // => 'a~b~c' + */ + function join(array, separator) { + return array == null ? '' : nativeJoin.call(array, separator); + } + + /** + * Gets the last element of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to query. + * @returns {*} Returns the last element of `array`. + * @example + * + * _.last([1, 2, 3]); + * // => 3 + */ + function last(array) { + var length = array == null ? 0 : array.length; + return length ? array[length - 1] : undefined; + } + + /** + * This method is like `_.indexOf` except that it iterates over elements of + * `array` from right to left. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} [fromIndex=array.length-1] The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + * @example + * + * _.lastIndexOf([1, 2, 1, 2], 2); + * // => 3 + * + * // Search from the `fromIndex`. + * _.lastIndexOf([1, 2, 1, 2], 2, 2); + * // => 1 + */ + function lastIndexOf(array, value, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = length; + if (fromIndex !== undefined) { + index = toInteger(fromIndex); + index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); + } + return value === value + ? strictLastIndexOf(array, value, index) + : baseFindIndex(array, baseIsNaN, index, true); + } + + /** + * Gets the element at index `n` of `array`. If `n` is negative, the nth + * element from the end is returned. + * + * @static + * @memberOf _ + * @since 4.11.0 + * @category Array + * @param {Array} array The array to query. + * @param {number} [n=0] The index of the element to return. + * @returns {*} Returns the nth element of `array`. + * @example + * + * var array = ['a', 'b', 'c', 'd']; + * + * _.nth(array, 1); + * // => 'b' + * + * _.nth(array, -2); + * // => 'c'; + */ + function nth(array, n) { + return (array && array.length) ? baseNth(array, toInteger(n)) : undefined; + } + + /** + * Removes all given values from `array` using + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove` + * to remove elements from an array by predicate. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Array + * @param {Array} array The array to modify. + * @param {...*} [values] The values to remove. + * @returns {Array} Returns `array`. + * @example + * + * var array = ['a', 'b', 'c', 'a', 'b', 'c']; + * + * _.pull(array, 'a', 'c'); + * console.log(array); + * // => ['b', 'b'] + */ + var pull = baseRest(pullAll); + + /** + * This method is like `_.pull` except that it accepts an array of values to remove. + * + * **Note:** Unlike `_.difference`, this method mutates `array`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to modify. + * @param {Array} values The values to remove. + * @returns {Array} Returns `array`. + * @example + * + * var array = ['a', 'b', 'c', 'a', 'b', 'c']; + * + * _.pullAll(array, ['a', 'c']); + * console.log(array); + * // => ['b', 'b'] + */ + function pullAll(array, values) { + return (array && array.length && values && values.length) + ? basePullAll(array, values) + : array; + } + + /** + * This method is like `_.pullAll` except that it accepts `iteratee` which is + * invoked for each element of `array` and `values` to generate the criterion + * by which they're compared. The iteratee is invoked with one argument: (value). + * + * **Note:** Unlike `_.differenceBy`, this method mutates `array`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to modify. + * @param {Array} values The values to remove. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Array} Returns `array`. + * @example + * + * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }]; + * + * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x'); + * console.log(array); + * // => [{ 'x': 2 }] + */ + function pullAllBy(array, values, iteratee) { + return (array && array.length && values && values.length) + ? basePullAll(array, values, getIteratee(iteratee, 2)) + : array; + } + + /** + * This method is like `_.pullAll` except that it accepts `comparator` which + * is invoked to compare elements of `array` to `values`. The comparator is + * invoked with two arguments: (arrVal, othVal). + * + * **Note:** Unlike `_.differenceWith`, this method mutates `array`. + * + * @static + * @memberOf _ + * @since 4.6.0 + * @category Array + * @param {Array} array The array to modify. + * @param {Array} values The values to remove. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns `array`. + * @example + * + * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }]; + * + * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual); + * console.log(array); + * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }] + */ + function pullAllWith(array, values, comparator) { + return (array && array.length && values && values.length) + ? basePullAll(array, values, undefined, comparator) + : array; + } + + /** + * Removes elements from `array` corresponding to `indexes` and returns an + * array of removed elements. + * + * **Note:** Unlike `_.at`, this method mutates `array`. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to modify. + * @param {...(number|number[])} [indexes] The indexes of elements to remove. + * @returns {Array} Returns the new array of removed elements. + * @example + * + * var array = ['a', 'b', 'c', 'd']; + * var pulled = _.pullAt(array, [1, 3]); + * + * console.log(array); + * // => ['a', 'c'] + * + * console.log(pulled); + * // => ['b', 'd'] + */ + var pullAt = flatRest(function(array, indexes) { + var length = array == null ? 0 : array.length, + result = baseAt(array, indexes); + + basePullAt(array, arrayMap(indexes, function(index) { + return isIndex(index, length) ? +index : index; + }).sort(compareAscending)); + + return result; + }); + + /** + * Removes all elements from `array` that `predicate` returns truthy for + * and returns an array of the removed elements. The predicate is invoked + * with three arguments: (value, index, array). + * + * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull` + * to pull elements from an array by value. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Array + * @param {Array} array The array to modify. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new array of removed elements. + * @example + * + * var array = [1, 2, 3, 4]; + * var evens = _.remove(array, function(n) { + * return n % 2 == 0; + * }); + * + * console.log(array); + * // => [1, 3] + * + * console.log(evens); + * // => [2, 4] + */ + function remove(array, predicate) { + var result = []; + if (!(array && array.length)) { + return result; + } + var index = -1, + indexes = [], + length = array.length; + + predicate = getIteratee(predicate, 3); + while (++index < length) { + var value = array[index]; + if (predicate(value, index, array)) { + result.push(value); + indexes.push(index); + } + } + basePullAt(array, indexes); + return result; + } + + /** + * Reverses `array` so that the first element becomes the last, the second + * element becomes the second to last, and so on. + * + * **Note:** This method mutates `array` and is based on + * [`Array#reverse`](https://mdn.io/Array/reverse). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to modify. + * @returns {Array} Returns `array`. + * @example + * + * var array = [1, 2, 3]; + * + * _.reverse(array); + * // => [3, 2, 1] + * + * console.log(array); + * // => [3, 2, 1] + */ + function reverse(array) { + return array == null ? array : nativeReverse.call(array); + } + + /** + * Creates a slice of `array` from `start` up to, but not including, `end`. + * + * **Note:** This method is used instead of + * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are + * returned. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to slice. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns the slice of `array`. + */ + function slice(array, start, end) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + if (end && typeof end != 'number' && isIterateeCall(array, start, end)) { + start = 0; + end = length; + } + else { + start = start == null ? 0 : toInteger(start); + end = end === undefined ? length : toInteger(end); + } + return baseSlice(array, start, end); + } + + /** + * Uses a binary search to determine the lowest index at which `value` + * should be inserted into `array` in order to maintain its sort order. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The sorted array to inspect. + * @param {*} value The value to evaluate. + * @returns {number} Returns the index at which `value` should be inserted + * into `array`. + * @example + * + * _.sortedIndex([30, 50], 40); + * // => 1 + */ + function sortedIndex(array, value) { + return baseSortedIndex(array, value); + } + + /** + * This method is like `_.sortedIndex` except that it accepts `iteratee` + * which is invoked for `value` and each element of `array` to compute their + * sort ranking. The iteratee is invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The sorted array to inspect. + * @param {*} value The value to evaluate. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {number} Returns the index at which `value` should be inserted + * into `array`. + * @example + * + * var objects = [{ 'x': 4 }, { 'x': 5 }]; + * + * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; }); + * // => 0 + * + * // The `_.property` iteratee shorthand. + * _.sortedIndexBy(objects, { 'x': 4 }, 'x'); + * // => 0 + */ + function sortedIndexBy(array, value, iteratee) { + return baseSortedIndexBy(array, value, getIteratee(iteratee, 2)); + } + + /** + * This method is like `_.indexOf` except that it performs a binary + * search on a sorted `array`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + * @example + * + * _.sortedIndexOf([4, 5, 5, 5, 6], 5); + * // => 1 + */ + function sortedIndexOf(array, value) { + var length = array == null ? 0 : array.length; + if (length) { + var index = baseSortedIndex(array, value); + if (index < length && eq(array[index], value)) { + return index; + } + } + return -1; + } + + /** + * This method is like `_.sortedIndex` except that it returns the highest + * index at which `value` should be inserted into `array` in order to + * maintain its sort order. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The sorted array to inspect. + * @param {*} value The value to evaluate. + * @returns {number} Returns the index at which `value` should be inserted + * into `array`. + * @example + * + * _.sortedLastIndex([4, 5, 5, 5, 6], 5); + * // => 4 + */ + function sortedLastIndex(array, value) { + return baseSortedIndex(array, value, true); + } + + /** + * This method is like `_.sortedLastIndex` except that it accepts `iteratee` + * which is invoked for `value` and each element of `array` to compute their + * sort ranking. The iteratee is invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The sorted array to inspect. + * @param {*} value The value to evaluate. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {number} Returns the index at which `value` should be inserted + * into `array`. + * @example + * + * var objects = [{ 'x': 4 }, { 'x': 5 }]; + * + * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; }); + * // => 1 + * + * // The `_.property` iteratee shorthand. + * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x'); + * // => 1 + */ + function sortedLastIndexBy(array, value, iteratee) { + return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true); + } + + /** + * This method is like `_.lastIndexOf` except that it performs a binary + * search on a sorted `array`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + * @example + * + * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5); + * // => 3 + */ + function sortedLastIndexOf(array, value) { + var length = array == null ? 0 : array.length; + if (length) { + var index = baseSortedIndex(array, value, true) - 1; + if (eq(array[index], value)) { + return index; + } + } + return -1; + } + + /** + * This method is like `_.uniq` except that it's designed and optimized + * for sorted arrays. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @returns {Array} Returns the new duplicate free array. + * @example + * + * _.sortedUniq([1, 1, 2]); + * // => [1, 2] + */ + function sortedUniq(array) { + return (array && array.length) + ? baseSortedUniq(array) + : []; + } + + /** + * This method is like `_.uniqBy` except that it's designed and optimized + * for sorted arrays. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [iteratee] The iteratee invoked per element. + * @returns {Array} Returns the new duplicate free array. + * @example + * + * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor); + * // => [1.1, 2.3] + */ + function sortedUniqBy(array, iteratee) { + return (array && array.length) + ? baseSortedUniq(array, getIteratee(iteratee, 2)) + : []; + } + + /** + * Gets all but the first element of `array`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to query. + * @returns {Array} Returns the slice of `array`. + * @example + * + * _.tail([1, 2, 3]); + * // => [2, 3] + */ + function tail(array) { + var length = array == null ? 0 : array.length; + return length ? baseSlice(array, 1, length) : []; + } + + /** + * Creates a slice of `array` with `n` elements taken from the beginning. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to query. + * @param {number} [n=1] The number of elements to take. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Array} Returns the slice of `array`. + * @example + * + * _.take([1, 2, 3]); + * // => [1] + * + * _.take([1, 2, 3], 2); + * // => [1, 2] + * + * _.take([1, 2, 3], 5); + * // => [1, 2, 3] + * + * _.take([1, 2, 3], 0); + * // => [] + */ + function take(array, n, guard) { + if (!(array && array.length)) { + return []; + } + n = (guard || n === undefined) ? 1 : toInteger(n); + return baseSlice(array, 0, n < 0 ? 0 : n); + } + + /** + * Creates a slice of `array` with `n` elements taken from the end. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to query. + * @param {number} [n=1] The number of elements to take. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Array} Returns the slice of `array`. + * @example + * + * _.takeRight([1, 2, 3]); + * // => [3] + * + * _.takeRight([1, 2, 3], 2); + * // => [2, 3] + * + * _.takeRight([1, 2, 3], 5); + * // => [1, 2, 3] + * + * _.takeRight([1, 2, 3], 0); + * // => [] + */ + function takeRight(array, n, guard) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + n = (guard || n === undefined) ? 1 : toInteger(n); + n = length - n; + return baseSlice(array, n < 0 ? 0 : n, length); + } + + /** + * Creates a slice of `array` with elements taken from the end. Elements are + * taken until `predicate` returns falsey. The predicate is invoked with + * three arguments: (value, index, array). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to query. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the slice of `array`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': true }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': false } + * ]; + * + * _.takeRightWhile(users, function(o) { return !o.active; }); + * // => objects for ['fred', 'pebbles'] + * + * // The `_.matches` iteratee shorthand. + * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false }); + * // => objects for ['pebbles'] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.takeRightWhile(users, ['active', false]); + * // => objects for ['fred', 'pebbles'] + * + * // The `_.property` iteratee shorthand. + * _.takeRightWhile(users, 'active'); + * // => [] + */ + function takeRightWhile(array, predicate) { + return (array && array.length) + ? baseWhile(array, getIteratee(predicate, 3), false, true) + : []; + } + + /** + * Creates a slice of `array` with elements taken from the beginning. Elements + * are taken until `predicate` returns falsey. The predicate is invoked with + * three arguments: (value, index, array). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to query. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the slice of `array`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': false }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': true } + * ]; + * + * _.takeWhile(users, function(o) { return !o.active; }); + * // => objects for ['barney', 'fred'] + * + * // The `_.matches` iteratee shorthand. + * _.takeWhile(users, { 'user': 'barney', 'active': false }); + * // => objects for ['barney'] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.takeWhile(users, ['active', false]); + * // => objects for ['barney', 'fred'] + * + * // The `_.property` iteratee shorthand. + * _.takeWhile(users, 'active'); + * // => [] + */ + function takeWhile(array, predicate) { + return (array && array.length) + ? baseWhile(array, getIteratee(predicate, 3)) + : []; + } + + /** + * Creates an array of unique values, in order, from all given arrays using + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @returns {Array} Returns the new array of combined values. + * @example + * + * _.union([2], [1, 2]); + * // => [2, 1] + */ + var union = baseRest(function(arrays) { + return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true)); + }); + + /** + * This method is like `_.union` except that it accepts `iteratee` which is + * invoked for each element of each `arrays` to generate the criterion by + * which uniqueness is computed. Result values are chosen from the first + * array in which the value occurs. The iteratee is invoked with one argument: + * (value). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Array} Returns the new array of combined values. + * @example + * + * _.unionBy([2.1], [1.2, 2.3], Math.floor); + * // => [2.1, 1.2] + * + * // The `_.property` iteratee shorthand. + * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); + * // => [{ 'x': 1 }, { 'x': 2 }] + */ + var unionBy = baseRest(function(arrays) { + var iteratee = last(arrays); + if (isArrayLikeObject(iteratee)) { + iteratee = undefined; + } + return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2)); + }); + + /** + * This method is like `_.union` except that it accepts `comparator` which + * is invoked to compare elements of `arrays`. Result values are chosen from + * the first array in which the value occurs. The comparator is invoked + * with two arguments: (arrVal, othVal). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of combined values. + * @example + * + * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; + * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; + * + * _.unionWith(objects, others, _.isEqual); + * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }] + */ + var unionWith = baseRest(function(arrays) { + var comparator = last(arrays); + comparator = typeof comparator == 'function' ? comparator : undefined; + return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator); + }); + + /** + * Creates a duplicate-free version of an array, using + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons, in which only the first occurrence of each element + * is kept. The order of result values is determined by the order they occur + * in the array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @returns {Array} Returns the new duplicate free array. + * @example + * + * _.uniq([2, 1, 2]); + * // => [2, 1] + */ + function uniq(array) { + return (array && array.length) ? baseUniq(array) : []; + } + + /** + * This method is like `_.uniq` except that it accepts `iteratee` which is + * invoked for each element in `array` to generate the criterion by which + * uniqueness is computed. The order of result values is determined by the + * order they occur in the array. The iteratee is invoked with one argument: + * (value). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Array} Returns the new duplicate free array. + * @example + * + * _.uniqBy([2.1, 1.2, 2.3], Math.floor); + * // => [2.1, 1.2] + * + * // The `_.property` iteratee shorthand. + * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); + * // => [{ 'x': 1 }, { 'x': 2 }] + */ + function uniqBy(array, iteratee) { + return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : []; + } + + /** + * This method is like `_.uniq` except that it accepts `comparator` which + * is invoked to compare elements of `array`. The order of result values is + * determined by the order they occur in the array.The comparator is invoked + * with two arguments: (arrVal, othVal). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new duplicate free array. + * @example + * + * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }]; + * + * _.uniqWith(objects, _.isEqual); + * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }] + */ + function uniqWith(array, comparator) { + comparator = typeof comparator == 'function' ? comparator : undefined; + return (array && array.length) ? baseUniq(array, undefined, comparator) : []; + } + + /** + * This method is like `_.zip` except that it accepts an array of grouped + * elements and creates an array regrouping the elements to their pre-zip + * configuration. + * + * @static + * @memberOf _ + * @since 1.2.0 + * @category Array + * @param {Array} array The array of grouped elements to process. + * @returns {Array} Returns the new array of regrouped elements. + * @example + * + * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]); + * // => [['a', 1, true], ['b', 2, false]] + * + * _.unzip(zipped); + * // => [['a', 'b'], [1, 2], [true, false]] + */ + function unzip(array) { + if (!(array && array.length)) { + return []; + } + var length = 0; + array = arrayFilter(array, function(group) { + if (isArrayLikeObject(group)) { + length = nativeMax(group.length, length); + return true; + } + }); + return baseTimes(length, function(index) { + return arrayMap(array, baseProperty(index)); + }); + } + + /** + * This method is like `_.unzip` except that it accepts `iteratee` to specify + * how regrouped values should be combined. The iteratee is invoked with the + * elements of each group: (...group). + * + * @static + * @memberOf _ + * @since 3.8.0 + * @category Array + * @param {Array} array The array of grouped elements to process. + * @param {Function} [iteratee=_.identity] The function to combine + * regrouped values. + * @returns {Array} Returns the new array of regrouped elements. + * @example + * + * var zipped = _.zip([1, 2], [10, 20], [100, 200]); + * // => [[1, 10, 100], [2, 20, 200]] + * + * _.unzipWith(zipped, _.add); + * // => [3, 30, 300] + */ + function unzipWith(array, iteratee) { + if (!(array && array.length)) { + return []; + } + var result = unzip(array); + if (iteratee == null) { + return result; + } + return arrayMap(result, function(group) { + return apply(iteratee, undefined, group); + }); + } + + /** + * Creates an array excluding all given values using + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * **Note:** Unlike `_.pull`, this method returns a new array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {...*} [values] The values to exclude. + * @returns {Array} Returns the new array of filtered values. + * @see _.difference, _.xor + * @example + * + * _.without([2, 1, 2, 3], 1, 2); + * // => [3] + */ + var without = baseRest(function(array, values) { + return isArrayLikeObject(array) + ? baseDifference(array, values) + : []; + }); + + /** + * Creates an array of unique values that is the + * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference) + * of the given arrays. The order of result values is determined by the order + * they occur in the arrays. + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @returns {Array} Returns the new array of filtered values. + * @see _.difference, _.without + * @example + * + * _.xor([2, 1], [2, 3]); + * // => [1, 3] + */ + var xor = baseRest(function(arrays) { + return baseXor(arrayFilter(arrays, isArrayLikeObject)); + }); + + /** + * This method is like `_.xor` except that it accepts `iteratee` which is + * invoked for each element of each `arrays` to generate the criterion by + * which by which they're compared. The order of result values is determined + * by the order they occur in the arrays. The iteratee is invoked with one + * argument: (value). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Array} Returns the new array of filtered values. + * @example + * + * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor); + * // => [1.2, 3.4] + * + * // The `_.property` iteratee shorthand. + * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); + * // => [{ 'x': 2 }] + */ + var xorBy = baseRest(function(arrays) { + var iteratee = last(arrays); + if (isArrayLikeObject(iteratee)) { + iteratee = undefined; + } + return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2)); + }); + + /** + * This method is like `_.xor` except that it accepts `comparator` which is + * invoked to compare elements of `arrays`. The order of result values is + * determined by the order they occur in the arrays. The comparator is invoked + * with two arguments: (arrVal, othVal). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of filtered values. + * @example + * + * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; + * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; + * + * _.xorWith(objects, others, _.isEqual); + * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }] + */ + var xorWith = baseRest(function(arrays) { + var comparator = last(arrays); + comparator = typeof comparator == 'function' ? comparator : undefined; + return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator); + }); + + /** + * Creates an array of grouped elements, the first of which contains the + * first elements of the given arrays, the second of which contains the + * second elements of the given arrays, and so on. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {...Array} [arrays] The arrays to process. + * @returns {Array} Returns the new array of grouped elements. + * @example + * + * _.zip(['a', 'b'], [1, 2], [true, false]); + * // => [['a', 1, true], ['b', 2, false]] + */ + var zip = baseRest(unzip); + + /** + * This method is like `_.fromPairs` except that it accepts two arrays, + * one of property identifiers and one of corresponding values. + * + * @static + * @memberOf _ + * @since 0.4.0 + * @category Array + * @param {Array} [props=[]] The property identifiers. + * @param {Array} [values=[]] The property values. + * @returns {Object} Returns the new object. + * @example + * + * _.zipObject(['a', 'b'], [1, 2]); + * // => { 'a': 1, 'b': 2 } + */ + function zipObject(props, values) { + return baseZipObject(props || [], values || [], assignValue); + } + + /** + * This method is like `_.zipObject` except that it supports property paths. + * + * @static + * @memberOf _ + * @since 4.1.0 + * @category Array + * @param {Array} [props=[]] The property identifiers. + * @param {Array} [values=[]] The property values. + * @returns {Object} Returns the new object. + * @example + * + * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]); + * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } } + */ + function zipObjectDeep(props, values) { + return baseZipObject(props || [], values || [], baseSet); + } + + /** + * This method is like `_.zip` except that it accepts `iteratee` to specify + * how grouped values should be combined. The iteratee is invoked with the + * elements of each group: (...group). + * + * @static + * @memberOf _ + * @since 3.8.0 + * @category Array + * @param {...Array} [arrays] The arrays to process. + * @param {Function} [iteratee=_.identity] The function to combine + * grouped values. + * @returns {Array} Returns the new array of grouped elements. + * @example + * + * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) { + * return a + b + c; + * }); + * // => [111, 222] + */ + var zipWith = baseRest(function(arrays) { + var length = arrays.length, + iteratee = length > 1 ? arrays[length - 1] : undefined; + + iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined; + return unzipWith(arrays, iteratee); + }); + + /*------------------------------------------------------------------------*/ + + /** + * Creates a `lodash` wrapper instance that wraps `value` with explicit method + * chain sequences enabled. The result of such sequences must be unwrapped + * with `_#value`. + * + * @static + * @memberOf _ + * @since 1.3.0 + * @category Seq + * @param {*} value The value to wrap. + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36 }, + * { 'user': 'fred', 'age': 40 }, + * { 'user': 'pebbles', 'age': 1 } + * ]; + * + * var youngest = _ + * .chain(users) + * .sortBy('age') + * .map(function(o) { + * return o.user + ' is ' + o.age; + * }) + * .head() + * .value(); + * // => 'pebbles is 1' + */ + function chain(value) { + var result = lodash(value); + result.__chain__ = true; + return result; + } + + /** + * This method invokes `interceptor` and returns `value`. The interceptor + * is invoked with one argument; (value). The purpose of this method is to + * "tap into" a method chain sequence in order to modify intermediate results. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Seq + * @param {*} value The value to provide to `interceptor`. + * @param {Function} interceptor The function to invoke. + * @returns {*} Returns `value`. + * @example + * + * _([1, 2, 3]) + * .tap(function(array) { + * // Mutate input array. + * array.pop(); + * }) + * .reverse() + * .value(); + * // => [2, 1] + */ + function tap(value, interceptor) { + interceptor(value); + return value; + } + + /** + * This method is like `_.tap` except that it returns the result of `interceptor`. + * The purpose of this method is to "pass thru" values replacing intermediate + * results in a method chain sequence. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Seq + * @param {*} value The value to provide to `interceptor`. + * @param {Function} interceptor The function to invoke. + * @returns {*} Returns the result of `interceptor`. + * @example + * + * _(' abc ') + * .chain() + * .trim() + * .thru(function(value) { + * return [value]; + * }) + * .value(); + * // => ['abc'] + */ + function thru(value, interceptor) { + return interceptor(value); + } + + /** + * This method is the wrapper version of `_.at`. + * + * @name at + * @memberOf _ + * @since 1.0.0 + * @category Seq + * @param {...(string|string[])} [paths] The property paths to pick. + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] }; + * + * _(object).at(['a[0].b.c', 'a[1]']).value(); + * // => [3, 4] + */ + var wrapperAt = flatRest(function(paths) { + var length = paths.length, + start = length ? paths[0] : 0, + value = this.__wrapped__, + interceptor = function(object) { return baseAt(object, paths); }; + + if (length > 1 || this.__actions__.length || + !(value instanceof LazyWrapper) || !isIndex(start)) { + return this.thru(interceptor); + } + value = value.slice(start, +start + (length ? 1 : 0)); + value.__actions__.push({ + 'func': thru, + 'args': [interceptor], + 'thisArg': undefined + }); + return new LodashWrapper(value, this.__chain__).thru(function(array) { + if (length && !array.length) { + array.push(undefined); + } + return array; + }); + }); + + /** + * Creates a `lodash` wrapper instance with explicit method chain sequences enabled. + * + * @name chain + * @memberOf _ + * @since 0.1.0 + * @category Seq + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36 }, + * { 'user': 'fred', 'age': 40 } + * ]; + * + * // A sequence without explicit chaining. + * _(users).head(); + * // => { 'user': 'barney', 'age': 36 } + * + * // A sequence with explicit chaining. + * _(users) + * .chain() + * .head() + * .pick('user') + * .value(); + * // => { 'user': 'barney' } + */ + function wrapperChain() { + return chain(this); + } + + /** + * Executes the chain sequence and returns the wrapped result. + * + * @name commit + * @memberOf _ + * @since 3.2.0 + * @category Seq + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * var array = [1, 2]; + * var wrapped = _(array).push(3); + * + * console.log(array); + * // => [1, 2] + * + * wrapped = wrapped.commit(); + * console.log(array); + * // => [1, 2, 3] + * + * wrapped.last(); + * // => 3 + * + * console.log(array); + * // => [1, 2, 3] + */ + function wrapperCommit() { + return new LodashWrapper(this.value(), this.__chain__); + } + + /** + * Gets the next value on a wrapped object following the + * [iterator protocol](https://mdn.io/iteration_protocols#iterator). + * + * @name next + * @memberOf _ + * @since 4.0.0 + * @category Seq + * @returns {Object} Returns the next iterator value. + * @example + * + * var wrapped = _([1, 2]); + * + * wrapped.next(); + * // => { 'done': false, 'value': 1 } + * + * wrapped.next(); + * // => { 'done': false, 'value': 2 } + * + * wrapped.next(); + * // => { 'done': true, 'value': undefined } + */ + function wrapperNext() { + if (this.__values__ === undefined) { + this.__values__ = toArray(this.value()); + } + var done = this.__index__ >= this.__values__.length, + value = done ? undefined : this.__values__[this.__index__++]; + + return { 'done': done, 'value': value }; + } + + /** + * Enables the wrapper to be iterable. + * + * @name Symbol.iterator + * @memberOf _ + * @since 4.0.0 + * @category Seq + * @returns {Object} Returns the wrapper object. + * @example + * + * var wrapped = _([1, 2]); + * + * wrapped[Symbol.iterator]() === wrapped; + * // => true + * + * Array.from(wrapped); + * // => [1, 2] + */ + function wrapperToIterator() { + return this; + } + + /** + * Creates a clone of the chain sequence planting `value` as the wrapped value. + * + * @name plant + * @memberOf _ + * @since 3.2.0 + * @category Seq + * @param {*} value The value to plant. + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * function square(n) { + * return n * n; + * } + * + * var wrapped = _([1, 2]).map(square); + * var other = wrapped.plant([3, 4]); + * + * other.value(); + * // => [9, 16] + * + * wrapped.value(); + * // => [1, 4] + */ + function wrapperPlant(value) { + var result, + parent = this; + + while (parent instanceof baseLodash) { + var clone = wrapperClone(parent); + clone.__index__ = 0; + clone.__values__ = undefined; + if (result) { + previous.__wrapped__ = clone; + } else { + result = clone; + } + var previous = clone; + parent = parent.__wrapped__; + } + previous.__wrapped__ = value; + return result; + } + + /** + * This method is the wrapper version of `_.reverse`. + * + * **Note:** This method mutates the wrapped array. + * + * @name reverse + * @memberOf _ + * @since 0.1.0 + * @category Seq + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * var array = [1, 2, 3]; + * + * _(array).reverse().value() + * // => [3, 2, 1] + * + * console.log(array); + * // => [3, 2, 1] + */ + function wrapperReverse() { + var value = this.__wrapped__; + if (value instanceof LazyWrapper) { + var wrapped = value; + if (this.__actions__.length) { + wrapped = new LazyWrapper(this); + } + wrapped = wrapped.reverse(); + wrapped.__actions__.push({ + 'func': thru, + 'args': [reverse], + 'thisArg': undefined + }); + return new LodashWrapper(wrapped, this.__chain__); + } + return this.thru(reverse); + } + + /** + * Executes the chain sequence to resolve the unwrapped value. + * + * @name value + * @memberOf _ + * @since 0.1.0 + * @alias toJSON, valueOf + * @category Seq + * @returns {*} Returns the resolved unwrapped value. + * @example + * + * _([1, 2, 3]).value(); + * // => [1, 2, 3] + */ + function wrapperValue() { + return baseWrapperValue(this.__wrapped__, this.__actions__); + } + + /*------------------------------------------------------------------------*/ + + /** + * Creates an object composed of keys generated from the results of running + * each element of `collection` thru `iteratee`. The corresponding value of + * each key is the number of times the key was returned by `iteratee`. The + * iteratee is invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 0.5.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The iteratee to transform keys. + * @returns {Object} Returns the composed aggregate object. + * @example + * + * _.countBy([6.1, 4.2, 6.3], Math.floor); + * // => { '4': 1, '6': 2 } + * + * // The `_.property` iteratee shorthand. + * _.countBy(['one', 'two', 'three'], 'length'); + * // => { '3': 2, '5': 1 } + */ + var countBy = createAggregator(function(result, value, key) { + if (hasOwnProperty.call(result, key)) { + ++result[key]; + } else { + baseAssignValue(result, key, 1); + } + }); + + /** + * Checks if `predicate` returns truthy for **all** elements of `collection`. + * Iteration is stopped once `predicate` returns falsey. The predicate is + * invoked with three arguments: (value, index|key, collection). + * + * **Note:** This method returns `true` for + * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because + * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of + * elements of empty collections. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {boolean} Returns `true` if all elements pass the predicate check, + * else `false`. + * @example + * + * _.every([true, 1, null, 'yes'], Boolean); + * // => false + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': false }, + * { 'user': 'fred', 'age': 40, 'active': false } + * ]; + * + * // The `_.matches` iteratee shorthand. + * _.every(users, { 'user': 'barney', 'active': false }); + * // => false + * + * // The `_.matchesProperty` iteratee shorthand. + * _.every(users, ['active', false]); + * // => true + * + * // The `_.property` iteratee shorthand. + * _.every(users, 'active'); + * // => false + */ + function every(collection, predicate, guard) { + var func = isArray(collection) ? arrayEvery : baseEvery; + if (guard && isIterateeCall(collection, predicate, guard)) { + predicate = undefined; + } + return func(collection, getIteratee(predicate, 3)); + } + + /** + * Iterates over elements of `collection`, returning an array of all elements + * `predicate` returns truthy for. The predicate is invoked with three + * arguments: (value, index|key, collection). + * + * **Note:** Unlike `_.remove`, this method returns a new array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + * @see _.reject + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': true }, + * { 'user': 'fred', 'age': 40, 'active': false } + * ]; + * + * _.filter(users, function(o) { return !o.active; }); + * // => objects for ['fred'] + * + * // The `_.matches` iteratee shorthand. + * _.filter(users, { 'age': 36, 'active': true }); + * // => objects for ['barney'] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.filter(users, ['active', false]); + * // => objects for ['fred'] + * + * // The `_.property` iteratee shorthand. + * _.filter(users, 'active'); + * // => objects for ['barney'] + * + * // Combining several predicates using `_.overEvery` or `_.overSome`. + * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]])); + * // => objects for ['fred', 'barney'] + */ + function filter(collection, predicate) { + var func = isArray(collection) ? arrayFilter : baseFilter; + return func(collection, getIteratee(predicate, 3)); + } + + /** + * Iterates over elements of `collection`, returning the first element + * `predicate` returns truthy for. The predicate is invoked with three + * arguments: (value, index|key, collection). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=0] The index to search from. + * @returns {*} Returns the matched element, else `undefined`. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': true }, + * { 'user': 'fred', 'age': 40, 'active': false }, + * { 'user': 'pebbles', 'age': 1, 'active': true } + * ]; + * + * _.find(users, function(o) { return o.age < 40; }); + * // => object for 'barney' + * + * // The `_.matches` iteratee shorthand. + * _.find(users, { 'age': 1, 'active': true }); + * // => object for 'pebbles' + * + * // The `_.matchesProperty` iteratee shorthand. + * _.find(users, ['active', false]); + * // => object for 'fred' + * + * // The `_.property` iteratee shorthand. + * _.find(users, 'active'); + * // => object for 'barney' + */ + var find = createFind(findIndex); + + /** + * This method is like `_.find` except that it iterates over elements of + * `collection` from right to left. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Collection + * @param {Array|Object} collection The collection to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=collection.length-1] The index to search from. + * @returns {*} Returns the matched element, else `undefined`. + * @example + * + * _.findLast([1, 2, 3, 4], function(n) { + * return n % 2 == 1; + * }); + * // => 3 + */ + var findLast = createFind(findLastIndex); + + /** + * Creates a flattened array of values by running each element in `collection` + * thru `iteratee` and flattening the mapped results. The iteratee is invoked + * with three arguments: (value, index|key, collection). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new flattened array. + * @example + * + * function duplicate(n) { + * return [n, n]; + * } + * + * _.flatMap([1, 2], duplicate); + * // => [1, 1, 2, 2] + */ + function flatMap(collection, iteratee) { + return baseFlatten(map(collection, iteratee), 1); + } + + /** + * This method is like `_.flatMap` except that it recursively flattens the + * mapped results. + * + * @static + * @memberOf _ + * @since 4.7.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new flattened array. + * @example + * + * function duplicate(n) { + * return [[[n, n]]]; + * } + * + * _.flatMapDeep([1, 2], duplicate); + * // => [1, 1, 2, 2] + */ + function flatMapDeep(collection, iteratee) { + return baseFlatten(map(collection, iteratee), INFINITY); + } + + /** + * This method is like `_.flatMap` except that it recursively flattens the + * mapped results up to `depth` times. + * + * @static + * @memberOf _ + * @since 4.7.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @param {number} [depth=1] The maximum recursion depth. + * @returns {Array} Returns the new flattened array. + * @example + * + * function duplicate(n) { + * return [[[n, n]]]; + * } + * + * _.flatMapDepth([1, 2], duplicate, 2); + * // => [[1, 1], [2, 2]] + */ + function flatMapDepth(collection, iteratee, depth) { + depth = depth === undefined ? 1 : toInteger(depth); + return baseFlatten(map(collection, iteratee), depth); + } + + /** + * Iterates over elements of `collection` and invokes `iteratee` for each element. + * The iteratee is invoked with three arguments: (value, index|key, collection). + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * **Note:** As with other "Collections" methods, objects with a "length" + * property are iterated like arrays. To avoid this behavior use `_.forIn` + * or `_.forOwn` for object iteration. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @alias each + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + * @see _.forEachRight + * @example + * + * _.forEach([1, 2], function(value) { + * console.log(value); + * }); + * // => Logs `1` then `2`. + * + * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) { + * console.log(key); + * }); + * // => Logs 'a' then 'b' (iteration order is not guaranteed). + */ + function forEach(collection, iteratee) { + var func = isArray(collection) ? arrayEach : baseEach; + return func(collection, getIteratee(iteratee, 3)); + } + + /** + * This method is like `_.forEach` except that it iterates over elements of + * `collection` from right to left. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @alias eachRight + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + * @see _.forEach + * @example + * + * _.forEachRight([1, 2], function(value) { + * console.log(value); + * }); + * // => Logs `2` then `1`. + */ + function forEachRight(collection, iteratee) { + var func = isArray(collection) ? arrayEachRight : baseEachRight; + return func(collection, getIteratee(iteratee, 3)); + } + + /** + * Creates an object composed of keys generated from the results of running + * each element of `collection` thru `iteratee`. The order of grouped values + * is determined by the order they occur in `collection`. The corresponding + * value of each key is an array of elements responsible for generating the + * key. The iteratee is invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The iteratee to transform keys. + * @returns {Object} Returns the composed aggregate object. + * @example + * + * _.groupBy([6.1, 4.2, 6.3], Math.floor); + * // => { '4': [4.2], '6': [6.1, 6.3] } + * + * // The `_.property` iteratee shorthand. + * _.groupBy(['one', 'two', 'three'], 'length'); + * // => { '3': ['one', 'two'], '5': ['three'] } + */ + var groupBy = createAggregator(function(result, value, key) { + if (hasOwnProperty.call(result, key)) { + result[key].push(value); + } else { + baseAssignValue(result, key, [value]); + } + }); + + /** + * Checks if `value` is in `collection`. If `collection` is a string, it's + * checked for a substring of `value`, otherwise + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * is used for equality comparisons. If `fromIndex` is negative, it's used as + * the offset from the end of `collection`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object|string} collection The collection to inspect. + * @param {*} value The value to search for. + * @param {number} [fromIndex=0] The index to search from. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`. + * @returns {boolean} Returns `true` if `value` is found, else `false`. + * @example + * + * _.includes([1, 2, 3], 1); + * // => true + * + * _.includes([1, 2, 3], 1, 2); + * // => false + * + * _.includes({ 'a': 1, 'b': 2 }, 1); + * // => true + * + * _.includes('abcd', 'bc'); + * // => true + */ + function includes(collection, value, fromIndex, guard) { + collection = isArrayLike(collection) ? collection : values(collection); + fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0; + + var length = collection.length; + if (fromIndex < 0) { + fromIndex = nativeMax(length + fromIndex, 0); + } + return isString(collection) + ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1) + : (!!length && baseIndexOf(collection, value, fromIndex) > -1); + } + + /** + * Invokes the method at `path` of each element in `collection`, returning + * an array of the results of each invoked method. Any additional arguments + * are provided to each invoked method. If `path` is a function, it's invoked + * for, and `this` bound to, each element in `collection`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Array|Function|string} path The path of the method to invoke or + * the function invoked per iteration. + * @param {...*} [args] The arguments to invoke each method with. + * @returns {Array} Returns the array of results. + * @example + * + * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort'); + * // => [[1, 5, 7], [1, 2, 3]] + * + * _.invokeMap([123, 456], String.prototype.split, ''); + * // => [['1', '2', '3'], ['4', '5', '6']] + */ + var invokeMap = baseRest(function(collection, path, args) { + var index = -1, + isFunc = typeof path == 'function', + result = isArrayLike(collection) ? Array(collection.length) : []; + + baseEach(collection, function(value) { + result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args); + }); + return result; + }); + + /** + * Creates an object composed of keys generated from the results of running + * each element of `collection` thru `iteratee`. The corresponding value of + * each key is the last element responsible for generating the key. The + * iteratee is invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The iteratee to transform keys. + * @returns {Object} Returns the composed aggregate object. + * @example + * + * var array = [ + * { 'dir': 'left', 'code': 97 }, + * { 'dir': 'right', 'code': 100 } + * ]; + * + * _.keyBy(array, function(o) { + * return String.fromCharCode(o.code); + * }); + * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } } + * + * _.keyBy(array, 'dir'); + * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } } + */ + var keyBy = createAggregator(function(result, value, key) { + baseAssignValue(result, key, value); + }); + + /** + * Creates an array of values by running each element in `collection` thru + * `iteratee`. The iteratee is invoked with three arguments: + * (value, index|key, collection). + * + * Many lodash methods are guarded to work as iteratees for methods like + * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`. + * + * The guarded methods are: + * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`, + * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`, + * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`, + * `template`, `trim`, `trimEnd`, `trimStart`, and `words` + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + * @example + * + * function square(n) { + * return n * n; + * } + * + * _.map([4, 8], square); + * // => [16, 64] + * + * _.map({ 'a': 4, 'b': 8 }, square); + * // => [16, 64] (iteration order is not guaranteed) + * + * var users = [ + * { 'user': 'barney' }, + * { 'user': 'fred' } + * ]; + * + * // The `_.property` iteratee shorthand. + * _.map(users, 'user'); + * // => ['barney', 'fred'] + */ + function map(collection, iteratee) { + var func = isArray(collection) ? arrayMap : baseMap; + return func(collection, getIteratee(iteratee, 3)); + } + + /** + * This method is like `_.sortBy` except that it allows specifying the sort + * orders of the iteratees to sort by. If `orders` is unspecified, all values + * are sorted in ascending order. Otherwise, specify an order of "desc" for + * descending or "asc" for ascending sort order of corresponding values. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]] + * The iteratees to sort by. + * @param {string[]} [orders] The sort orders of `iteratees`. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`. + * @returns {Array} Returns the new sorted array. + * @example + * + * var users = [ + * { 'user': 'fred', 'age': 48 }, + * { 'user': 'barney', 'age': 34 }, + * { 'user': 'fred', 'age': 40 }, + * { 'user': 'barney', 'age': 36 } + * ]; + * + * // Sort by `user` in ascending order and by `age` in descending order. + * _.orderBy(users, ['user', 'age'], ['asc', 'desc']); + * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]] + */ + function orderBy(collection, iteratees, orders, guard) { + if (collection == null) { + return []; + } + if (!isArray(iteratees)) { + iteratees = iteratees == null ? [] : [iteratees]; + } + orders = guard ? undefined : orders; + if (!isArray(orders)) { + orders = orders == null ? [] : [orders]; + } + return baseOrderBy(collection, iteratees, orders); + } + + /** + * Creates an array of elements split into two groups, the first of which + * contains elements `predicate` returns truthy for, the second of which + * contains elements `predicate` returns falsey for. The predicate is + * invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the array of grouped elements. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': false }, + * { 'user': 'fred', 'age': 40, 'active': true }, + * { 'user': 'pebbles', 'age': 1, 'active': false } + * ]; + * + * _.partition(users, function(o) { return o.active; }); + * // => objects for [['fred'], ['barney', 'pebbles']] + * + * // The `_.matches` iteratee shorthand. + * _.partition(users, { 'age': 1, 'active': false }); + * // => objects for [['pebbles'], ['barney', 'fred']] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.partition(users, ['active', false]); + * // => objects for [['barney', 'pebbles'], ['fred']] + * + * // The `_.property` iteratee shorthand. + * _.partition(users, 'active'); + * // => objects for [['fred'], ['barney', 'pebbles']] + */ + var partition = createAggregator(function(result, value, key) { + result[key ? 0 : 1].push(value); + }, function() { return [[], []]; }); + + /** + * Reduces `collection` to a value which is the accumulated result of running + * each element in `collection` thru `iteratee`, where each successive + * invocation is supplied the return value of the previous. If `accumulator` + * is not given, the first element of `collection` is used as the initial + * value. The iteratee is invoked with four arguments: + * (accumulator, value, index|key, collection). + * + * Many lodash methods are guarded to work as iteratees for methods like + * `_.reduce`, `_.reduceRight`, and `_.transform`. + * + * The guarded methods are: + * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`, + * and `sortBy` + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @param {*} [accumulator] The initial value. + * @returns {*} Returns the accumulated value. + * @see _.reduceRight + * @example + * + * _.reduce([1, 2], function(sum, n) { + * return sum + n; + * }, 0); + * // => 3 + * + * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { + * (result[value] || (result[value] = [])).push(key); + * return result; + * }, {}); + * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed) + */ + function reduce(collection, iteratee, accumulator) { + var func = isArray(collection) ? arrayReduce : baseReduce, + initAccum = arguments.length < 3; + + return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach); + } + + /** + * This method is like `_.reduce` except that it iterates over elements of + * `collection` from right to left. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @param {*} [accumulator] The initial value. + * @returns {*} Returns the accumulated value. + * @see _.reduce + * @example + * + * var array = [[0, 1], [2, 3], [4, 5]]; + * + * _.reduceRight(array, function(flattened, other) { + * return flattened.concat(other); + * }, []); + * // => [4, 5, 2, 3, 0, 1] + */ + function reduceRight(collection, iteratee, accumulator) { + var func = isArray(collection) ? arrayReduceRight : baseReduce, + initAccum = arguments.length < 3; + + return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight); + } + + /** + * The opposite of `_.filter`; this method returns the elements of `collection` + * that `predicate` does **not** return truthy for. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + * @see _.filter + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': false }, + * { 'user': 'fred', 'age': 40, 'active': true } + * ]; + * + * _.reject(users, function(o) { return !o.active; }); + * // => objects for ['fred'] + * + * // The `_.matches` iteratee shorthand. + * _.reject(users, { 'age': 40, 'active': true }); + * // => objects for ['barney'] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.reject(users, ['active', false]); + * // => objects for ['fred'] + * + * // The `_.property` iteratee shorthand. + * _.reject(users, 'active'); + * // => objects for ['barney'] + */ + function reject(collection, predicate) { + var func = isArray(collection) ? arrayFilter : baseFilter; + return func(collection, negate(getIteratee(predicate, 3))); + } + + /** + * Gets a random element from `collection`. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Collection + * @param {Array|Object} collection The collection to sample. + * @returns {*} Returns the random element. + * @example + * + * _.sample([1, 2, 3, 4]); + * // => 2 + */ + function sample(collection) { + var func = isArray(collection) ? arraySample : baseSample; + return func(collection); + } + + /** + * Gets `n` random elements at unique keys from `collection` up to the + * size of `collection`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Collection + * @param {Array|Object} collection The collection to sample. + * @param {number} [n=1] The number of elements to sample. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Array} Returns the random elements. + * @example + * + * _.sampleSize([1, 2, 3], 2); + * // => [3, 1] + * + * _.sampleSize([1, 2, 3], 4); + * // => [2, 3, 1] + */ + function sampleSize(collection, n, guard) { + if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) { + n = 1; + } else { + n = toInteger(n); + } + var func = isArray(collection) ? arraySampleSize : baseSampleSize; + return func(collection, n); + } + + /** + * Creates an array of shuffled values, using a version of the + * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to shuffle. + * @returns {Array} Returns the new shuffled array. + * @example + * + * _.shuffle([1, 2, 3, 4]); + * // => [4, 1, 3, 2] + */ + function shuffle(collection) { + var func = isArray(collection) ? arrayShuffle : baseShuffle; + return func(collection); + } + + /** + * Gets the size of `collection` by returning its length for array-like + * values or the number of own enumerable string keyed properties for objects. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object|string} collection The collection to inspect. + * @returns {number} Returns the collection size. + * @example + * + * _.size([1, 2, 3]); + * // => 3 + * + * _.size({ 'a': 1, 'b': 2 }); + * // => 2 + * + * _.size('pebbles'); + * // => 7 + */ + function size(collection) { + if (collection == null) { + return 0; + } + if (isArrayLike(collection)) { + return isString(collection) ? stringSize(collection) : collection.length; + } + var tag = getTag(collection); + if (tag == mapTag || tag == setTag) { + return collection.size; + } + return baseKeys(collection).length; + } + + /** + * Checks if `predicate` returns truthy for **any** element of `collection`. + * Iteration is stopped once `predicate` returns truthy. The predicate is + * invoked with three arguments: (value, index|key, collection). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + * @example + * + * _.some([null, 0, 'yes', false], Boolean); + * // => true + * + * var users = [ + * { 'user': 'barney', 'active': true }, + * { 'user': 'fred', 'active': false } + * ]; + * + * // The `_.matches` iteratee shorthand. + * _.some(users, { 'user': 'barney', 'active': false }); + * // => false + * + * // The `_.matchesProperty` iteratee shorthand. + * _.some(users, ['active', false]); + * // => true + * + * // The `_.property` iteratee shorthand. + * _.some(users, 'active'); + * // => true + */ + function some(collection, predicate, guard) { + var func = isArray(collection) ? arraySome : baseSome; + if (guard && isIterateeCall(collection, predicate, guard)) { + predicate = undefined; + } + return func(collection, getIteratee(predicate, 3)); + } + + /** + * Creates an array of elements, sorted in ascending order by the results of + * running each element in a collection thru each iteratee. This method + * performs a stable sort, that is, it preserves the original sort order of + * equal elements. The iteratees are invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {...(Function|Function[])} [iteratees=[_.identity]] + * The iteratees to sort by. + * @returns {Array} Returns the new sorted array. + * @example + * + * var users = [ + * { 'user': 'fred', 'age': 48 }, + * { 'user': 'barney', 'age': 36 }, + * { 'user': 'fred', 'age': 30 }, + * { 'user': 'barney', 'age': 34 } + * ]; + * + * _.sortBy(users, [function(o) { return o.user; }]); + * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]] + * + * _.sortBy(users, ['user', 'age']); + * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]] + */ + var sortBy = baseRest(function(collection, iteratees) { + if (collection == null) { + return []; + } + var length = iteratees.length; + if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) { + iteratees = []; + } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) { + iteratees = [iteratees[0]]; + } + return baseOrderBy(collection, baseFlatten(iteratees, 1), []); + }); + + /*------------------------------------------------------------------------*/ + + /** + * Gets the timestamp of the number of milliseconds that have elapsed since + * the Unix epoch (1 January 1970 00:00:00 UTC). + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Date + * @returns {number} Returns the timestamp. + * @example + * + * _.defer(function(stamp) { + * console.log(_.now() - stamp); + * }, _.now()); + * // => Logs the number of milliseconds it took for the deferred invocation. + */ + var now = ctxNow || function() { + return root.Date.now(); + }; + + /*------------------------------------------------------------------------*/ + + /** + * The opposite of `_.before`; this method creates a function that invokes + * `func` once it's called `n` or more times. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {number} n The number of calls before `func` is invoked. + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new restricted function. + * @example + * + * var saves = ['profile', 'settings']; + * + * var done = _.after(saves.length, function() { + * console.log('done saving!'); + * }); + * + * _.forEach(saves, function(type) { + * asyncSave({ 'type': type, 'complete': done }); + * }); + * // => Logs 'done saving!' after the two async saves have completed. + */ + function after(n, func) { + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + n = toInteger(n); + return function() { + if (--n < 1) { + return func.apply(this, arguments); + } + }; + } + + /** + * Creates a function that invokes `func`, with up to `n` arguments, + * ignoring any additional arguments. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Function + * @param {Function} func The function to cap arguments for. + * @param {number} [n=func.length] The arity cap. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Function} Returns the new capped function. + * @example + * + * _.map(['6', '8', '10'], _.ary(parseInt, 1)); + * // => [6, 8, 10] + */ + function ary(func, n, guard) { + n = guard ? undefined : n; + n = (func && n == null) ? func.length : n; + return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n); + } + + /** + * Creates a function that invokes `func`, with the `this` binding and arguments + * of the created function, while it's called less than `n` times. Subsequent + * calls to the created function return the result of the last `func` invocation. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Function + * @param {number} n The number of calls at which `func` is no longer invoked. + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new restricted function. + * @example + * + * jQuery(element).on('click', _.before(5, addContactToList)); + * // => Allows adding up to 4 contacts to the list. + */ + function before(n, func) { + var result; + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + n = toInteger(n); + return function() { + if (--n > 0) { + result = func.apply(this, arguments); + } + if (n <= 1) { + func = undefined; + } + return result; + }; + } + + /** + * Creates a function that invokes `func` with the `this` binding of `thisArg` + * and `partials` prepended to the arguments it receives. + * + * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds, + * may be used as a placeholder for partially applied arguments. + * + * **Note:** Unlike native `Function#bind`, this method doesn't set the "length" + * property of bound functions. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to bind. + * @param {*} thisArg The `this` binding of `func`. + * @param {...*} [partials] The arguments to be partially applied. + * @returns {Function} Returns the new bound function. + * @example + * + * function greet(greeting, punctuation) { + * return greeting + ' ' + this.user + punctuation; + * } + * + * var object = { 'user': 'fred' }; + * + * var bound = _.bind(greet, object, 'hi'); + * bound('!'); + * // => 'hi fred!' + * + * // Bound with placeholders. + * var bound = _.bind(greet, object, _, '!'); + * bound('hi'); + * // => 'hi fred!' + */ + var bind = baseRest(function(func, thisArg, partials) { + var bitmask = WRAP_BIND_FLAG; + if (partials.length) { + var holders = replaceHolders(partials, getHolder(bind)); + bitmask |= WRAP_PARTIAL_FLAG; + } + return createWrap(func, bitmask, thisArg, partials, holders); + }); + + /** + * Creates a function that invokes the method at `object[key]` with `partials` + * prepended to the arguments it receives. + * + * This method differs from `_.bind` by allowing bound functions to reference + * methods that may be redefined or don't yet exist. See + * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern) + * for more details. + * + * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic + * builds, may be used as a placeholder for partially applied arguments. + * + * @static + * @memberOf _ + * @since 0.10.0 + * @category Function + * @param {Object} object The object to invoke the method on. + * @param {string} key The key of the method. + * @param {...*} [partials] The arguments to be partially applied. + * @returns {Function} Returns the new bound function. + * @example + * + * var object = { + * 'user': 'fred', + * 'greet': function(greeting, punctuation) { + * return greeting + ' ' + this.user + punctuation; + * } + * }; + * + * var bound = _.bindKey(object, 'greet', 'hi'); + * bound('!'); + * // => 'hi fred!' + * + * object.greet = function(greeting, punctuation) { + * return greeting + 'ya ' + this.user + punctuation; + * }; + * + * bound('!'); + * // => 'hiya fred!' + * + * // Bound with placeholders. + * var bound = _.bindKey(object, 'greet', _, '!'); + * bound('hi'); + * // => 'hiya fred!' + */ + var bindKey = baseRest(function(object, key, partials) { + var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG; + if (partials.length) { + var holders = replaceHolders(partials, getHolder(bindKey)); + bitmask |= WRAP_PARTIAL_FLAG; + } + return createWrap(key, bitmask, object, partials, holders); + }); + + /** + * Creates a function that accepts arguments of `func` and either invokes + * `func` returning its result, if at least `arity` number of arguments have + * been provided, or returns a function that accepts the remaining `func` + * arguments, and so on. The arity of `func` may be specified if `func.length` + * is not sufficient. + * + * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds, + * may be used as a placeholder for provided arguments. + * + * **Note:** This method doesn't set the "length" property of curried functions. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Function + * @param {Function} func The function to curry. + * @param {number} [arity=func.length] The arity of `func`. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Function} Returns the new curried function. + * @example + * + * var abc = function(a, b, c) { + * return [a, b, c]; + * }; + * + * var curried = _.curry(abc); + * + * curried(1)(2)(3); + * // => [1, 2, 3] + * + * curried(1, 2)(3); + * // => [1, 2, 3] + * + * curried(1, 2, 3); + * // => [1, 2, 3] + * + * // Curried with placeholders. + * curried(1)(_, 3)(2); + * // => [1, 2, 3] + */ + function curry(func, arity, guard) { + arity = guard ? undefined : arity; + var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity); + result.placeholder = curry.placeholder; + return result; + } + + /** + * This method is like `_.curry` except that arguments are applied to `func` + * in the manner of `_.partialRight` instead of `_.partial`. + * + * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic + * builds, may be used as a placeholder for provided arguments. + * + * **Note:** This method doesn't set the "length" property of curried functions. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Function + * @param {Function} func The function to curry. + * @param {number} [arity=func.length] The arity of `func`. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Function} Returns the new curried function. + * @example + * + * var abc = function(a, b, c) { + * return [a, b, c]; + * }; + * + * var curried = _.curryRight(abc); + * + * curried(3)(2)(1); + * // => [1, 2, 3] + * + * curried(2, 3)(1); + * // => [1, 2, 3] + * + * curried(1, 2, 3); + * // => [1, 2, 3] + * + * // Curried with placeholders. + * curried(3)(1, _)(2); + * // => [1, 2, 3] + */ + function curryRight(func, arity, guard) { + arity = guard ? undefined : arity; + var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity); + result.placeholder = curryRight.placeholder; + return result; + } + + /** + * Creates a debounced function that delays invoking `func` until after `wait` + * milliseconds have elapsed since the last time the debounced function was + * invoked. The debounced function comes with a `cancel` method to cancel + * delayed `func` invocations and a `flush` method to immediately invoke them. + * Provide `options` to indicate whether `func` should be invoked on the + * leading and/or trailing edge of the `wait` timeout. The `func` is invoked + * with the last arguments provided to the debounced function. Subsequent + * calls to the debounced function return the result of the last `func` + * invocation. + * + * **Note:** If `leading` and `trailing` options are `true`, `func` is + * invoked on the trailing edge of the timeout only if the debounced function + * is invoked more than once during the `wait` timeout. + * + * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred + * until to the next tick, similar to `setTimeout` with a timeout of `0`. + * + * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) + * for details over the differences between `_.debounce` and `_.throttle`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to debounce. + * @param {number} [wait=0] The number of milliseconds to delay. + * @param {Object} [options={}] The options object. + * @param {boolean} [options.leading=false] + * Specify invoking on the leading edge of the timeout. + * @param {number} [options.maxWait] + * The maximum time `func` is allowed to be delayed before it's invoked. + * @param {boolean} [options.trailing=true] + * Specify invoking on the trailing edge of the timeout. + * @returns {Function} Returns the new debounced function. + * @example + * + * // Avoid costly calculations while the window size is in flux. + * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); + * + * // Invoke `sendMail` when clicked, debouncing subsequent calls. + * jQuery(element).on('click', _.debounce(sendMail, 300, { + * 'leading': true, + * 'trailing': false + * })); + * + * // Ensure `batchLog` is invoked once after 1 second of debounced calls. + * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); + * var source = new EventSource('/stream'); + * jQuery(source).on('message', debounced); + * + * // Cancel the trailing debounced invocation. + * jQuery(window).on('popstate', debounced.cancel); + */ + function debounce(func, wait, options) { + var lastArgs, + lastThis, + maxWait, + result, + timerId, + lastCallTime, + lastInvokeTime = 0, + leading = false, + maxing = false, + trailing = true; + + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + wait = toNumber(wait) || 0; + if (isObject(options)) { + leading = !!options.leading; + maxing = 'maxWait' in options; + maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; + trailing = 'trailing' in options ? !!options.trailing : trailing; + } + + function invokeFunc(time) { + var args = lastArgs, + thisArg = lastThis; + + lastArgs = lastThis = undefined; + lastInvokeTime = time; + result = func.apply(thisArg, args); + return result; + } + + function leadingEdge(time) { + // Reset any `maxWait` timer. + lastInvokeTime = time; + // Start the timer for the trailing edge. + timerId = setTimeout(timerExpired, wait); + // Invoke the leading edge. + return leading ? invokeFunc(time) : result; + } + + function remainingWait(time) { + var timeSinceLastCall = time - lastCallTime, + timeSinceLastInvoke = time - lastInvokeTime, + timeWaiting = wait - timeSinceLastCall; + + return maxing + ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) + : timeWaiting; + } + + function shouldInvoke(time) { + var timeSinceLastCall = time - lastCallTime, + timeSinceLastInvoke = time - lastInvokeTime; + + // Either this is the first call, activity has stopped and we're at the + // trailing edge, the system time has gone backwards and we're treating + // it as the trailing edge, or we've hit the `maxWait` limit. + return (lastCallTime === undefined || (timeSinceLastCall >= wait) || + (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)); + } + + function timerExpired() { + var time = now(); + if (shouldInvoke(time)) { + return trailingEdge(time); + } + // Restart the timer. + timerId = setTimeout(timerExpired, remainingWait(time)); + } + + function trailingEdge(time) { + timerId = undefined; + + // Only invoke if we have `lastArgs` which means `func` has been + // debounced at least once. + if (trailing && lastArgs) { + return invokeFunc(time); + } + lastArgs = lastThis = undefined; + return result; + } + + function cancel() { + if (timerId !== undefined) { + clearTimeout(timerId); + } + lastInvokeTime = 0; + lastArgs = lastCallTime = lastThis = timerId = undefined; + } + + function flush() { + return timerId === undefined ? result : trailingEdge(now()); + } + + function debounced() { + var time = now(), + isInvoking = shouldInvoke(time); + + lastArgs = arguments; + lastThis = this; + lastCallTime = time; + + if (isInvoking) { + if (timerId === undefined) { + return leadingEdge(lastCallTime); + } + if (maxing) { + // Handle invocations in a tight loop. + clearTimeout(timerId); + timerId = setTimeout(timerExpired, wait); + return invokeFunc(lastCallTime); + } + } + if (timerId === undefined) { + timerId = setTimeout(timerExpired, wait); + } + return result; + } + debounced.cancel = cancel; + debounced.flush = flush; + return debounced; + } + + /** + * Defers invoking the `func` until the current call stack has cleared. Any + * additional arguments are provided to `func` when it's invoked. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to defer. + * @param {...*} [args] The arguments to invoke `func` with. + * @returns {number} Returns the timer id. + * @example + * + * _.defer(function(text) { + * console.log(text); + * }, 'deferred'); + * // => Logs 'deferred' after one millisecond. + */ + var defer = baseRest(function(func, args) { + return baseDelay(func, 1, args); + }); + + /** + * Invokes `func` after `wait` milliseconds. Any additional arguments are + * provided to `func` when it's invoked. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to delay. + * @param {number} wait The number of milliseconds to delay invocation. + * @param {...*} [args] The arguments to invoke `func` with. + * @returns {number} Returns the timer id. + * @example + * + * _.delay(function(text) { + * console.log(text); + * }, 1000, 'later'); + * // => Logs 'later' after one second. + */ + var delay = baseRest(function(func, wait, args) { + return baseDelay(func, toNumber(wait) || 0, args); + }); + + /** + * Creates a function that invokes `func` with arguments reversed. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Function + * @param {Function} func The function to flip arguments for. + * @returns {Function} Returns the new flipped function. + * @example + * + * var flipped = _.flip(function() { + * return _.toArray(arguments); + * }); + * + * flipped('a', 'b', 'c', 'd'); + * // => ['d', 'c', 'b', 'a'] + */ + function flip(func) { + return createWrap(func, WRAP_FLIP_FLAG); + } + + /** + * Creates a function that memoizes the result of `func`. If `resolver` is + * provided, it determines the cache key for storing the result based on the + * arguments provided to the memoized function. By default, the first argument + * provided to the memoized function is used as the map cache key. The `func` + * is invoked with the `this` binding of the memoized function. + * + * **Note:** The cache is exposed as the `cache` property on the memoized + * function. Its creation may be customized by replacing the `_.memoize.Cache` + * constructor with one whose instances implement the + * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) + * method interface of `clear`, `delete`, `get`, `has`, and `set`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to have its output memoized. + * @param {Function} [resolver] The function to resolve the cache key. + * @returns {Function} Returns the new memoized function. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * var other = { 'c': 3, 'd': 4 }; + * + * var values = _.memoize(_.values); + * values(object); + * // => [1, 2] + * + * values(other); + * // => [3, 4] + * + * object.a = 2; + * values(object); + * // => [1, 2] + * + * // Modify the result cache. + * values.cache.set(object, ['a', 'b']); + * values(object); + * // => ['a', 'b'] + * + * // Replace `_.memoize.Cache`. + * _.memoize.Cache = WeakMap; + */ + function memoize(func, resolver) { + if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { + throw new TypeError(FUNC_ERROR_TEXT); + } + var memoized = function() { + var args = arguments, + key = resolver ? resolver.apply(this, args) : args[0], + cache = memoized.cache; + + if (cache.has(key)) { + return cache.get(key); + } + var result = func.apply(this, args); + memoized.cache = cache.set(key, result) || cache; + return result; + }; + memoized.cache = new (memoize.Cache || MapCache); + return memoized; + } + + // Expose `MapCache`. + memoize.Cache = MapCache; + + /** + * Creates a function that negates the result of the predicate `func`. The + * `func` predicate is invoked with the `this` binding and arguments of the + * created function. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Function + * @param {Function} predicate The predicate to negate. + * @returns {Function} Returns the new negated function. + * @example + * + * function isEven(n) { + * return n % 2 == 0; + * } + * + * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven)); + * // => [1, 3, 5] + */ + function negate(predicate) { + if (typeof predicate != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + return function() { + var args = arguments; + switch (args.length) { + case 0: return !predicate.call(this); + case 1: return !predicate.call(this, args[0]); + case 2: return !predicate.call(this, args[0], args[1]); + case 3: return !predicate.call(this, args[0], args[1], args[2]); + } + return !predicate.apply(this, args); + }; + } + + /** + * Creates a function that is restricted to invoking `func` once. Repeat calls + * to the function return the value of the first invocation. The `func` is + * invoked with the `this` binding and arguments of the created function. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new restricted function. + * @example + * + * var initialize = _.once(createApplication); + * initialize(); + * initialize(); + * // => `createApplication` is invoked once + */ + function once(func) { + return before(2, func); + } + + /** + * Creates a function that invokes `func` with its arguments transformed. + * + * @static + * @since 4.0.0 + * @memberOf _ + * @category Function + * @param {Function} func The function to wrap. + * @param {...(Function|Function[])} [transforms=[_.identity]] + * The argument transforms. + * @returns {Function} Returns the new function. + * @example + * + * function doubled(n) { + * return n * 2; + * } + * + * function square(n) { + * return n * n; + * } + * + * var func = _.overArgs(function(x, y) { + * return [x, y]; + * }, [square, doubled]); + * + * func(9, 3); + * // => [81, 6] + * + * func(10, 5); + * // => [100, 10] + */ + var overArgs = castRest(function(func, transforms) { + transforms = (transforms.length == 1 && isArray(transforms[0])) + ? arrayMap(transforms[0], baseUnary(getIteratee())) + : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee())); + + var funcsLength = transforms.length; + return baseRest(function(args) { + var index = -1, + length = nativeMin(args.length, funcsLength); + + while (++index < length) { + args[index] = transforms[index].call(this, args[index]); + } + return apply(func, this, args); + }); + }); + + /** + * Creates a function that invokes `func` with `partials` prepended to the + * arguments it receives. This method is like `_.bind` except it does **not** + * alter the `this` binding. + * + * The `_.partial.placeholder` value, which defaults to `_` in monolithic + * builds, may be used as a placeholder for partially applied arguments. + * + * **Note:** This method doesn't set the "length" property of partially + * applied functions. + * + * @static + * @memberOf _ + * @since 0.2.0 + * @category Function + * @param {Function} func The function to partially apply arguments to. + * @param {...*} [partials] The arguments to be partially applied. + * @returns {Function} Returns the new partially applied function. + * @example + * + * function greet(greeting, name) { + * return greeting + ' ' + name; + * } + * + * var sayHelloTo = _.partial(greet, 'hello'); + * sayHelloTo('fred'); + * // => 'hello fred' + * + * // Partially applied with placeholders. + * var greetFred = _.partial(greet, _, 'fred'); + * greetFred('hi'); + * // => 'hi fred' + */ + var partial = baseRest(function(func, partials) { + var holders = replaceHolders(partials, getHolder(partial)); + return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders); + }); + + /** + * This method is like `_.partial` except that partially applied arguments + * are appended to the arguments it receives. + * + * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic + * builds, may be used as a placeholder for partially applied arguments. + * + * **Note:** This method doesn't set the "length" property of partially + * applied functions. + * + * @static + * @memberOf _ + * @since 1.0.0 + * @category Function + * @param {Function} func The function to partially apply arguments to. + * @param {...*} [partials] The arguments to be partially applied. + * @returns {Function} Returns the new partially applied function. + * @example + * + * function greet(greeting, name) { + * return greeting + ' ' + name; + * } + * + * var greetFred = _.partialRight(greet, 'fred'); + * greetFred('hi'); + * // => 'hi fred' + * + * // Partially applied with placeholders. + * var sayHelloTo = _.partialRight(greet, 'hello', _); + * sayHelloTo('fred'); + * // => 'hello fred' + */ + var partialRight = baseRest(function(func, partials) { + var holders = replaceHolders(partials, getHolder(partialRight)); + return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders); + }); + + /** + * Creates a function that invokes `func` with arguments arranged according + * to the specified `indexes` where the argument value at the first index is + * provided as the first argument, the argument value at the second index is + * provided as the second argument, and so on. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Function + * @param {Function} func The function to rearrange arguments for. + * @param {...(number|number[])} indexes The arranged argument indexes. + * @returns {Function} Returns the new function. + * @example + * + * var rearged = _.rearg(function(a, b, c) { + * return [a, b, c]; + * }, [2, 0, 1]); + * + * rearged('b', 'c', 'a') + * // => ['a', 'b', 'c'] + */ + var rearg = flatRest(function(func, indexes) { + return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes); + }); + + /** + * Creates a function that invokes `func` with the `this` binding of the + * created function and arguments from `start` and beyond provided as + * an array. + * + * **Note:** This method is based on the + * [rest parameter](https://mdn.io/rest_parameters). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Function + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + * @example + * + * var say = _.rest(function(what, names) { + * return what + ' ' + _.initial(names).join(', ') + + * (_.size(names) > 1 ? ', & ' : '') + _.last(names); + * }); + * + * say('hello', 'fred', 'barney', 'pebbles'); + * // => 'hello fred, barney, & pebbles' + */ + function rest(func, start) { + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + start = start === undefined ? start : toInteger(start); + return baseRest(func, start); + } + + /** + * Creates a function that invokes `func` with the `this` binding of the + * create function and an array of arguments much like + * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply). + * + * **Note:** This method is based on the + * [spread operator](https://mdn.io/spread_operator). + * + * @static + * @memberOf _ + * @since 3.2.0 + * @category Function + * @param {Function} func The function to spread arguments over. + * @param {number} [start=0] The start position of the spread. + * @returns {Function} Returns the new function. + * @example + * + * var say = _.spread(function(who, what) { + * return who + ' says ' + what; + * }); + * + * say(['fred', 'hello']); + * // => 'fred says hello' + * + * var numbers = Promise.all([ + * Promise.resolve(40), + * Promise.resolve(36) + * ]); + * + * numbers.then(_.spread(function(x, y) { + * return x + y; + * })); + * // => a Promise of 76 + */ + function spread(func, start) { + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + start = start == null ? 0 : nativeMax(toInteger(start), 0); + return baseRest(function(args) { + var array = args[start], + otherArgs = castSlice(args, 0, start); + + if (array) { + arrayPush(otherArgs, array); + } + return apply(func, this, otherArgs); + }); + } + + /** + * Creates a throttled function that only invokes `func` at most once per + * every `wait` milliseconds. The throttled function comes with a `cancel` + * method to cancel delayed `func` invocations and a `flush` method to + * immediately invoke them. Provide `options` to indicate whether `func` + * should be invoked on the leading and/or trailing edge of the `wait` + * timeout. The `func` is invoked with the last arguments provided to the + * throttled function. Subsequent calls to the throttled function return the + * result of the last `func` invocation. + * + * **Note:** If `leading` and `trailing` options are `true`, `func` is + * invoked on the trailing edge of the timeout only if the throttled function + * is invoked more than once during the `wait` timeout. + * + * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred + * until to the next tick, similar to `setTimeout` with a timeout of `0`. + * + * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) + * for details over the differences between `_.throttle` and `_.debounce`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to throttle. + * @param {number} [wait=0] The number of milliseconds to throttle invocations to. + * @param {Object} [options={}] The options object. + * @param {boolean} [options.leading=true] + * Specify invoking on the leading edge of the timeout. + * @param {boolean} [options.trailing=true] + * Specify invoking on the trailing edge of the timeout. + * @returns {Function} Returns the new throttled function. + * @example + * + * // Avoid excessively updating the position while scrolling. + * jQuery(window).on('scroll', _.throttle(updatePosition, 100)); + * + * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes. + * var throttled = _.throttle(renewToken, 300000, { 'trailing': false }); + * jQuery(element).on('click', throttled); + * + * // Cancel the trailing throttled invocation. + * jQuery(window).on('popstate', throttled.cancel); + */ + function throttle(func, wait, options) { + var leading = true, + trailing = true; + + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + if (isObject(options)) { + leading = 'leading' in options ? !!options.leading : leading; + trailing = 'trailing' in options ? !!options.trailing : trailing; + } + return debounce(func, wait, { + 'leading': leading, + 'maxWait': wait, + 'trailing': trailing + }); + } + + /** + * Creates a function that accepts up to one argument, ignoring any + * additional arguments. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Function + * @param {Function} func The function to cap arguments for. + * @returns {Function} Returns the new capped function. + * @example + * + * _.map(['6', '8', '10'], _.unary(parseInt)); + * // => [6, 8, 10] + */ + function unary(func) { + return ary(func, 1); + } + + /** + * Creates a function that provides `value` to `wrapper` as its first + * argument. Any additional arguments provided to the function are appended + * to those provided to the `wrapper`. The wrapper is invoked with the `this` + * binding of the created function. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {*} value The value to wrap. + * @param {Function} [wrapper=identity] The wrapper function. + * @returns {Function} Returns the new function. + * @example + * + * var p = _.wrap(_.escape, function(func, text) { + * return '

' + func(text) + '

'; + * }); + * + * p('fred, barney, & pebbles'); + * // => '

fred, barney, & pebbles

' + */ + function wrap(value, wrapper) { + return partial(castFunction(wrapper), value); + } + + /*------------------------------------------------------------------------*/ + + /** + * Casts `value` as an array if it's not one. + * + * @static + * @memberOf _ + * @since 4.4.0 + * @category Lang + * @param {*} value The value to inspect. + * @returns {Array} Returns the cast array. + * @example + * + * _.castArray(1); + * // => [1] + * + * _.castArray({ 'a': 1 }); + * // => [{ 'a': 1 }] + * + * _.castArray('abc'); + * // => ['abc'] + * + * _.castArray(null); + * // => [null] + * + * _.castArray(undefined); + * // => [undefined] + * + * _.castArray(); + * // => [] + * + * var array = [1, 2, 3]; + * console.log(_.castArray(array) === array); + * // => true + */ + function castArray() { + if (!arguments.length) { + return []; + } + var value = arguments[0]; + return isArray(value) ? value : [value]; + } + + /** + * Creates a shallow clone of `value`. + * + * **Note:** This method is loosely based on the + * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm) + * and supports cloning arrays, array buffers, booleans, date objects, maps, + * numbers, `Object` objects, regexes, sets, strings, symbols, and typed + * arrays. The own enumerable properties of `arguments` objects are cloned + * as plain objects. An empty object is returned for uncloneable values such + * as error objects, functions, DOM nodes, and WeakMaps. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to clone. + * @returns {*} Returns the cloned value. + * @see _.cloneDeep + * @example + * + * var objects = [{ 'a': 1 }, { 'b': 2 }]; + * + * var shallow = _.clone(objects); + * console.log(shallow[0] === objects[0]); + * // => true + */ + function clone(value) { + return baseClone(value, CLONE_SYMBOLS_FLAG); + } + + /** + * This method is like `_.clone` except that it accepts `customizer` which + * is invoked to produce the cloned value. If `customizer` returns `undefined`, + * cloning is handled by the method instead. The `customizer` is invoked with + * up to four arguments; (value [, index|key, object, stack]). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to clone. + * @param {Function} [customizer] The function to customize cloning. + * @returns {*} Returns the cloned value. + * @see _.cloneDeepWith + * @example + * + * function customizer(value) { + * if (_.isElement(value)) { + * return value.cloneNode(false); + * } + * } + * + * var el = _.cloneWith(document.body, customizer); + * + * console.log(el === document.body); + * // => false + * console.log(el.nodeName); + * // => 'BODY' + * console.log(el.childNodes.length); + * // => 0 + */ + function cloneWith(value, customizer) { + customizer = typeof customizer == 'function' ? customizer : undefined; + return baseClone(value, CLONE_SYMBOLS_FLAG, customizer); + } + + /** + * This method is like `_.clone` except that it recursively clones `value`. + * + * @static + * @memberOf _ + * @since 1.0.0 + * @category Lang + * @param {*} value The value to recursively clone. + * @returns {*} Returns the deep cloned value. + * @see _.clone + * @example + * + * var objects = [{ 'a': 1 }, { 'b': 2 }]; + * + * var deep = _.cloneDeep(objects); + * console.log(deep[0] === objects[0]); + * // => false + */ + function cloneDeep(value) { + return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG); + } + + /** + * This method is like `_.cloneWith` except that it recursively clones `value`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to recursively clone. + * @param {Function} [customizer] The function to customize cloning. + * @returns {*} Returns the deep cloned value. + * @see _.cloneWith + * @example + * + * function customizer(value) { + * if (_.isElement(value)) { + * return value.cloneNode(true); + * } + * } + * + * var el = _.cloneDeepWith(document.body, customizer); + * + * console.log(el === document.body); + * // => false + * console.log(el.nodeName); + * // => 'BODY' + * console.log(el.childNodes.length); + * // => 20 + */ + function cloneDeepWith(value, customizer) { + customizer = typeof customizer == 'function' ? customizer : undefined; + return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer); + } + + /** + * Checks if `object` conforms to `source` by invoking the predicate + * properties of `source` with the corresponding property values of `object`. + * + * **Note:** This method is equivalent to `_.conforms` when `source` is + * partially applied. + * + * @static + * @memberOf _ + * @since 4.14.0 + * @category Lang + * @param {Object} object The object to inspect. + * @param {Object} source The object of property predicates to conform to. + * @returns {boolean} Returns `true` if `object` conforms, else `false`. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * + * _.conformsTo(object, { 'b': function(n) { return n > 1; } }); + * // => true + * + * _.conformsTo(object, { 'b': function(n) { return n > 2; } }); + * // => false + */ + function conformsTo(object, source) { + return source == null || baseConformsTo(object, source, keys(source)); + } + + /** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */ + function eq(value, other) { + return value === other || (value !== value && other !== other); + } + + /** + * Checks if `value` is greater than `other`. + * + * @static + * @memberOf _ + * @since 3.9.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if `value` is greater than `other`, + * else `false`. + * @see _.lt + * @example + * + * _.gt(3, 1); + * // => true + * + * _.gt(3, 3); + * // => false + * + * _.gt(1, 3); + * // => false + */ + var gt = createRelationalOperation(baseGt); + + /** + * Checks if `value` is greater than or equal to `other`. + * + * @static + * @memberOf _ + * @since 3.9.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if `value` is greater than or equal to + * `other`, else `false`. + * @see _.lte + * @example + * + * _.gte(3, 1); + * // => true + * + * _.gte(3, 3); + * // => true + * + * _.gte(1, 3); + * // => false + */ + var gte = createRelationalOperation(function(value, other) { + return value >= other; + }); + + /** + * Checks if `value` is likely an `arguments` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ + var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && + !propertyIsEnumerable.call(value, 'callee'); + }; + + /** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ + var isArray = Array.isArray; + + /** + * Checks if `value` is classified as an `ArrayBuffer` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`. + * @example + * + * _.isArrayBuffer(new ArrayBuffer(2)); + * // => true + * + * _.isArrayBuffer(new Array(2)); + * // => false + */ + var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer; + + /** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */ + function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); + } + + /** + * This method is like `_.isArrayLike` except that it also checks if `value` + * is an object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array-like object, + * else `false`. + * @example + * + * _.isArrayLikeObject([1, 2, 3]); + * // => true + * + * _.isArrayLikeObject(document.body.children); + * // => true + * + * _.isArrayLikeObject('abc'); + * // => false + * + * _.isArrayLikeObject(_.noop); + * // => false + */ + function isArrayLikeObject(value) { + return isObjectLike(value) && isArrayLike(value); + } + + /** + * Checks if `value` is classified as a boolean primitive or object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a boolean, else `false`. + * @example + * + * _.isBoolean(false); + * // => true + * + * _.isBoolean(null); + * // => false + */ + function isBoolean(value) { + return value === true || value === false || + (isObjectLike(value) && baseGetTag(value) == boolTag); + } + + /** + * Checks if `value` is a buffer. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. + * @example + * + * _.isBuffer(new Buffer(2)); + * // => true + * + * _.isBuffer(new Uint8Array(2)); + * // => false + */ + var isBuffer = nativeIsBuffer || stubFalse; + + /** + * Checks if `value` is classified as a `Date` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a date object, else `false`. + * @example + * + * _.isDate(new Date); + * // => true + * + * _.isDate('Mon April 23 2012'); + * // => false + */ + var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate; + + /** + * Checks if `value` is likely a DOM element. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`. + * @example + * + * _.isElement(document.body); + * // => true + * + * _.isElement(''); + * // => false + */ + function isElement(value) { + return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value); + } + + /** + * Checks if `value` is an empty object, collection, map, or set. + * + * Objects are considered empty if they have no own enumerable string keyed + * properties. + * + * Array-like values such as `arguments` objects, arrays, buffers, strings, or + * jQuery-like collections are considered empty if they have a `length` of `0`. + * Similarly, maps and sets are considered empty if they have a `size` of `0`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is empty, else `false`. + * @example + * + * _.isEmpty(null); + * // => true + * + * _.isEmpty(true); + * // => true + * + * _.isEmpty(1); + * // => true + * + * _.isEmpty([1, 2, 3]); + * // => false + * + * _.isEmpty({ 'a': 1 }); + * // => false + */ + function isEmpty(value) { + if (value == null) { + return true; + } + if (isArrayLike(value) && + (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' || + isBuffer(value) || isTypedArray(value) || isArguments(value))) { + return !value.length; + } + var tag = getTag(value); + if (tag == mapTag || tag == setTag) { + return !value.size; + } + if (isPrototype(value)) { + return !baseKeys(value).length; + } + for (var key in value) { + if (hasOwnProperty.call(value, key)) { + return false; + } + } + return true; + } + + /** + * Performs a deep comparison between two values to determine if they are + * equivalent. + * + * **Note:** This method supports comparing arrays, array buffers, booleans, + * date objects, error objects, maps, numbers, `Object` objects, regexes, + * sets, strings, symbols, and typed arrays. `Object` objects are compared + * by their own, not inherited, enumerable properties. Functions and DOM + * nodes are compared by strict equality, i.e. `===`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.isEqual(object, other); + * // => true + * + * object === other; + * // => false + */ + function isEqual(value, other) { + return baseIsEqual(value, other); + } + + /** + * This method is like `_.isEqual` except that it accepts `customizer` which + * is invoked to compare values. If `customizer` returns `undefined`, comparisons + * are handled by the method instead. The `customizer` is invoked with up to + * six arguments: (objValue, othValue [, index|key, object, other, stack]). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {Function} [customizer] The function to customize comparisons. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * function isGreeting(value) { + * return /^h(?:i|ello)$/.test(value); + * } + * + * function customizer(objValue, othValue) { + * if (isGreeting(objValue) && isGreeting(othValue)) { + * return true; + * } + * } + * + * var array = ['hello', 'goodbye']; + * var other = ['hi', 'goodbye']; + * + * _.isEqualWith(array, other, customizer); + * // => true + */ + function isEqualWith(value, other, customizer) { + customizer = typeof customizer == 'function' ? customizer : undefined; + var result = customizer ? customizer(value, other) : undefined; + return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result; + } + + /** + * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`, + * `SyntaxError`, `TypeError`, or `URIError` object. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an error object, else `false`. + * @example + * + * _.isError(new Error); + * // => true + * + * _.isError(Error); + * // => false + */ + function isError(value) { + if (!isObjectLike(value)) { + return false; + } + var tag = baseGetTag(value); + return tag == errorTag || tag == domExcTag || + (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value)); + } + + /** + * Checks if `value` is a finite primitive number. + * + * **Note:** This method is based on + * [`Number.isFinite`](https://mdn.io/Number/isFinite). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a finite number, else `false`. + * @example + * + * _.isFinite(3); + * // => true + * + * _.isFinite(Number.MIN_VALUE); + * // => true + * + * _.isFinite(Infinity); + * // => false + * + * _.isFinite('3'); + * // => false + */ + function isFinite(value) { + return typeof value == 'number' && nativeIsFinite(value); + } + + /** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ + function isFunction(value) { + if (!isObject(value)) { + return false; + } + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 9 which returns 'object' for typed arrays and other constructors. + var tag = baseGetTag(value); + return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; + } + + /** + * Checks if `value` is an integer. + * + * **Note:** This method is based on + * [`Number.isInteger`](https://mdn.io/Number/isInteger). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an integer, else `false`. + * @example + * + * _.isInteger(3); + * // => true + * + * _.isInteger(Number.MIN_VALUE); + * // => false + * + * _.isInteger(Infinity); + * // => false + * + * _.isInteger('3'); + * // => false + */ + function isInteger(value) { + return typeof value == 'number' && value == toInteger(value); + } + + /** + * Checks if `value` is a valid array-like length. + * + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false + */ + function isLength(value) { + return typeof value == 'number' && + value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + } + + /** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ + function isObject(value) { + var type = typeof value; + return value != null && (type == 'object' || type == 'function'); + } + + /** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ + function isObjectLike(value) { + return value != null && typeof value == 'object'; + } + + /** + * Checks if `value` is classified as a `Map` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a map, else `false`. + * @example + * + * _.isMap(new Map); + * // => true + * + * _.isMap(new WeakMap); + * // => false + */ + var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap; + + /** + * Performs a partial deep comparison between `object` and `source` to + * determine if `object` contains equivalent property values. + * + * **Note:** This method is equivalent to `_.matches` when `source` is + * partially applied. + * + * Partial comparisons will match empty array and empty object `source` + * values against any array or object value, respectively. See `_.isEqual` + * for a list of supported value comparisons. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {Object} object The object to inspect. + * @param {Object} source The object of property values to match. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * + * _.isMatch(object, { 'b': 2 }); + * // => true + * + * _.isMatch(object, { 'b': 1 }); + * // => false + */ + function isMatch(object, source) { + return object === source || baseIsMatch(object, source, getMatchData(source)); + } + + /** + * This method is like `_.isMatch` except that it accepts `customizer` which + * is invoked to compare values. If `customizer` returns `undefined`, comparisons + * are handled by the method instead. The `customizer` is invoked with five + * arguments: (objValue, srcValue, index|key, object, source). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {Object} object The object to inspect. + * @param {Object} source The object of property values to match. + * @param {Function} [customizer] The function to customize comparisons. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + * @example + * + * function isGreeting(value) { + * return /^h(?:i|ello)$/.test(value); + * } + * + * function customizer(objValue, srcValue) { + * if (isGreeting(objValue) && isGreeting(srcValue)) { + * return true; + * } + * } + * + * var object = { 'greeting': 'hello' }; + * var source = { 'greeting': 'hi' }; + * + * _.isMatchWith(object, source, customizer); + * // => true + */ + function isMatchWith(object, source, customizer) { + customizer = typeof customizer == 'function' ? customizer : undefined; + return baseIsMatch(object, source, getMatchData(source), customizer); + } + + /** + * Checks if `value` is `NaN`. + * + * **Note:** This method is based on + * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as + * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for + * `undefined` and other non-number values. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. + * @example + * + * _.isNaN(NaN); + * // => true + * + * _.isNaN(new Number(NaN)); + * // => true + * + * isNaN(undefined); + * // => true + * + * _.isNaN(undefined); + * // => false + */ + function isNaN(value) { + // An `NaN` primitive is the only value that is not equal to itself. + // Perform the `toStringTag` check first to avoid errors with some + // ActiveX objects in IE. + return isNumber(value) && value != +value; + } + + /** + * Checks if `value` is a pristine native function. + * + * **Note:** This method can't reliably detect native functions in the presence + * of the core-js package because core-js circumvents this kind of detection. + * Despite multiple requests, the core-js maintainer has made it clear: any + * attempt to fix the detection will be obstructed. As a result, we're left + * with little choice but to throw an error. Unfortunately, this also affects + * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill), + * which rely on core-js. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + * @example + * + * _.isNative(Array.prototype.push); + * // => true + * + * _.isNative(_); + * // => false + */ + function isNative(value) { + if (isMaskable(value)) { + throw new Error(CORE_ERROR_TEXT); + } + return baseIsNative(value); + } + + /** + * Checks if `value` is `null`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `null`, else `false`. + * @example + * + * _.isNull(null); + * // => true + * + * _.isNull(void 0); + * // => false + */ + function isNull(value) { + return value === null; + } + + /** + * Checks if `value` is `null` or `undefined`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is nullish, else `false`. + * @example + * + * _.isNil(null); + * // => true + * + * _.isNil(void 0); + * // => true + * + * _.isNil(NaN); + * // => false + */ + function isNil(value) { + return value == null; + } + + /** + * Checks if `value` is classified as a `Number` primitive or object. + * + * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are + * classified as numbers, use the `_.isFinite` method. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a number, else `false`. + * @example + * + * _.isNumber(3); + * // => true + * + * _.isNumber(Number.MIN_VALUE); + * // => true + * + * _.isNumber(Infinity); + * // => true + * + * _.isNumber('3'); + * // => false + */ + function isNumber(value) { + return typeof value == 'number' || + (isObjectLike(value) && baseGetTag(value) == numberTag); + } + + /** + * Checks if `value` is a plain object, that is, an object created by the + * `Object` constructor or one with a `[[Prototype]]` of `null`. + * + * @static + * @memberOf _ + * @since 0.8.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * _.isPlainObject(new Foo); + * // => false + * + * _.isPlainObject([1, 2, 3]); + * // => false + * + * _.isPlainObject({ 'x': 0, 'y': 0 }); + * // => true + * + * _.isPlainObject(Object.create(null)); + * // => true + */ + function isPlainObject(value) { + if (!isObjectLike(value) || baseGetTag(value) != objectTag) { + return false; + } + var proto = getPrototype(value); + if (proto === null) { + return true; + } + var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor; + return typeof Ctor == 'function' && Ctor instanceof Ctor && + funcToString.call(Ctor) == objectCtorString; + } + + /** + * Checks if `value` is classified as a `RegExp` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. + * @example + * + * _.isRegExp(/abc/); + * // => true + * + * _.isRegExp('/abc/'); + * // => false + */ + var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp; + + /** + * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754 + * double precision number which isn't the result of a rounded unsafe integer. + * + * **Note:** This method is based on + * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`. + * @example + * + * _.isSafeInteger(3); + * // => true + * + * _.isSafeInteger(Number.MIN_VALUE); + * // => false + * + * _.isSafeInteger(Infinity); + * // => false + * + * _.isSafeInteger('3'); + * // => false + */ + function isSafeInteger(value) { + return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER; + } + + /** + * Checks if `value` is classified as a `Set` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a set, else `false`. + * @example + * + * _.isSet(new Set); + * // => true + * + * _.isSet(new WeakSet); + * // => false + */ + var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet; + + /** + * Checks if `value` is classified as a `String` primitive or object. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a string, else `false`. + * @example + * + * _.isString('abc'); + * // => true + * + * _.isString(1); + * // => false + */ + function isString(value) { + return typeof value == 'string' || + (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag); + } + + /** + * Checks if `value` is classified as a `Symbol` primitive or object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false + */ + function isSymbol(value) { + return typeof value == 'symbol' || + (isObjectLike(value) && baseGetTag(value) == symbolTag); + } + + /** + * Checks if `value` is classified as a typed array. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + * @example + * + * _.isTypedArray(new Uint8Array); + * // => true + * + * _.isTypedArray([]); + * // => false + */ + var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; + + /** + * Checks if `value` is `undefined`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`. + * @example + * + * _.isUndefined(void 0); + * // => true + * + * _.isUndefined(null); + * // => false + */ + function isUndefined(value) { + return value === undefined; + } + + /** + * Checks if `value` is classified as a `WeakMap` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a weak map, else `false`. + * @example + * + * _.isWeakMap(new WeakMap); + * // => true + * + * _.isWeakMap(new Map); + * // => false + */ + function isWeakMap(value) { + return isObjectLike(value) && getTag(value) == weakMapTag; + } + + /** + * Checks if `value` is classified as a `WeakSet` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a weak set, else `false`. + * @example + * + * _.isWeakSet(new WeakSet); + * // => true + * + * _.isWeakSet(new Set); + * // => false + */ + function isWeakSet(value) { + return isObjectLike(value) && baseGetTag(value) == weakSetTag; + } + + /** + * Checks if `value` is less than `other`. + * + * @static + * @memberOf _ + * @since 3.9.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if `value` is less than `other`, + * else `false`. + * @see _.gt + * @example + * + * _.lt(1, 3); + * // => true + * + * _.lt(3, 3); + * // => false + * + * _.lt(3, 1); + * // => false + */ + var lt = createRelationalOperation(baseLt); + + /** + * Checks if `value` is less than or equal to `other`. + * + * @static + * @memberOf _ + * @since 3.9.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if `value` is less than or equal to + * `other`, else `false`. + * @see _.gte + * @example + * + * _.lte(1, 3); + * // => true + * + * _.lte(3, 3); + * // => true + * + * _.lte(3, 1); + * // => false + */ + var lte = createRelationalOperation(function(value, other) { + return value <= other; + }); + + /** + * Converts `value` to an array. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to convert. + * @returns {Array} Returns the converted array. + * @example + * + * _.toArray({ 'a': 1, 'b': 2 }); + * // => [1, 2] + * + * _.toArray('abc'); + * // => ['a', 'b', 'c'] + * + * _.toArray(1); + * // => [] + * + * _.toArray(null); + * // => [] + */ + function toArray(value) { + if (!value) { + return []; + } + if (isArrayLike(value)) { + return isString(value) ? stringToArray(value) : copyArray(value); + } + if (symIterator && value[symIterator]) { + return iteratorToArray(value[symIterator]()); + } + var tag = getTag(value), + func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values); + + return func(value); + } + + /** + * Converts `value` to a finite number. + * + * @static + * @memberOf _ + * @since 4.12.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted number. + * @example + * + * _.toFinite(3.2); + * // => 3.2 + * + * _.toFinite(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toFinite(Infinity); + * // => 1.7976931348623157e+308 + * + * _.toFinite('3.2'); + * // => 3.2 + */ + function toFinite(value) { + if (!value) { + return value === 0 ? value : 0; + } + value = toNumber(value); + if (value === INFINITY || value === -INFINITY) { + var sign = (value < 0 ? -1 : 1); + return sign * MAX_INTEGER; + } + return value === value ? value : 0; + } + + /** + * Converts `value` to an integer. + * + * **Note:** This method is loosely based on + * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted integer. + * @example + * + * _.toInteger(3.2); + * // => 3 + * + * _.toInteger(Number.MIN_VALUE); + * // => 0 + * + * _.toInteger(Infinity); + * // => 1.7976931348623157e+308 + * + * _.toInteger('3.2'); + * // => 3 + */ + function toInteger(value) { + var result = toFinite(value), + remainder = result % 1; + + return result === result ? (remainder ? result - remainder : result) : 0; + } + + /** + * Converts `value` to an integer suitable for use as the length of an + * array-like object. + * + * **Note:** This method is based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted integer. + * @example + * + * _.toLength(3.2); + * // => 3 + * + * _.toLength(Number.MIN_VALUE); + * // => 0 + * + * _.toLength(Infinity); + * // => 4294967295 + * + * _.toLength('3.2'); + * // => 3 + */ + function toLength(value) { + return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0; + } + + /** + * Converts `value` to a number. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to process. + * @returns {number} Returns the number. + * @example + * + * _.toNumber(3.2); + * // => 3.2 + * + * _.toNumber(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toNumber(Infinity); + * // => Infinity + * + * _.toNumber('3.2'); + * // => 3.2 + */ + function toNumber(value) { + if (typeof value == 'number') { + return value; + } + if (isSymbol(value)) { + return NAN; + } + if (isObject(value)) { + var other = typeof value.valueOf == 'function' ? value.valueOf() : value; + value = isObject(other) ? (other + '') : other; + } + if (typeof value != 'string') { + return value === 0 ? value : +value; + } + value = value.replace(reTrim, ''); + var isBinary = reIsBinary.test(value); + return (isBinary || reIsOctal.test(value)) + ? freeParseInt(value.slice(2), isBinary ? 2 : 8) + : (reIsBadHex.test(value) ? NAN : +value); + } + + /** + * Converts `value` to a plain object flattening inherited enumerable string + * keyed properties of `value` to own properties of the plain object. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {Object} Returns the converted plain object. + * @example + * + * function Foo() { + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.assign({ 'a': 1 }, new Foo); + * // => { 'a': 1, 'b': 2 } + * + * _.assign({ 'a': 1 }, _.toPlainObject(new Foo)); + * // => { 'a': 1, 'b': 2, 'c': 3 } + */ + function toPlainObject(value) { + return copyObject(value, keysIn(value)); + } + + /** + * Converts `value` to a safe integer. A safe integer can be compared and + * represented correctly. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted integer. + * @example + * + * _.toSafeInteger(3.2); + * // => 3 + * + * _.toSafeInteger(Number.MIN_VALUE); + * // => 0 + * + * _.toSafeInteger(Infinity); + * // => 9007199254740991 + * + * _.toSafeInteger('3.2'); + * // => 3 + */ + function toSafeInteger(value) { + return value + ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER) + : (value === 0 ? value : 0); + } + + /** + * Converts `value` to a string. An empty string is returned for `null` + * and `undefined` values. The sign of `-0` is preserved. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + * @example + * + * _.toString(null); + * // => '' + * + * _.toString(-0); + * // => '-0' + * + * _.toString([1, 2, 3]); + * // => '1,2,3' + */ + function toString(value) { + return value == null ? '' : baseToString(value); + } + + /*------------------------------------------------------------------------*/ + + /** + * Assigns own enumerable string keyed properties of source objects to the + * destination object. Source objects are applied from left to right. + * Subsequent sources overwrite property assignments of previous sources. + * + * **Note:** This method mutates `object` and is loosely based on + * [`Object.assign`](https://mdn.io/Object/assign). + * + * @static + * @memberOf _ + * @since 0.10.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @see _.assignIn + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * function Bar() { + * this.c = 3; + * } + * + * Foo.prototype.b = 2; + * Bar.prototype.d = 4; + * + * _.assign({ 'a': 0 }, new Foo, new Bar); + * // => { 'a': 1, 'c': 3 } + */ + var assign = createAssigner(function(object, source) { + if (isPrototype(source) || isArrayLike(source)) { + copyObject(source, keys(source), object); + return; + } + for (var key in source) { + if (hasOwnProperty.call(source, key)) { + assignValue(object, key, source[key]); + } + } + }); + + /** + * This method is like `_.assign` except that it iterates over own and + * inherited source properties. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @alias extend + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @see _.assign + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * function Bar() { + * this.c = 3; + * } + * + * Foo.prototype.b = 2; + * Bar.prototype.d = 4; + * + * _.assignIn({ 'a': 0 }, new Foo, new Bar); + * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 } + */ + var assignIn = createAssigner(function(object, source) { + copyObject(source, keysIn(source), object); + }); + + /** + * This method is like `_.assignIn` except that it accepts `customizer` + * which is invoked to produce the assigned values. If `customizer` returns + * `undefined`, assignment is handled by the method instead. The `customizer` + * is invoked with five arguments: (objValue, srcValue, key, object, source). + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @alias extendWith + * @category Object + * @param {Object} object The destination object. + * @param {...Object} sources The source objects. + * @param {Function} [customizer] The function to customize assigned values. + * @returns {Object} Returns `object`. + * @see _.assignWith + * @example + * + * function customizer(objValue, srcValue) { + * return _.isUndefined(objValue) ? srcValue : objValue; + * } + * + * var defaults = _.partialRight(_.assignInWith, customizer); + * + * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); + * // => { 'a': 1, 'b': 2 } + */ + var assignInWith = createAssigner(function(object, source, srcIndex, customizer) { + copyObject(source, keysIn(source), object, customizer); + }); + + /** + * This method is like `_.assign` except that it accepts `customizer` + * which is invoked to produce the assigned values. If `customizer` returns + * `undefined`, assignment is handled by the method instead. The `customizer` + * is invoked with five arguments: (objValue, srcValue, key, object, source). + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} sources The source objects. + * @param {Function} [customizer] The function to customize assigned values. + * @returns {Object} Returns `object`. + * @see _.assignInWith + * @example + * + * function customizer(objValue, srcValue) { + * return _.isUndefined(objValue) ? srcValue : objValue; + * } + * + * var defaults = _.partialRight(_.assignWith, customizer); + * + * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); + * // => { 'a': 1, 'b': 2 } + */ + var assignWith = createAssigner(function(object, source, srcIndex, customizer) { + copyObject(source, keys(source), object, customizer); + }); + + /** + * Creates an array of values corresponding to `paths` of `object`. + * + * @static + * @memberOf _ + * @since 1.0.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {...(string|string[])} [paths] The property paths to pick. + * @returns {Array} Returns the picked values. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] }; + * + * _.at(object, ['a[0].b.c', 'a[1]']); + * // => [3, 4] + */ + var at = flatRest(baseAt); + + /** + * Creates an object that inherits from the `prototype` object. If a + * `properties` object is given, its own enumerable string keyed properties + * are assigned to the created object. + * + * @static + * @memberOf _ + * @since 2.3.0 + * @category Object + * @param {Object} prototype The object to inherit from. + * @param {Object} [properties] The properties to assign to the object. + * @returns {Object} Returns the new object. + * @example + * + * function Shape() { + * this.x = 0; + * this.y = 0; + * } + * + * function Circle() { + * Shape.call(this); + * } + * + * Circle.prototype = _.create(Shape.prototype, { + * 'constructor': Circle + * }); + * + * var circle = new Circle; + * circle instanceof Circle; + * // => true + * + * circle instanceof Shape; + * // => true + */ + function create(prototype, properties) { + var result = baseCreate(prototype); + return properties == null ? result : baseAssign(result, properties); + } + + /** + * Assigns own and inherited enumerable string keyed properties of source + * objects to the destination object for all destination properties that + * resolve to `undefined`. Source objects are applied from left to right. + * Once a property is set, additional values of the same property are ignored. + * + * **Note:** This method mutates `object`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @see _.defaultsDeep + * @example + * + * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); + * // => { 'a': 1, 'b': 2 } + */ + var defaults = baseRest(function(object, sources) { + object = Object(object); + + var index = -1; + var length = sources.length; + var guard = length > 2 ? sources[2] : undefined; + + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + length = 1; + } + + while (++index < length) { + var source = sources[index]; + var props = keysIn(source); + var propsIndex = -1; + var propsLength = props.length; + + while (++propsIndex < propsLength) { + var key = props[propsIndex]; + var value = object[key]; + + if (value === undefined || + (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) { + object[key] = source[key]; + } + } + } + + return object; + }); + + /** + * This method is like `_.defaults` except that it recursively assigns + * default properties. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 3.10.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @see _.defaults + * @example + * + * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } }); + * // => { 'a': { 'b': 2, 'c': 3 } } + */ + var defaultsDeep = baseRest(function(args) { + args.push(undefined, customDefaultsMerge); + return apply(mergeWith, undefined, args); + }); + + /** + * This method is like `_.find` except that it returns the key of the first + * element `predicate` returns truthy for instead of the element itself. + * + * @static + * @memberOf _ + * @since 1.1.0 + * @category Object + * @param {Object} object The object to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {string|undefined} Returns the key of the matched element, + * else `undefined`. + * @example + * + * var users = { + * 'barney': { 'age': 36, 'active': true }, + * 'fred': { 'age': 40, 'active': false }, + * 'pebbles': { 'age': 1, 'active': true } + * }; + * + * _.findKey(users, function(o) { return o.age < 40; }); + * // => 'barney' (iteration order is not guaranteed) + * + * // The `_.matches` iteratee shorthand. + * _.findKey(users, { 'age': 1, 'active': true }); + * // => 'pebbles' + * + * // The `_.matchesProperty` iteratee shorthand. + * _.findKey(users, ['active', false]); + * // => 'fred' + * + * // The `_.property` iteratee shorthand. + * _.findKey(users, 'active'); + * // => 'barney' + */ + function findKey(object, predicate) { + return baseFindKey(object, getIteratee(predicate, 3), baseForOwn); + } + + /** + * This method is like `_.findKey` except that it iterates over elements of + * a collection in the opposite order. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Object + * @param {Object} object The object to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {string|undefined} Returns the key of the matched element, + * else `undefined`. + * @example + * + * var users = { + * 'barney': { 'age': 36, 'active': true }, + * 'fred': { 'age': 40, 'active': false }, + * 'pebbles': { 'age': 1, 'active': true } + * }; + * + * _.findLastKey(users, function(o) { return o.age < 40; }); + * // => returns 'pebbles' assuming `_.findKey` returns 'barney' + * + * // The `_.matches` iteratee shorthand. + * _.findLastKey(users, { 'age': 36, 'active': true }); + * // => 'barney' + * + * // The `_.matchesProperty` iteratee shorthand. + * _.findLastKey(users, ['active', false]); + * // => 'fred' + * + * // The `_.property` iteratee shorthand. + * _.findLastKey(users, 'active'); + * // => 'pebbles' + */ + function findLastKey(object, predicate) { + return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight); + } + + /** + * Iterates over own and inherited enumerable string keyed properties of an + * object and invokes `iteratee` for each property. The iteratee is invoked + * with three arguments: (value, key, object). Iteratee functions may exit + * iteration early by explicitly returning `false`. + * + * @static + * @memberOf _ + * @since 0.3.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Object} Returns `object`. + * @see _.forInRight + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.forIn(new Foo, function(value, key) { + * console.log(key); + * }); + * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed). + */ + function forIn(object, iteratee) { + return object == null + ? object + : baseFor(object, getIteratee(iteratee, 3), keysIn); + } + + /** + * This method is like `_.forIn` except that it iterates over properties of + * `object` in the opposite order. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Object} Returns `object`. + * @see _.forIn + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.forInRight(new Foo, function(value, key) { + * console.log(key); + * }); + * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'. + */ + function forInRight(object, iteratee) { + return object == null + ? object + : baseForRight(object, getIteratee(iteratee, 3), keysIn); + } + + /** + * Iterates over own enumerable string keyed properties of an object and + * invokes `iteratee` for each property. The iteratee is invoked with three + * arguments: (value, key, object). Iteratee functions may exit iteration + * early by explicitly returning `false`. + * + * @static + * @memberOf _ + * @since 0.3.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Object} Returns `object`. + * @see _.forOwnRight + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.forOwn(new Foo, function(value, key) { + * console.log(key); + * }); + * // => Logs 'a' then 'b' (iteration order is not guaranteed). + */ + function forOwn(object, iteratee) { + return object && baseForOwn(object, getIteratee(iteratee, 3)); + } + + /** + * This method is like `_.forOwn` except that it iterates over properties of + * `object` in the opposite order. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Object} Returns `object`. + * @see _.forOwn + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.forOwnRight(new Foo, function(value, key) { + * console.log(key); + * }); + * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'. + */ + function forOwnRight(object, iteratee) { + return object && baseForOwnRight(object, getIteratee(iteratee, 3)); + } + + /** + * Creates an array of function property names from own enumerable properties + * of `object`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to inspect. + * @returns {Array} Returns the function names. + * @see _.functionsIn + * @example + * + * function Foo() { + * this.a = _.constant('a'); + * this.b = _.constant('b'); + * } + * + * Foo.prototype.c = _.constant('c'); + * + * _.functions(new Foo); + * // => ['a', 'b'] + */ + function functions(object) { + return object == null ? [] : baseFunctions(object, keys(object)); + } + + /** + * Creates an array of function property names from own and inherited + * enumerable properties of `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to inspect. + * @returns {Array} Returns the function names. + * @see _.functions + * @example + * + * function Foo() { + * this.a = _.constant('a'); + * this.b = _.constant('b'); + * } + * + * Foo.prototype.c = _.constant('c'); + * + * _.functionsIn(new Foo); + * // => ['a', 'b', 'c'] + */ + function functionsIn(object) { + return object == null ? [] : baseFunctions(object, keysIn(object)); + } + + /** + * Gets the value at `path` of `object`. If the resolved value is + * `undefined`, the `defaultValue` is returned in its place. + * + * @static + * @memberOf _ + * @since 3.7.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @param {*} [defaultValue] The value returned for `undefined` resolved values. + * @returns {*} Returns the resolved value. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.get(object, 'a[0].b.c'); + * // => 3 + * + * _.get(object, ['a', '0', 'b', 'c']); + * // => 3 + * + * _.get(object, 'a.b.c', 'default'); + * // => 'default' + */ + function get(object, path, defaultValue) { + var result = object == null ? undefined : baseGet(object, path); + return result === undefined ? defaultValue : result; + } + + /** + * Checks if `path` is a direct property of `object`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + * @example + * + * var object = { 'a': { 'b': 2 } }; + * var other = _.create({ 'a': _.create({ 'b': 2 }) }); + * + * _.has(object, 'a'); + * // => true + * + * _.has(object, 'a.b'); + * // => true + * + * _.has(object, ['a', 'b']); + * // => true + * + * _.has(other, 'a'); + * // => false + */ + function has(object, path) { + return object != null && hasPath(object, path, baseHas); + } + + /** + * Checks if `path` is a direct or inherited property of `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + * @example + * + * var object = _.create({ 'a': _.create({ 'b': 2 }) }); + * + * _.hasIn(object, 'a'); + * // => true + * + * _.hasIn(object, 'a.b'); + * // => true + * + * _.hasIn(object, ['a', 'b']); + * // => true + * + * _.hasIn(object, 'b'); + * // => false + */ + function hasIn(object, path) { + return object != null && hasPath(object, path, baseHasIn); + } + + /** + * Creates an object composed of the inverted keys and values of `object`. + * If `object` contains duplicate values, subsequent values overwrite + * property assignments of previous values. + * + * @static + * @memberOf _ + * @since 0.7.0 + * @category Object + * @param {Object} object The object to invert. + * @returns {Object} Returns the new inverted object. + * @example + * + * var object = { 'a': 1, 'b': 2, 'c': 1 }; + * + * _.invert(object); + * // => { '1': 'c', '2': 'b' } + */ + var invert = createInverter(function(result, value, key) { + if (value != null && + typeof value.toString != 'function') { + value = nativeObjectToString.call(value); + } + + result[value] = key; + }, constant(identity)); + + /** + * This method is like `_.invert` except that the inverted object is generated + * from the results of running each element of `object` thru `iteratee`. The + * corresponding inverted value of each inverted key is an array of keys + * responsible for generating the inverted value. The iteratee is invoked + * with one argument: (value). + * + * @static + * @memberOf _ + * @since 4.1.0 + * @category Object + * @param {Object} object The object to invert. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Object} Returns the new inverted object. + * @example + * + * var object = { 'a': 1, 'b': 2, 'c': 1 }; + * + * _.invertBy(object); + * // => { '1': ['a', 'c'], '2': ['b'] } + * + * _.invertBy(object, function(value) { + * return 'group' + value; + * }); + * // => { 'group1': ['a', 'c'], 'group2': ['b'] } + */ + var invertBy = createInverter(function(result, value, key) { + if (value != null && + typeof value.toString != 'function') { + value = nativeObjectToString.call(value); + } + + if (hasOwnProperty.call(result, value)) { + result[value].push(key); + } else { + result[value] = [key]; + } + }, getIteratee); + + /** + * Invokes the method at `path` of `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the method to invoke. + * @param {...*} [args] The arguments to invoke the method with. + * @returns {*} Returns the result of the invoked method. + * @example + * + * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] }; + * + * _.invoke(object, 'a[0].b.c.slice', 1, 3); + * // => [2, 3] + */ + var invoke = baseRest(baseInvoke); + + /** + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * for more details. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] + */ + function keys(object) { + return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); + } + + /** + * Creates an array of the own and inherited enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keysIn(new Foo); + * // => ['a', 'b', 'c'] (iteration order is not guaranteed) + */ + function keysIn(object) { + return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); + } + + /** + * The opposite of `_.mapValues`; this method creates an object with the + * same values as `object` and keys generated by running each own enumerable + * string keyed property of `object` thru `iteratee`. The iteratee is invoked + * with three arguments: (value, key, object). + * + * @static + * @memberOf _ + * @since 3.8.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Object} Returns the new mapped object. + * @see _.mapValues + * @example + * + * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) { + * return key + value; + * }); + * // => { 'a1': 1, 'b2': 2 } + */ + function mapKeys(object, iteratee) { + var result = {}; + iteratee = getIteratee(iteratee, 3); + + baseForOwn(object, function(value, key, object) { + baseAssignValue(result, iteratee(value, key, object), value); + }); + return result; + } + + /** + * Creates an object with the same keys as `object` and values generated + * by running each own enumerable string keyed property of `object` thru + * `iteratee`. The iteratee is invoked with three arguments: + * (value, key, object). + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Object} Returns the new mapped object. + * @see _.mapKeys + * @example + * + * var users = { + * 'fred': { 'user': 'fred', 'age': 40 }, + * 'pebbles': { 'user': 'pebbles', 'age': 1 } + * }; + * + * _.mapValues(users, function(o) { return o.age; }); + * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) + * + * // The `_.property` iteratee shorthand. + * _.mapValues(users, 'age'); + * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) + */ + function mapValues(object, iteratee) { + var result = {}; + iteratee = getIteratee(iteratee, 3); + + baseForOwn(object, function(value, key, object) { + baseAssignValue(result, key, iteratee(value, key, object)); + }); + return result; + } + + /** + * This method is like `_.assign` except that it recursively merges own and + * inherited enumerable string keyed properties of source objects into the + * destination object. Source properties that resolve to `undefined` are + * skipped if a destination value exists. Array and plain object properties + * are merged recursively. Other objects and value types are overridden by + * assignment. Source objects are applied from left to right. Subsequent + * sources overwrite property assignments of previous sources. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 0.5.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @example + * + * var object = { + * 'a': [{ 'b': 2 }, { 'd': 4 }] + * }; + * + * var other = { + * 'a': [{ 'c': 3 }, { 'e': 5 }] + * }; + * + * _.merge(object, other); + * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] } + */ + var merge = createAssigner(function(object, source, srcIndex) { + baseMerge(object, source, srcIndex); + }); + + /** + * This method is like `_.merge` except that it accepts `customizer` which + * is invoked to produce the merged values of the destination and source + * properties. If `customizer` returns `undefined`, merging is handled by the + * method instead. The `customizer` is invoked with six arguments: + * (objValue, srcValue, key, object, source, stack). + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} sources The source objects. + * @param {Function} customizer The function to customize assigned values. + * @returns {Object} Returns `object`. + * @example + * + * function customizer(objValue, srcValue) { + * if (_.isArray(objValue)) { + * return objValue.concat(srcValue); + * } + * } + * + * var object = { 'a': [1], 'b': [2] }; + * var other = { 'a': [3], 'b': [4] }; + * + * _.mergeWith(object, other, customizer); + * // => { 'a': [1, 3], 'b': [2, 4] } + */ + var mergeWith = createAssigner(function(object, source, srcIndex, customizer) { + baseMerge(object, source, srcIndex, customizer); + }); + + /** + * The opposite of `_.pick`; this method creates an object composed of the + * own and inherited enumerable property paths of `object` that are not omitted. + * + * **Note:** This method is considerably slower than `_.pick`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The source object. + * @param {...(string|string[])} [paths] The property paths to omit. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.omit(object, ['a', 'c']); + * // => { 'b': '2' } + */ + var omit = flatRest(function(object, paths) { + var result = {}; + if (object == null) { + return result; + } + var isDeep = false; + paths = arrayMap(paths, function(path) { + path = castPath(path, object); + isDeep || (isDeep = path.length > 1); + return path; + }); + copyObject(object, getAllKeysIn(object), result); + if (isDeep) { + result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone); + } + var length = paths.length; + while (length--) { + baseUnset(result, paths[length]); + } + return result; + }); + + /** + * The opposite of `_.pickBy`; this method creates an object composed of + * the own and inherited enumerable string keyed properties of `object` that + * `predicate` doesn't return truthy for. The predicate is invoked with two + * arguments: (value, key). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The source object. + * @param {Function} [predicate=_.identity] The function invoked per property. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.omitBy(object, _.isNumber); + * // => { 'b': '2' } + */ + function omitBy(object, predicate) { + return pickBy(object, negate(getIteratee(predicate))); + } + + /** + * Creates an object composed of the picked `object` properties. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The source object. + * @param {...(string|string[])} [paths] The property paths to pick. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.pick(object, ['a', 'c']); + * // => { 'a': 1, 'c': 3 } + */ + var pick = flatRest(function(object, paths) { + return object == null ? {} : basePick(object, paths); + }); + + /** + * Creates an object composed of the `object` properties `predicate` returns + * truthy for. The predicate is invoked with two arguments: (value, key). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The source object. + * @param {Function} [predicate=_.identity] The function invoked per property. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.pickBy(object, _.isNumber); + * // => { 'a': 1, 'c': 3 } + */ + function pickBy(object, predicate) { + if (object == null) { + return {}; + } + var props = arrayMap(getAllKeysIn(object), function(prop) { + return [prop]; + }); + predicate = getIteratee(predicate); + return basePickBy(object, props, function(value, path) { + return predicate(value, path[0]); + }); + } + + /** + * This method is like `_.get` except that if the resolved value is a + * function it's invoked with the `this` binding of its parent object and + * its result is returned. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to resolve. + * @param {*} [defaultValue] The value returned for `undefined` resolved values. + * @returns {*} Returns the resolved value. + * @example + * + * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] }; + * + * _.result(object, 'a[0].b.c1'); + * // => 3 + * + * _.result(object, 'a[0].b.c2'); + * // => 4 + * + * _.result(object, 'a[0].b.c3', 'default'); + * // => 'default' + * + * _.result(object, 'a[0].b.c3', _.constant('default')); + * // => 'default' + */ + function result(object, path, defaultValue) { + path = castPath(path, object); + + var index = -1, + length = path.length; + + // Ensure the loop is entered when path is empty. + if (!length) { + length = 1; + object = undefined; + } + while (++index < length) { + var value = object == null ? undefined : object[toKey(path[index])]; + if (value === undefined) { + index = length; + value = defaultValue; + } + object = isFunction(value) ? value.call(object) : value; + } + return object; + } + + /** + * Sets the value at `path` of `object`. If a portion of `path` doesn't exist, + * it's created. Arrays are created for missing index properties while objects + * are created for all other missing properties. Use `_.setWith` to customize + * `path` creation. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 3.7.0 + * @category Object + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {*} value The value to set. + * @returns {Object} Returns `object`. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.set(object, 'a[0].b.c', 4); + * console.log(object.a[0].b.c); + * // => 4 + * + * _.set(object, ['x', '0', 'y', 'z'], 5); + * console.log(object.x[0].y.z); + * // => 5 + */ + function set(object, path, value) { + return object == null ? object : baseSet(object, path, value); + } + + /** + * This method is like `_.set` except that it accepts `customizer` which is + * invoked to produce the objects of `path`. If `customizer` returns `undefined` + * path creation is handled by the method instead. The `customizer` is invoked + * with three arguments: (nsValue, key, nsObject). + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {*} value The value to set. + * @param {Function} [customizer] The function to customize assigned values. + * @returns {Object} Returns `object`. + * @example + * + * var object = {}; + * + * _.setWith(object, '[0][1]', 'a', Object); + * // => { '0': { '1': 'a' } } + */ + function setWith(object, path, value, customizer) { + customizer = typeof customizer == 'function' ? customizer : undefined; + return object == null ? object : baseSet(object, path, value, customizer); + } + + /** + * Creates an array of own enumerable string keyed-value pairs for `object` + * which can be consumed by `_.fromPairs`. If `object` is a map or set, its + * entries are returned. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @alias entries + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the key-value pairs. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.toPairs(new Foo); + * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed) + */ + var toPairs = createToPairs(keys); + + /** + * Creates an array of own and inherited enumerable string keyed-value pairs + * for `object` which can be consumed by `_.fromPairs`. If `object` is a map + * or set, its entries are returned. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @alias entriesIn + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the key-value pairs. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.toPairsIn(new Foo); + * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed) + */ + var toPairsIn = createToPairs(keysIn); + + /** + * An alternative to `_.reduce`; this method transforms `object` to a new + * `accumulator` object which is the result of running each of its own + * enumerable string keyed properties thru `iteratee`, with each invocation + * potentially mutating the `accumulator` object. If `accumulator` is not + * provided, a new object with the same `[[Prototype]]` will be used. The + * iteratee is invoked with four arguments: (accumulator, value, key, object). + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * @static + * @memberOf _ + * @since 1.3.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @param {*} [accumulator] The custom accumulator value. + * @returns {*} Returns the accumulated value. + * @example + * + * _.transform([2, 3, 4], function(result, n) { + * result.push(n *= n); + * return n % 2 == 0; + * }, []); + * // => [4, 9] + * + * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { + * (result[value] || (result[value] = [])).push(key); + * }, {}); + * // => { '1': ['a', 'c'], '2': ['b'] } + */ + function transform(object, iteratee, accumulator) { + var isArr = isArray(object), + isArrLike = isArr || isBuffer(object) || isTypedArray(object); + + iteratee = getIteratee(iteratee, 4); + if (accumulator == null) { + var Ctor = object && object.constructor; + if (isArrLike) { + accumulator = isArr ? new Ctor : []; + } + else if (isObject(object)) { + accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {}; + } + else { + accumulator = {}; + } + } + (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) { + return iteratee(accumulator, value, index, object); + }); + return accumulator; + } + + /** + * Removes the property at `path` of `object`. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to unset. + * @returns {boolean} Returns `true` if the property is deleted, else `false`. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 7 } }] }; + * _.unset(object, 'a[0].b.c'); + * // => true + * + * console.log(object); + * // => { 'a': [{ 'b': {} }] }; + * + * _.unset(object, ['a', '0', 'b', 'c']); + * // => true + * + * console.log(object); + * // => { 'a': [{ 'b': {} }] }; + */ + function unset(object, path) { + return object == null ? true : baseUnset(object, path); + } + + /** + * This method is like `_.set` except that accepts `updater` to produce the + * value to set. Use `_.updateWith` to customize `path` creation. The `updater` + * is invoked with one argument: (value). + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.6.0 + * @category Object + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {Function} updater The function to produce the updated value. + * @returns {Object} Returns `object`. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.update(object, 'a[0].b.c', function(n) { return n * n; }); + * console.log(object.a[0].b.c); + * // => 9 + * + * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; }); + * console.log(object.x[0].y.z); + * // => 0 + */ + function update(object, path, updater) { + return object == null ? object : baseUpdate(object, path, castFunction(updater)); + } + + /** + * This method is like `_.update` except that it accepts `customizer` which is + * invoked to produce the objects of `path`. If `customizer` returns `undefined` + * path creation is handled by the method instead. The `customizer` is invoked + * with three arguments: (nsValue, key, nsObject). + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.6.0 + * @category Object + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {Function} updater The function to produce the updated value. + * @param {Function} [customizer] The function to customize assigned values. + * @returns {Object} Returns `object`. + * @example + * + * var object = {}; + * + * _.updateWith(object, '[0][1]', _.constant('a'), Object); + * // => { '0': { '1': 'a' } } + */ + function updateWith(object, path, updater, customizer) { + customizer = typeof customizer == 'function' ? customizer : undefined; + return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer); + } + + /** + * Creates an array of the own enumerable string keyed property values of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property values. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.values(new Foo); + * // => [1, 2] (iteration order is not guaranteed) + * + * _.values('hi'); + * // => ['h', 'i'] + */ + function values(object) { + return object == null ? [] : baseValues(object, keys(object)); + } + + /** + * Creates an array of the own and inherited enumerable string keyed property + * values of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property values. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.valuesIn(new Foo); + * // => [1, 2, 3] (iteration order is not guaranteed) + */ + function valuesIn(object) { + return object == null ? [] : baseValues(object, keysIn(object)); + } + + /*------------------------------------------------------------------------*/ + + /** + * Clamps `number` within the inclusive `lower` and `upper` bounds. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Number + * @param {number} number The number to clamp. + * @param {number} [lower] The lower bound. + * @param {number} upper The upper bound. + * @returns {number} Returns the clamped number. + * @example + * + * _.clamp(-10, -5, 5); + * // => -5 + * + * _.clamp(10, -5, 5); + * // => 5 + */ + function clamp(number, lower, upper) { + if (upper === undefined) { + upper = lower; + lower = undefined; + } + if (upper !== undefined) { + upper = toNumber(upper); + upper = upper === upper ? upper : 0; + } + if (lower !== undefined) { + lower = toNumber(lower); + lower = lower === lower ? lower : 0; + } + return baseClamp(toNumber(number), lower, upper); + } + + /** + * Checks if `n` is between `start` and up to, but not including, `end`. If + * `end` is not specified, it's set to `start` with `start` then set to `0`. + * If `start` is greater than `end` the params are swapped to support + * negative ranges. + * + * @static + * @memberOf _ + * @since 3.3.0 + * @category Number + * @param {number} number The number to check. + * @param {number} [start=0] The start of the range. + * @param {number} end The end of the range. + * @returns {boolean} Returns `true` if `number` is in the range, else `false`. + * @see _.range, _.rangeRight + * @example + * + * _.inRange(3, 2, 4); + * // => true + * + * _.inRange(4, 8); + * // => true + * + * _.inRange(4, 2); + * // => false + * + * _.inRange(2, 2); + * // => false + * + * _.inRange(1.2, 2); + * // => true + * + * _.inRange(5.2, 4); + * // => false + * + * _.inRange(-3, -2, -6); + * // => true + */ + function inRange(number, start, end) { + start = toFinite(start); + if (end === undefined) { + end = start; + start = 0; + } else { + end = toFinite(end); + } + number = toNumber(number); + return baseInRange(number, start, end); + } + + /** + * Produces a random number between the inclusive `lower` and `upper` bounds. + * If only one argument is provided a number between `0` and the given number + * is returned. If `floating` is `true`, or either `lower` or `upper` are + * floats, a floating-point number is returned instead of an integer. + * + * **Note:** JavaScript follows the IEEE-754 standard for resolving + * floating-point values which can produce unexpected results. + * + * @static + * @memberOf _ + * @since 0.7.0 + * @category Number + * @param {number} [lower=0] The lower bound. + * @param {number} [upper=1] The upper bound. + * @param {boolean} [floating] Specify returning a floating-point number. + * @returns {number} Returns the random number. + * @example + * + * _.random(0, 5); + * // => an integer between 0 and 5 + * + * _.random(5); + * // => also an integer between 0 and 5 + * + * _.random(5, true); + * // => a floating-point number between 0 and 5 + * + * _.random(1.2, 5.2); + * // => a floating-point number between 1.2 and 5.2 + */ + function random(lower, upper, floating) { + if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) { + upper = floating = undefined; + } + if (floating === undefined) { + if (typeof upper == 'boolean') { + floating = upper; + upper = undefined; + } + else if (typeof lower == 'boolean') { + floating = lower; + lower = undefined; + } + } + if (lower === undefined && upper === undefined) { + lower = 0; + upper = 1; + } + else { + lower = toFinite(lower); + if (upper === undefined) { + upper = lower; + lower = 0; + } else { + upper = toFinite(upper); + } + } + if (lower > upper) { + var temp = lower; + lower = upper; + upper = temp; + } + if (floating || lower % 1 || upper % 1) { + var rand = nativeRandom(); + return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper); + } + return baseRandom(lower, upper); + } + + /*------------------------------------------------------------------------*/ + + /** + * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to convert. + * @returns {string} Returns the camel cased string. + * @example + * + * _.camelCase('Foo Bar'); + * // => 'fooBar' + * + * _.camelCase('--foo-bar--'); + * // => 'fooBar' + * + * _.camelCase('__FOO_BAR__'); + * // => 'fooBar' + */ + var camelCase = createCompounder(function(result, word, index) { + word = word.toLowerCase(); + return result + (index ? capitalize(word) : word); + }); + + /** + * Converts the first character of `string` to upper case and the remaining + * to lower case. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to capitalize. + * @returns {string} Returns the capitalized string. + * @example + * + * _.capitalize('FRED'); + * // => 'Fred' + */ + function capitalize(string) { + return upperFirst(toString(string).toLowerCase()); + } + + /** + * Deburrs `string` by converting + * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table) + * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A) + * letters to basic Latin letters and removing + * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to deburr. + * @returns {string} Returns the deburred string. + * @example + * + * _.deburr('déjà vu'); + * // => 'deja vu' + */ + function deburr(string) { + string = toString(string); + return string && string.replace(reLatin, deburrLetter).replace(reComboMark, ''); + } + + /** + * Checks if `string` ends with the given target string. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to inspect. + * @param {string} [target] The string to search for. + * @param {number} [position=string.length] The position to search up to. + * @returns {boolean} Returns `true` if `string` ends with `target`, + * else `false`. + * @example + * + * _.endsWith('abc', 'c'); + * // => true + * + * _.endsWith('abc', 'b'); + * // => false + * + * _.endsWith('abc', 'b', 2); + * // => true + */ + function endsWith(string, target, position) { + string = toString(string); + target = baseToString(target); + + var length = string.length; + position = position === undefined + ? length + : baseClamp(toInteger(position), 0, length); + + var end = position; + position -= target.length; + return position >= 0 && string.slice(position, end) == target; + } + + /** + * Converts the characters "&", "<", ">", '"', and "'" in `string` to their + * corresponding HTML entities. + * + * **Note:** No other characters are escaped. To escape additional + * characters use a third-party library like [_he_](https://mths.be/he). + * + * Though the ">" character is escaped for symmetry, characters like + * ">" and "/" don't need escaping in HTML and have no special meaning + * unless they're part of a tag or unquoted attribute value. See + * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands) + * (under "semi-related fun fact") for more details. + * + * When working with HTML you should always + * [quote attribute values](http://wonko.com/post/html-escaping) to reduce + * XSS vectors. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category String + * @param {string} [string=''] The string to escape. + * @returns {string} Returns the escaped string. + * @example + * + * _.escape('fred, barney, & pebbles'); + * // => 'fred, barney, & pebbles' + */ + function escape(string) { + string = toString(string); + return (string && reHasUnescapedHtml.test(string)) + ? string.replace(reUnescapedHtml, escapeHtmlChar) + : string; + } + + /** + * Escapes the `RegExp` special characters "^", "$", "\", ".", "*", "+", + * "?", "(", ")", "[", "]", "{", "}", and "|" in `string`. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to escape. + * @returns {string} Returns the escaped string. + * @example + * + * _.escapeRegExp('[lodash](https://lodash.com/)'); + * // => '\[lodash\]\(https://lodash\.com/\)' + */ + function escapeRegExp(string) { + string = toString(string); + return (string && reHasRegExpChar.test(string)) + ? string.replace(reRegExpChar, '\\$&') + : string; + } + + /** + * Converts `string` to + * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to convert. + * @returns {string} Returns the kebab cased string. + * @example + * + * _.kebabCase('Foo Bar'); + * // => 'foo-bar' + * + * _.kebabCase('fooBar'); + * // => 'foo-bar' + * + * _.kebabCase('__FOO_BAR__'); + * // => 'foo-bar' + */ + var kebabCase = createCompounder(function(result, word, index) { + return result + (index ? '-' : '') + word.toLowerCase(); + }); + + /** + * Converts `string`, as space separated words, to lower case. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category String + * @param {string} [string=''] The string to convert. + * @returns {string} Returns the lower cased string. + * @example + * + * _.lowerCase('--Foo-Bar--'); + * // => 'foo bar' + * + * _.lowerCase('fooBar'); + * // => 'foo bar' + * + * _.lowerCase('__FOO_BAR__'); + * // => 'foo bar' + */ + var lowerCase = createCompounder(function(result, word, index) { + return result + (index ? ' ' : '') + word.toLowerCase(); + }); + + /** + * Converts the first character of `string` to lower case. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category String + * @param {string} [string=''] The string to convert. + * @returns {string} Returns the converted string. + * @example + * + * _.lowerFirst('Fred'); + * // => 'fred' + * + * _.lowerFirst('FRED'); + * // => 'fRED' + */ + var lowerFirst = createCaseFirst('toLowerCase'); + + /** + * Pads `string` on the left and right sides if it's shorter than `length`. + * Padding characters are truncated if they can't be evenly divided by `length`. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to pad. + * @param {number} [length=0] The padding length. + * @param {string} [chars=' '] The string used as padding. + * @returns {string} Returns the padded string. + * @example + * + * _.pad('abc', 8); + * // => ' abc ' + * + * _.pad('abc', 8, '_-'); + * // => '_-abc_-_' + * + * _.pad('abc', 3); + * // => 'abc' + */ + function pad(string, length, chars) { + string = toString(string); + length = toInteger(length); + + var strLength = length ? stringSize(string) : 0; + if (!length || strLength >= length) { + return string; + } + var mid = (length - strLength) / 2; + return ( + createPadding(nativeFloor(mid), chars) + + string + + createPadding(nativeCeil(mid), chars) + ); + } + + /** + * Pads `string` on the right side if it's shorter than `length`. Padding + * characters are truncated if they exceed `length`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category String + * @param {string} [string=''] The string to pad. + * @param {number} [length=0] The padding length. + * @param {string} [chars=' '] The string used as padding. + * @returns {string} Returns the padded string. + * @example + * + * _.padEnd('abc', 6); + * // => 'abc ' + * + * _.padEnd('abc', 6, '_-'); + * // => 'abc_-_' + * + * _.padEnd('abc', 3); + * // => 'abc' + */ + function padEnd(string, length, chars) { + string = toString(string); + length = toInteger(length); + + var strLength = length ? stringSize(string) : 0; + return (length && strLength < length) + ? (string + createPadding(length - strLength, chars)) + : string; + } + + /** + * Pads `string` on the left side if it's shorter than `length`. Padding + * characters are truncated if they exceed `length`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category String + * @param {string} [string=''] The string to pad. + * @param {number} [length=0] The padding length. + * @param {string} [chars=' '] The string used as padding. + * @returns {string} Returns the padded string. + * @example + * + * _.padStart('abc', 6); + * // => ' abc' + * + * _.padStart('abc', 6, '_-'); + * // => '_-_abc' + * + * _.padStart('abc', 3); + * // => 'abc' + */ + function padStart(string, length, chars) { + string = toString(string); + length = toInteger(length); + + var strLength = length ? stringSize(string) : 0; + return (length && strLength < length) + ? (createPadding(length - strLength, chars) + string) + : string; + } + + /** + * Converts `string` to an integer of the specified radix. If `radix` is + * `undefined` or `0`, a `radix` of `10` is used unless `value` is a + * hexadecimal, in which case a `radix` of `16` is used. + * + * **Note:** This method aligns with the + * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`. + * + * @static + * @memberOf _ + * @since 1.1.0 + * @category String + * @param {string} string The string to convert. + * @param {number} [radix=10] The radix to interpret `value` by. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {number} Returns the converted integer. + * @example + * + * _.parseInt('08'); + * // => 8 + * + * _.map(['6', '08', '10'], _.parseInt); + * // => [6, 8, 10] + */ + function parseInt(string, radix, guard) { + if (guard || radix == null) { + radix = 0; + } else if (radix) { + radix = +radix; + } + return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0); + } + + /** + * Repeats the given string `n` times. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to repeat. + * @param {number} [n=1] The number of times to repeat the string. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {string} Returns the repeated string. + * @example + * + * _.repeat('*', 3); + * // => '***' + * + * _.repeat('abc', 2); + * // => 'abcabc' + * + * _.repeat('abc', 0); + * // => '' + */ + function repeat(string, n, guard) { + if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) { + n = 1; + } else { + n = toInteger(n); + } + return baseRepeat(toString(string), n); + } + + /** + * Replaces matches for `pattern` in `string` with `replacement`. + * + * **Note:** This method is based on + * [`String#replace`](https://mdn.io/String/replace). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category String + * @param {string} [string=''] The string to modify. + * @param {RegExp|string} pattern The pattern to replace. + * @param {Function|string} replacement The match replacement. + * @returns {string} Returns the modified string. + * @example + * + * _.replace('Hi Fred', 'Fred', 'Barney'); + * // => 'Hi Barney' + */ + function replace() { + var args = arguments, + string = toString(args[0]); + + return args.length < 3 ? string : string.replace(args[1], args[2]); + } + + /** + * Converts `string` to + * [snake case](https://en.wikipedia.org/wiki/Snake_case). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to convert. + * @returns {string} Returns the snake cased string. + * @example + * + * _.snakeCase('Foo Bar'); + * // => 'foo_bar' + * + * _.snakeCase('fooBar'); + * // => 'foo_bar' + * + * _.snakeCase('--FOO-BAR--'); + * // => 'foo_bar' + */ + var snakeCase = createCompounder(function(result, word, index) { + return result + (index ? '_' : '') + word.toLowerCase(); + }); + + /** + * Splits `string` by `separator`. + * + * **Note:** This method is based on + * [`String#split`](https://mdn.io/String/split). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category String + * @param {string} [string=''] The string to split. + * @param {RegExp|string} separator The separator pattern to split by. + * @param {number} [limit] The length to truncate results to. + * @returns {Array} Returns the string segments. + * @example + * + * _.split('a-b-c', '-', 2); + * // => ['a', 'b'] + */ + function split(string, separator, limit) { + if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) { + separator = limit = undefined; + } + limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0; + if (!limit) { + return []; + } + string = toString(string); + if (string && ( + typeof separator == 'string' || + (separator != null && !isRegExp(separator)) + )) { + separator = baseToString(separator); + if (!separator && hasUnicode(string)) { + return castSlice(stringToArray(string), 0, limit); + } + } + return string.split(separator, limit); + } + + /** + * Converts `string` to + * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage). + * + * @static + * @memberOf _ + * @since 3.1.0 + * @category String + * @param {string} [string=''] The string to convert. + * @returns {string} Returns the start cased string. + * @example + * + * _.startCase('--foo-bar--'); + * // => 'Foo Bar' + * + * _.startCase('fooBar'); + * // => 'Foo Bar' + * + * _.startCase('__FOO_BAR__'); + * // => 'FOO BAR' + */ + var startCase = createCompounder(function(result, word, index) { + return result + (index ? ' ' : '') + upperFirst(word); + }); + + /** + * Checks if `string` starts with the given target string. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to inspect. + * @param {string} [target] The string to search for. + * @param {number} [position=0] The position to search from. + * @returns {boolean} Returns `true` if `string` starts with `target`, + * else `false`. + * @example + * + * _.startsWith('abc', 'a'); + * // => true + * + * _.startsWith('abc', 'b'); + * // => false + * + * _.startsWith('abc', 'b', 1); + * // => true + */ + function startsWith(string, target, position) { + string = toString(string); + position = position == null + ? 0 + : baseClamp(toInteger(position), 0, string.length); + + target = baseToString(target); + return string.slice(position, position + target.length) == target; + } + + /** + * Creates a compiled template function that can interpolate data properties + * in "interpolate" delimiters, HTML-escape interpolated data properties in + * "escape" delimiters, and execute JavaScript in "evaluate" delimiters. Data + * properties may be accessed as free variables in the template. If a setting + * object is given, it takes precedence over `_.templateSettings` values. + * + * **Note:** In the development build `_.template` utilizes + * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl) + * for easier debugging. + * + * For more information on precompiling templates see + * [lodash's custom builds documentation](https://lodash.com/custom-builds). + * + * For more information on Chrome extension sandboxes see + * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval). + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category String + * @param {string} [string=''] The template string. + * @param {Object} [options={}] The options object. + * @param {RegExp} [options.escape=_.templateSettings.escape] + * The HTML "escape" delimiter. + * @param {RegExp} [options.evaluate=_.templateSettings.evaluate] + * The "evaluate" delimiter. + * @param {Object} [options.imports=_.templateSettings.imports] + * An object to import into the template as free variables. + * @param {RegExp} [options.interpolate=_.templateSettings.interpolate] + * The "interpolate" delimiter. + * @param {string} [options.sourceURL='lodash.templateSources[n]'] + * The sourceURL of the compiled template. + * @param {string} [options.variable='obj'] + * The data object variable name. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Function} Returns the compiled template function. + * @example + * + * // Use the "interpolate" delimiter to create a compiled template. + * var compiled = _.template('hello <%= user %>!'); + * compiled({ 'user': 'fred' }); + * // => 'hello fred!' + * + * // Use the HTML "escape" delimiter to escape data property values. + * var compiled = _.template('<%- value %>'); + * compiled({ 'value': ' + +``` +Next, we'll get the user input from an input, listening to the keyup event by using the `Rx.Observable.fromEvent` method. This will either use the event binding from [jQuery](http://jquery.com), [Zepto](http://zeptojs.com/), [AngularJS](https://angularjs.org/), [Backbone.js](http://backbonejs.org/) and [Ember.js](http://emberjs.com/) if available, and if not, falls back to the native event binding. This gives you consistent ways of thinking of events depending on your framework, so there are no surprises. + +```js +const $input = $('#input'); +const $results = $('#results'); + +/* Only get the value from each key up */ +var keyups = Rx.Observable.fromEvent($input, 'keyup') + .pluck('target', 'value') + .filter(text => text.length > 2 ); + +/* Now debounce the input for 500ms */ +var debounced = keyups + .debounce(500 /* ms */); + +/* Now get only distinct values, so we eliminate the arrows and other control characters */ +var distinct = debounced + .distinctUntilChanged(); +``` + +Now, let's query Wikipedia! In RxJS, we can instantly bind to any [Promises A+](https://github.com/promises-aplus/promises-spec) implementation through the `Rx.Observable.fromPromise` method. Or, directly return it and RxJS will wrap it for you. + +```js +function searchWikipedia (term) { + return $.ajax({ + url: 'https://en.wikipedia.org/w/api.php', + dataType: 'jsonp', + data: { + action: 'opensearch', + format: 'json', + search: term + } + }).promise(); +} +``` + +Once that is created, we can tie together the distinct throttled input and query the service. In this case, we'll call `flatMapLatest` to get the value and ensure we're not introducing any out of order sequence calls. + +```js +var suggestions = distinct + .flatMapLatest(searchWikipedia); +``` + +Finally, we call the `subscribe` method on our observable sequence to start pulling data. + +```js +suggestions.subscribe( + data => { + $results + .empty() + .append($.map(data[1], value => $('
  • ').text(value))) + }, + error=> { + $results + .empty() + .append($('
  • ')) + .text('Error:' + error); + }); +``` + +And there you have it! + +## Dive In! ## + +Please check out: + + - [Our Code of Conduct](https://github.com/Reactive-Extensions/RxJS/tree/master/code-of-conduct.md) + - [The full documentation](https://github.com/Reactive-Extensions/RxJS/tree/master/doc) + - [Our many great examples](https://github.com/Reactive-Extensions/RxJS/tree/master/examples) + - [Our design guidelines](https://github.com/Reactive-Extensions/RxJS/tree/master/doc/designguidelines) + - [Our contribution guidelines](https://github.com/Reactive-Extensions/RxJS/tree/master/contributing.md) + - [Our complete Unit Tests](https://github.com/Reactive-Extensions/RxJS/tree/master/tests) + - [Our recipes](https://github.com/Reactive-Extensions/RxJS/wiki/Recipes) + +## Resources + +- Contact us + - [Twitter @ReactiveX](https://twitter.com/ReactiveX) + - [Gitter.im](https://gitter.im/Reactive-Extensions/RxJS) + - [StackOverflow rxjs](http://stackoverflow.com/questions/tagged/rxjs) + +- Tutorials + - [The introduction to Reactive Programming you've been missing](https://gist.github.com/staltz/868e7e9bc2a7b8c1f754) + - [2 minute introduction to Rx](https://medium.com/@andrestaltz/2-minute-introduction-to-rx-24c8ca793877) + - [Learn RxJS - @jhusain](https://github.com/jhusain/learnrx) + - [RxJS Koans](https://github.com/Reactive-Extensions/RxJSKoans) + - [RxJS Workshop from BuildStuff 2014](https://github.com/Reactive-Extensions/BuildStuffWorkshop) + - [Rx Workshop](http://rxworkshop.codeplex.com/) + - [Reactive Programming and MVC](http://aaronstacy.com/writings/reactive-programming-and-mvc/) + - [RxJS lessons - egghead.io](https://egghead.io/technologies/rx) + - [RxJS Training - @andrestaltz](https://github.com/staltz/rxjs-training) + +- Reference Material + - [Rx Marbles](http://rxmarbles.com/) + - [RxJS GitBook](http://xgrommx.github.io/rx-book//) + - [Intro to Rx](http://introtorx.com/) + - [101 Rx Samples Wiki](http://rxwiki.wikidot.com/101samples) + - [RxJS Design Guidelines](https://github.com/Reactive-Extensions/RxJS/tree/master/doc/designguidelines) + - [Visualizing Reactive Streams](http://jaredforsyth.com/2015/03/06/visualizing-reactive-streams-hot-and-cold/) + - [Your Mouse is a Database](http://queue.acm.org/detail.cfm?id=2169076) + +- Essential tools + - [RxVision](http://jaredforsyth.com/rxvision/) + - [Percussion](https://github.com/grisendo/Percussion) + +- Books + - [RxJS](http://xgrommx.github.io/rx-book/) + - [Intro to Rx](http://www.amazon.com/Introduction-to-Rx-ebook/dp/B008GM3YPM/) + - [Programming Reactive Extensions and LINQ](http://www.amazon.com/Programming-Reactive-Extensions-Jesse-Liberty/dp/1430237473/) + - [Reactive Programming with RxJS](https://pragprog.com/book/smreactjs/reactive-programming-with-rxjs) + +- [Community Examples](examples/community.md) +- [Presentations](examples/presentations.md) +- [Videos and Podcasts](examples/videos.md) + +## Getting Started + +There are a number of ways to get started with RxJS. The files are available on [cdnjs](http://cdnjs.com/libraries/rxjs/) and [jsDelivr](http://www.jsdelivr.com/#!rxjs). + +### Download the Source + +```bash +git clone https://github.com/Reactive-Extensions/rxjs.git +cd ./rxjs +``` + +### Installing with [NPM](https://www.npmjs.com/) + +```bash` +$ npm install rx +$ npm install -g rx +``` + +### Using with Node.js and Ringo.js + +```js +var Rx = require('rx'); +``` + +### Installing with [Bower](http://bower.io/) + +```bash +$ bower install rxjs +``` + +### Installing with [Jam](http://jamjs.org/) +```bash +$ jam install rx +``` +### Installing All of RxJS via [NuGet](http://www.nuget.org/) +```bash +$ Install-Package RxJS-All +``` +### Install individual packages via [NuGet](http://www.nuget.org/): + + Install-Package RxJS-All + Install-Package RxJS-Lite + Install-Package RxJS-Main + Install-Package RxJS-Aggregates + Install-Package RxJS-Async + Install-Package RxJS-BackPressure + Install-Package RxJS-Binding + Install-Package RxJS-Coincidence + Install-Package RxJS-Experimental + Install-Package RxJS-JoinPatterns + Install-Package RxJS-Testing + Install-Package RxJS-Time + +### In a Browser: + +```html + + + + + + + + +``` + +### Along with a number of our extras for RxJS: + +```html + + + + + + + + + + +``` + +### Using RxJS with an AMD loader such as Require.js + +```js +require({ + 'paths': { + 'rx': 'path/to/rx-lite.js' + } +}, +['rx'], (Rx) => { + const obs = Rx.Observable.of(42); + obs.forEach(x => console.log(x)); +}); +``` + +## What about my libraries? ## + +The Reactive Extensions for JavaScript have no external dependencies on any library, so they'll work well with just about any library. We provide bridges and support for various libraries including: +- [Node.js](https://www.npmjs.com/package/rx-node) +- [React](http://facebook.github.io/react/) + - [Rx-React](https://github.com/fdecampredon/rx-react) + - [RxReact](https://github.com/AlexMost/RxReact) + - [cycle-react](https://github.com/pH200/cycle-react) +- [Flux](http://facebook.github.io/flux/) + - [Rx-Flux](https://github.com/fdecampredon/rx-flux) + - [ReactiveFlux](https://github.com/codesuki/reactive-flux) + - [Thundercats.js](https://github.com/ThunderCatsJS/thundercats) + - [Flurx](https://github.com/qwtel/flurx) + - [RR](https://github.com/winsonwq/RR) +- [Ember](http://emberjs.com/) + - [RxEmber](https://github.com/blesh/RxEmber) +- [AngularJS](https://github.com/Reactive-Extensions/rx.angular.js) +- [HTML DOM](https://github.com/Reactive-Extensions/RxJS-DOM) +- [jQuery (1.4+)](https://github.com/Reactive-Extensions/RxJS-jQuery) +- [MooTools](https://github.com/Reactive-Extensions/RxJS-MooTools) +- [Dojo 1.7+](https://github.com/Reactive-Extensions/RxJS-Dojo) +- [ExtJS](https://github.com/Reactive-Extensions/RxJS-ExtJS) + +## Compatibility ## + +RxJS has been thoroughly tested against all major browsers and supports IE6+, Chrome 4+, FireFox 1+, and Node.js v0.4+. + +## Contributing ## + +There are lots of ways to contribute to the project, and we appreciate our [contributors](https://github.com/Reactive-Extensions/RxJS/wiki/Contributors). If you wish to contribute, check out our [style guide]((https://github.com/Reactive-Extensions/RxJS/tree/master/doc/contributing)). + +You can contribute by reviewing and sending feedback on code checkins, suggesting and trying out new features as they are implemented, submit bugs and help us verify fixes as they are checked in, as well as submit code fixes or code contributions of your own. Note that all code submissions will be rigorously reviewed and tested by the Rx Team, and only those that meet an extremely high bar for both quality and design/roadmap appropriateness will be merged into the source. + +First-time contributors must sign a [Contribution License Agreement](https://cla.microsoft.com/). If your Pull Request has the label [cla-required](https://github.com/Reactive-Extensions/RxJS/labels/cla-required), this is an indication that you haven't yet signed such an agreement. + +## License ## + +Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. +Microsoft Open Technologies would like to thank its contributors, a list +of whom are at https://github.com/Reactive-Extensions/RxJS/wiki/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/rx/ts/core/abstractobserver.ts b/node_modules/rx/ts/core/abstractobserver.ts new file mode 100644 index 0000000..ad403b1 --- /dev/null +++ b/node_modules/rx/ts/core/abstractobserver.ts @@ -0,0 +1,53 @@ +/// +/// +module Rx { + export module internals { + /** + * Abstract base class for implementations of the Observer class. + * This base class enforces the grammar of observers where OnError and OnCompleted are terminal messages. + */ + export interface AbstractObserver extends Rx.IObserver, Rx.IDisposable { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + + isStopped: boolean; + + /** + * Disposes the observer, causing it to transition to the stopped state. + */ + dispose(): void; + + fail(e: any): boolean; + + // Must be implemented by other observers + next(value: T): void; + error(error: any): void; + completed(): void; + } + + interface AbstractObserverStatic { + new (): AbstractObserver; + } + + export var AbstractObserver: AbstractObserverStatic + } +} + +(function() { + var iObserver: Rx.IObserver; + var abstractObserver: Rx.internals.AbstractObserver; + + iObserver = abstractObserver; +}); diff --git a/node_modules/rx/ts/core/anonymousobservable.ts b/node_modules/rx/ts/core/anonymousobservable.ts new file mode 100644 index 0000000..01a2416 --- /dev/null +++ b/node_modules/rx/ts/core/anonymousobservable.ts @@ -0,0 +1,11 @@ +/// +module Rx { + export interface AnonymousObservable extends Observable { } +} + +(function() { + var observable: Rx.Observable; + var anonymousObservable: Rx.AnonymousObservable; + + observable = anonymousObservable; +}); diff --git a/node_modules/rx/ts/core/anonymousobserver.ts b/node_modules/rx/ts/core/anonymousobserver.ts new file mode 100644 index 0000000..ea22c59 --- /dev/null +++ b/node_modules/rx/ts/core/anonymousobserver.ts @@ -0,0 +1,42 @@ +/// +module Rx { + /** + * Class to create an Observer instance from delegate-based implementations of the on* methods. + */ + export interface AnonymousObserver extends Observer { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + } + + interface AnonymousObserverStatic { + /** + * Creates an observer from the specified OnNext, OnError, and OnCompleted actions. + * @param {Any} onNext Observer's OnNext action implementation. + * @param {Any} onError Observer's OnError action implementation. + * @param {Any} onCompleted Observer's OnCompleted action implementation. + */ + new (onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): AnonymousObserver; + } + + export var AnonymousObserver : AnonymousObserverStatic; +} + + +(function() { + var iObserver: Rx.IObserver; + var anonymousObserver: Rx.AnonymousObserver; + + iObserver = anonymousObserver; +}); diff --git a/node_modules/rx/ts/core/backpressure/controlled.ts b/node_modules/rx/ts/core/backpressure/controlled.ts new file mode 100644 index 0000000..f8bbd53 --- /dev/null +++ b/node_modules/rx/ts/core/backpressure/controlled.ts @@ -0,0 +1,29 @@ +/// +/// +module Rx { + export interface Observable { + /** + * Attaches a controller to the observable sequence with the ability to queue. + * @example + * var source = Rx.Observable.interval(100).controlled(); + * source.request(3); // Reads 3 values + * @param {bool} enableQueue truthy value to determine if values should be queued pending the next request + * @param {Scheduler} scheduler determines how the requests will be scheduled + * @returns {Observable} The observable sequence which only propagates values on request. + */ + controlled(enableQueue?: boolean, scheduler?: IScheduler): ControlledObservable; + } + + export interface ControlledObservable extends Observable { + request(numberOfItems?: number): IDisposable; + } +} + +(function() { + var o: Rx.Observable; + var c = o.controlled(); + + var d: Rx.IDisposable = c.request(); + d = c.request(); + d = c.request(5); +}); diff --git a/node_modules/rx/ts/core/backpressure/pausable.ts b/node_modules/rx/ts/core/backpressure/pausable.ts new file mode 100644 index 0000000..de0d105 --- /dev/null +++ b/node_modules/rx/ts/core/backpressure/pausable.ts @@ -0,0 +1,29 @@ +/// +module Rx { + export interface Observable { + /** + * Pauses the underlying observable sequence based upon the observable sequence which yields true/false. + * @example + * var pauser = new Rx.Subject(); + * var source = Rx.Observable.interval(100).pausable(pauser); + * @param {Observable} pauser The observable sequence used to pause the underlying sequence. + * @returns {Observable} The observable sequence which is paused based upon the pauser. + */ + pausable(pauser?: Observable): PausableObservable; + } + + export interface PausableObservable extends Observable { + pause(): void; + resume(): void; + } +} + +(function() { + var o: Rx.Observable; + var b: Rx.Observable; + var c = o.pausable(); + var c = o.pausable(b); + + c.pause(); + c.resume(); +}) diff --git a/node_modules/rx/ts/core/backpressure/pausablebuffered.ts b/node_modules/rx/ts/core/backpressure/pausablebuffered.ts new file mode 100644 index 0000000..e019106 --- /dev/null +++ b/node_modules/rx/ts/core/backpressure/pausablebuffered.ts @@ -0,0 +1,22 @@ +/// +module Rx { + export interface Observable { + /** + * Pauses the underlying observable sequence based upon the observable sequence which yields true/false, + * and yields the values that were buffered while paused. + * @example + * var pauser = new Rx.Subject(); + * var source = Rx.Observable.interval(100).pausableBuffered(pauser); + * @param {Observable} pauser The observable sequence used to pause the underlying sequence. + * @returns {Observable} The observable sequence which is paused based upon the pauser. + */ + pausableBuffered(pauser?: Observable): PausableObservable; + } +} + +(function() { + var o: Rx.Observable; + var b: Rx.Observable; + var c = o.pausableBuffered(); + var c = o.pausableBuffered(b); +}) diff --git a/node_modules/rx/ts/core/backpressure/pauser.ts b/node_modules/rx/ts/core/backpressure/pauser.ts new file mode 100644 index 0000000..e4d64b2 --- /dev/null +++ b/node_modules/rx/ts/core/backpressure/pauser.ts @@ -0,0 +1,23 @@ +module Rx { + /** + * Used to pause and resume streams. + */ + export interface Pauser { + /** + * Pauses the underlying sequence. + */ + pause(): void; + + /** + * Resumes the underlying sequence. + */ + resume(): void; + } +} + +(function() { + var p: Rx.Pauser; + + p.pause; + p.resume; +}) diff --git a/node_modules/rx/ts/core/backpressure/stopandwait.ts b/node_modules/rx/ts/core/backpressure/stopandwait.ts new file mode 100644 index 0000000..6b05437 --- /dev/null +++ b/node_modules/rx/ts/core/backpressure/stopandwait.ts @@ -0,0 +1,16 @@ +/// +module Rx { + export interface ControlledObservable { + /** + * Attaches a stop and wait observable to the current observable. + * @returns {Observable} A stop and wait observable. + */ + stopAndWait(): Observable; + } +} + +(function() { + var observer: Rx.Observable; + var controlledObserver: Rx.ControlledObservable; + observer = controlledObserver.stopAndWait(); +}) diff --git a/node_modules/rx/ts/core/backpressure/windowed.ts b/node_modules/rx/ts/core/backpressure/windowed.ts new file mode 100644 index 0000000..00f9c35 --- /dev/null +++ b/node_modules/rx/ts/core/backpressure/windowed.ts @@ -0,0 +1,17 @@ +/// +module Rx { + export interface ControlledObservable { + /** + * Creates a sliding windowed observable based upon the window size. + * @param {Number} windowSize The number of items in the window + * @returns {Observable} A windowed observable based upon the window size. + */ + windowed(windowSize: number): Observable; + } +} + +(function() { + var observer: Rx.Observable; + var controlledObserver: Rx.ControlledObservable; + observer = controlledObserver.windowed(1); +}) diff --git a/node_modules/rx/ts/core/checkedobserver.ts b/node_modules/rx/ts/core/checkedobserver.ts new file mode 100644 index 0000000..01a216d --- /dev/null +++ b/node_modules/rx/ts/core/checkedobserver.ts @@ -0,0 +1,15 @@ +/// +module Rx { + export interface CheckedObserver extends Observer { + checkAccess(): void; + } +} + + +(function() { + var iObserver: Rx.IObserver; + var checkedObserver: Rx.CheckedObserver; + + iObserver = checkedObserver; + checkedObserver.checkAccess(); +}); diff --git a/node_modules/rx/ts/core/concurrency/currentthreadscheduler.ts b/node_modules/rx/ts/core/concurrency/currentthreadscheduler.ts new file mode 100644 index 0000000..1a12490 --- /dev/null +++ b/node_modules/rx/ts/core/concurrency/currentthreadscheduler.ts @@ -0,0 +1,17 @@ +/// +module Rx { + export interface ICurrentThreadScheduler extends IScheduler { + scheduleRequired(): boolean; + } + + export interface SchedulerStatic { + currentThread: ICurrentThreadScheduler; + } +} + +(function() { + var a: Rx.ICurrentThreadScheduler; + a.scheduleRequired(); + + a = Rx.Scheduler.currentThread; +}) diff --git a/node_modules/rx/ts/core/concurrency/defaultscheduler.ts b/node_modules/rx/ts/core/concurrency/defaultscheduler.ts new file mode 100644 index 0000000..5e4ba32 --- /dev/null +++ b/node_modules/rx/ts/core/concurrency/defaultscheduler.ts @@ -0,0 +1,13 @@ +/// +module Rx { + export interface SchedulerStatic { + default: IScheduler; + async: IScheduler; + } +} + +(function() { + var s : Rx.IScheduler; + s = Rx.Scheduler.async; + s = Rx.Scheduler.default; +}) diff --git a/node_modules/rx/ts/core/concurrency/historicalscheduler.ts b/node_modules/rx/ts/core/concurrency/historicalscheduler.ts new file mode 100644 index 0000000..b34aba6 --- /dev/null +++ b/node_modules/rx/ts/core/concurrency/historicalscheduler.ts @@ -0,0 +1,19 @@ +/// +module Rx { + export interface HistoricalScheduler extends VirtualTimeScheduler { + } + + export var HistoricalScheduler: { + /** + * Creates a new historical scheduler with the specified initial clock value. + * @constructor + * @param {Number} initialClock Initial value for the clock. + * @param {Function} comparer Comparer to determine causality of events based on absolute time. + */ + new (initialClock: number, comparer: _Comparer): HistoricalScheduler; + }; +} + +(function() { + var a: Rx.HistoricalScheduler = new Rx.HistoricalScheduler(1, (a, b) => 1); +}) diff --git a/node_modules/rx/ts/core/concurrency/immediatescheduler.ts b/node_modules/rx/ts/core/concurrency/immediatescheduler.ts new file mode 100644 index 0000000..6c22318 --- /dev/null +++ b/node_modules/rx/ts/core/concurrency/immediatescheduler.ts @@ -0,0 +1,11 @@ +/// +module Rx { + export interface SchedulerStatic { + immediate: IScheduler; + } +} + +(function() { + var s : Rx.IScheduler; + s = Rx.Scheduler.immediate; +}) diff --git a/node_modules/rx/ts/core/concurrency/scheduleditem.ts b/node_modules/rx/ts/core/concurrency/scheduleditem.ts new file mode 100644 index 0000000..8b45daa --- /dev/null +++ b/node_modules/rx/ts/core/concurrency/scheduleditem.ts @@ -0,0 +1,42 @@ +/// +/// +module Rx { + export module internals { + export interface ScheduledItem { + scheduler: IScheduler; + state: TTime; + action: (scheduler: IScheduler, state: any) => IDisposable; + dueTime: TTime; + comparer: (x: TTime, y: TTime) => number; + disposable: SingleAssignmentDisposable; + + invoke(): void; + compareTo(other: ScheduledItem): number; + isCancelled(): boolean; + invokeCore(): IDisposable; + } + + interface ScheduledItemStatic { + new (scheduler: IScheduler, state: any, action: (scheduler: IScheduler, state: any) => IDisposable, dueTime: TTime, comparer?: _Comparer):ScheduledItem; + } + + export var ScheduledItem: ScheduledItemStatic + } +} + +(function() { + var item = new Rx.internals.ScheduledItem(Rx.Scheduler.default, {}, (sc, s) => Rx.Disposable.create(() => {}), 100); + var item = new Rx.internals.ScheduledItem(Rx.Scheduler.default, {}, (sc, s) => Rx.Disposable.create(() => {}), 100, (x, y) => 500); + + item.scheduler + item.state; + item.action; + item.dueTime; + item.comparer; + item.disposable; + + item.invoke(); + var n: number = item.compareTo(item); + var b: boolean = item.isCancelled(); + var d : Rx.IDisposable= item.invokeCore(); +}) diff --git a/node_modules/rx/ts/core/concurrency/scheduleperiodicrecursive.ts b/node_modules/rx/ts/core/concurrency/scheduleperiodicrecursive.ts new file mode 100644 index 0000000..c8d341d --- /dev/null +++ b/node_modules/rx/ts/core/concurrency/scheduleperiodicrecursive.ts @@ -0,0 +1,20 @@ +/// +module Rx { + export module internals { + export interface SchedulePeriodicRecursive { + start(): IDisposable; + } + + interface SchedulePeriodicRecursiveStatic { + new (scheduler: any, state: any, period: any, action: any) : SchedulePeriodicRecursive; + } + + export var SchedulePeriodicRecursive: SchedulePeriodicRecursiveStatic; + } +} + +(function() { + var item = new Rx.internals.SchedulePeriodicRecursive(undefined, undefined, undefined, undefined); + + var d : Rx.IDisposable = item.start(); +}) diff --git a/node_modules/rx/ts/core/concurrency/scheduler.periodic.ts b/node_modules/rx/ts/core/concurrency/scheduler.periodic.ts new file mode 100644 index 0000000..44c22fd --- /dev/null +++ b/node_modules/rx/ts/core/concurrency/scheduler.periodic.ts @@ -0,0 +1,19 @@ +/// +module Rx { + export interface IScheduler { + /** + * Schedules a periodic piece of work by dynamically discovering the scheduler's capabilities. The periodic task will be scheduled using window.setInterval for the base implementation. + * @param {Mixed} state Initial state passed to the action upon the first iteration. + * @param {Number} period Period for running the work periodically. + * @param {Function} action Action to be executed, potentially updating the state. + * @returns {Disposable} The disposable object used to cancel the scheduled recurring action (best effort). + */ + schedulePeriodic(state: TState, period: number, action: (state: TState) => TState): IDisposable; + } +} + +(function() { + var s : Rx.IScheduler; + + var d : Rx.IDisposable = s.schedulePeriodic('state', 100, (s) => s); +}) diff --git a/node_modules/rx/ts/core/concurrency/scheduler.recursive.ts b/node_modules/rx/ts/core/concurrency/scheduler.recursive.ts new file mode 100644 index 0000000..4d53c98 --- /dev/null +++ b/node_modules/rx/ts/core/concurrency/scheduler.recursive.ts @@ -0,0 +1,28 @@ +/// +module Rx { + export interface IScheduler { + /** + * Schedules an action to be executed recursively. + * @param {Mixed} state State passed to the action to be executed. + * @param {Function} action Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in recursive invocation state. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + scheduleRecursive(state: TState, action: (state: TState, action: (state: TState) => void) => void): IDisposable; + + /** + * Schedules an action to be executed recursively after a specified relative due time. + * @param {Mixed} state State passed to the action to be executed. + * @param {Function} action Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in the recursive due time and invocation state. + * @param {Number}dueTime Relative time after which to execute the action for the first time. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + scheduleRecursiveFuture(state: TState, dueTime: TTime, action: (state: TState, action: (state: TState, dueTime: TTime) => void) => void): IDisposable; + } +} + +(function() { + var s: Rx.IScheduler; + + var d: Rx.IDisposable = s.scheduleRecursive('state', (s, a) => Rx.Disposable.empty); + var d: Rx.IDisposable = s.scheduleRecursiveFuture('state', 100, (s, a) => Rx.Disposable.empty); +}) diff --git a/node_modules/rx/ts/core/concurrency/scheduler.ts b/node_modules/rx/ts/core/concurrency/scheduler.ts new file mode 100644 index 0000000..ee7d6d2 --- /dev/null +++ b/node_modules/rx/ts/core/concurrency/scheduler.ts @@ -0,0 +1,51 @@ +/// +module Rx { + export interface IScheduler { + /** Gets the current time according to the local machine's system clock. */ + now(): number; + + /** + * Schedules an action to be executed. + * @param state State passed to the action to be executed. + * @param {Function} action Action to be executed. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + schedule(state: TState, action: (scheduler: IScheduler, state: TState) => IDisposable): IDisposable; + + /** + * Schedules an action to be executed after dueTime. + * @param state State passed to the action to be executed. + * @param {Function} action Action to be executed. + * @param {Number} dueTime Relative time after which to execute the action. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + scheduleFuture(state: TState, dueTime: number | Date, action: (scheduler: IScheduler, state: TState) => IDisposable): IDisposable; + } + + export interface SchedulerStatic { + /** Gets the current time according to the local machine's system clock. */ + now(): number; + + /** + * Normalizes the specified TimeSpan value to a positive value. + * @param {Number} timeSpan The time span value to normalize. + * @returns {Number} The specified TimeSpan value if it is zero or positive; otherwise, 0 + */ + normalize(timeSpan: number): number; + + /** Determines whether the given object is a scheduler */ + isScheduler(s: any): boolean; + } + + /** Provides a set of static properties to access commonly used schedulers. */ + export var Scheduler: SchedulerStatic; +} + +(function() { + var s: Rx.IScheduler; + + var d: Rx.IDisposable = s.schedule('state', (sh, s ) => Rx.Disposable.empty); + var d: Rx.IDisposable = s.scheduleFuture('state', 100, (sh, s ) => Rx.Disposable.empty); + var n : () => number = Rx.Scheduler.now; + var a : number = Rx.Scheduler.normalize(1000); +}) diff --git a/node_modules/rx/ts/core/concurrency/scheduler.wrappers.ts b/node_modules/rx/ts/core/concurrency/scheduler.wrappers.ts new file mode 100644 index 0000000..a5762b7 --- /dev/null +++ b/node_modules/rx/ts/core/concurrency/scheduler.wrappers.ts @@ -0,0 +1,15 @@ +/// +module Rx { + export interface IScheduler { + /** + * Returns a scheduler that wraps the original scheduler, adding exception handling for scheduled actions. + * @param {Function} handler Handler that's run if an exception is caught. The exception will be rethrown if the handler returns false. + * @returns {Scheduler} Wrapper around the original scheduler, enforcing exception handling. + */ + catch(handler: Function): IScheduler; + } +} + +(function() { + var s : Rx.IScheduler = Rx.Scheduler.default.catch(() => {}); +}) diff --git a/node_modules/rx/ts/core/concurrency/virtualtimescheduler.ts b/node_modules/rx/ts/core/concurrency/virtualtimescheduler.ts new file mode 100644 index 0000000..c40479d --- /dev/null +++ b/node_modules/rx/ts/core/concurrency/virtualtimescheduler.ts @@ -0,0 +1,82 @@ +/// +/// +/// +module Rx { + export interface VirtualTimeScheduler extends IScheduler { + /** + * Adds a relative time value to an absolute time value. + * @param {Number} absolute Absolute virtual time value. + * @param {Number} relative Relative virtual time value to add. + * @return {Number} Resulting absolute virtual time sum value. + */ + add(from: TAbsolute, by: TRelative): TAbsolute; + + /** + * Converts an absolute time to a number + * @param {Any} The absolute time. + * @returns {Number} The absolute time in ms + */ + toAbsoluteTime(duetime: TAbsolute): number; + + /** + * Converts the TimeSpan value to a relative virtual time value. + * @param {Number} timeSpan TimeSpan value to convert. + * @return {Number} Corresponding relative virtual time value. + */ + toRelativeTime(duetime: number): TRelative; + + /** + * Starts the virtual time scheduler. + */ + start(): IDisposable; + + /** + * Stops the virtual time scheduler. + */ + stop(): void; + + /** + * Advances the scheduler's clock to the specified time, running all work till that point. + * @param {Number} time Absolute time to advance the scheduler's clock to. + */ + advanceTo(time: TAbsolute): void; + + /** + * Advances the scheduler's clock by the specified relative time, running all work scheduled for that timespan. + * @param {Number} time Relative time to advance the scheduler's clock by. + */ + advanceBy(time: TRelative): void; + + /** + * Advances the scheduler's clock by the specified relative time. + * @param {Number} time Relative time to advance the scheduler's clock by. + */ + sleep(time: TRelative): void; + + isEnabled: boolean; + + /** + * Gets the next scheduled item to be executed. + * @returns {ScheduledItem} The next scheduled item. + */ + getNext(): internals.ScheduledItem; + } +} + +(function() { + interface TA { } + interface TR { } + var vts: Rx.VirtualTimeScheduler; + + var b: boolean = vts.isEnabled; + var a: TA = vts.add(100, 500); + var n: number = vts.toAbsoluteTime(1000); + var r: TR = vts.toRelativeTime(1000); + var d: Rx.IDisposable = vts.start(); + vts.stop(); + vts.advanceTo(null); + vts.advanceBy(null); + vts.sleep(null); + var i: Rx.internals.ScheduledItem = vts.getNext(); + b = vts.isEnabled; +}) diff --git a/node_modules/rx/ts/core/disposables/booleandisposable.ts b/node_modules/rx/ts/core/disposables/booleandisposable.ts new file mode 100644 index 0000000..eb46105 --- /dev/null +++ b/node_modules/rx/ts/core/disposables/booleandisposable.ts @@ -0,0 +1,52 @@ +/// +module Rx { + export interface SingleAssignmentDisposable { + /** Performs the task of cleaning up resources. */ + dispose(): void; + + /** Is this value disposed. */ + isDisposed: boolean; + + getDisposable(): IDisposable; + + setDisposable(value: IDisposable): void; + } + + interface SingleAssignmentDisposableStatic { + new() : SingleAssignmentDisposable; + } + + export var SingleAssignmentDisposable : SingleAssignmentDisposableStatic; + + export interface SerialDisposable { + /** Performs the task of cleaning up resources. */ + dispose(): void; + + /** Is this value disposed. */ + isDisposed: boolean; + + getDisposable(): IDisposable; + + setDisposable(value: IDisposable): void; + } + + interface SerialDisposableStatic { + new() : SerialDisposable; + } + + export var SerialDisposable : SerialDisposableStatic; +} + +(function() { + var sad: Rx.SingleAssignmentDisposable = new Rx.SingleAssignmentDisposable(); + sad.dispose(); + sad.isDisposed; + var d = sad.getDisposable(); + sad.setDisposable(d); + + var sad: Rx.SerialDisposable = new Rx.SerialDisposable(); + sad.dispose(); + sad.isDisposed; + var d = sad.getDisposable(); + sad.setDisposable(d); +}); diff --git a/node_modules/rx/ts/core/disposables/compositedisposable.ts b/node_modules/rx/ts/core/disposables/compositedisposable.ts new file mode 100644 index 0000000..d9cd56b --- /dev/null +++ b/node_modules/rx/ts/core/disposables/compositedisposable.ts @@ -0,0 +1,48 @@ +/// +module Rx { + /** + * Represents a group of disposable resources that are disposed together. + * @constructor + */ + export interface CompositeDisposable extends Disposable { + /** + * Adds a disposable to the CompositeDisposable or disposes the disposable if the CompositeDisposable is disposed. + * @param {Mixed} item Disposable to add. + */ + add(item: IDisposable): void; + + /** + * Removes and disposes the first occurrence of a disposable from the CompositeDisposable. + * @param {Mixed} item Disposable to remove. + * @returns {Boolean} true if found; false otherwise. + */ + remove(item: IDisposable): void; + } + + interface CompositeDisposableStatic { + /** + * Represents a group of disposable resources that are disposed together. + * @constructor + */ + new (...disposables: Rx.IDisposable[]): CompositeDisposable; + /** + * Represents a group of disposable resources that are disposed together. + * @constructor + */ + new(disposables: Rx.IDisposable[]): CompositeDisposable; + } + + export var CompositeDisposable: CompositeDisposableStatic; +} + +(function() { + var cd = new Rx.CompositeDisposable(); + var cd = new Rx.CompositeDisposable(Rx.Disposable.create(() => { })); + var cd = new Rx.CompositeDisposable([Rx.Disposable.create(() => { })]); + + cd.add(Rx.Disposable.create(() => { })); + cd.remove(Rx.Disposable.create(() => { })); + + cd.dispose(); + cd.isDisposed; +}) diff --git a/node_modules/rx/ts/core/disposables/disposable.ts b/node_modules/rx/ts/core/disposables/disposable.ts new file mode 100644 index 0000000..dbbab6c --- /dev/null +++ b/node_modules/rx/ts/core/disposables/disposable.ts @@ -0,0 +1,57 @@ +module Rx { + export interface IDisposable { + dispose(): void; + } + + export interface Disposable extends IDisposable { + /** Is this value disposed. */ + isDisposed?: boolean; + } + + interface DisposableStatic { + /** + * Provides a set of static methods for creating Disposables. + * @param {Function} dispose Action to run during the first call to dispose. The action is guaranteed to be run at most once. + */ + new (action: () => void): Disposable; + + /** + * Creates a disposable object that invokes the specified action when disposed. + * @param {Function} dispose Action to run during the first call to dispose. The action is guaranteed to be run at most once. + * @return {Disposable} The disposable object that runs the given action upon disposal. + */ + create(action: () => void): Disposable; + + /** + * Gets the disposable that does nothing when disposed. + */ + empty: IDisposable; + + /** + * Validates whether the given object is a disposable + * @param {Object} Object to test whether it has a dispose method + * @returns {Boolean} true if a disposable object, else false. + */ + isDisposable(d: any): boolean; + } + + /** + * Provides a set of static methods for creating Disposables. + * @param {Function} dispose Action to run during the first call to dispose. The action is guaranteed to be run at most once. + */ + export var Disposable: DisposableStatic; +} + +(function() { + var id: Rx.IDisposable; + var d : Rx.Disposable; + + id.dispose(); + d.dispose(); + + d.isDisposed; + + Rx.Disposable.create(() => {}) + Rx.Disposable.empty; + Rx.Disposable.isDisposable(d); +}) diff --git a/node_modules/rx/ts/core/disposables/refcountdisposable.ts b/node_modules/rx/ts/core/disposables/refcountdisposable.ts new file mode 100644 index 0000000..fa09b46 --- /dev/null +++ b/node_modules/rx/ts/core/disposables/refcountdisposable.ts @@ -0,0 +1,39 @@ +/// +module Rx { + /** + * Represents a disposable resource that only disposes its underlying disposable resource when all dependent disposable objects have been disposed. + */ + export interface RefCountDisposable extends Disposable { + + /** Performs the task of cleaning up resources. */ + dispose(): void; + + /** Is this value disposed. */ + isDisposed: boolean; + + /** + * Returns a dependent disposable that when disposed decreases the refcount on the underlying disposable. + * @returns {Disposable} A dependent disposable contributing to the reference count that manages the underlying disposable's lifetime. + */ + getDisposable(): IDisposable; + } + + interface RefCountDisposableStatic { + /** + * Initializes a new instance of the RefCountDisposable with the specified disposable. + * @constructor + * @param {Disposable} disposable Underlying disposable. + */ + new(disposable: IDisposable): RefCountDisposable; + } + + export var RefCountDisposable : RefCountDisposableStatic; +} + +(function() { + var d = Rx.Disposable.create(() => {}); + var rcd = new Rx.RefCountDisposable(d); + d = rcd.getDisposable(); + rcd.dispose(); + rcd.isDisposed; +}) diff --git a/node_modules/rx/ts/core/es5.ts b/node_modules/rx/ts/core/es5.ts new file mode 100644 index 0000000..3732b21 --- /dev/null +++ b/node_modules/rx/ts/core/es5.ts @@ -0,0 +1,32 @@ +module Rx { + // Type alias for observables and promises + export type ObservableOrPromise = IObservable | Observable | Promise; + + export type ArrayLike = Array | { length: number;[index: number]: T; }; + + // Type alias for arrays and array like objects + export type ArrayOrIterable = ArrayLike; + + /** + * Promise A+ + */ + export interface Promise { + then(onFulfilled: (value: T) => R|Promise, onRejected: (error: any) => Promise): Promise; + then(onFulfilled: (value: T) => R|Promise, onRejected?: (error: any) => R): Promise; + } + + /** + * Promise A+ + */ + export interface IPromise extends Promise { } + + /** + * Represents a push-style collection. + */ + export interface IObservable { } + + /** + * Represents a push-style collection. + */ + export interface Observable extends IObservable { } +} diff --git a/node_modules/rx/ts/core/es6-iterable.d.ts b/node_modules/rx/ts/core/es6-iterable.d.ts new file mode 100644 index 0000000..6a602a9 --- /dev/null +++ b/node_modules/rx/ts/core/es6-iterable.d.ts @@ -0,0 +1,197 @@ +interface Symbol { + /** Returns a string representation of an object. */ + toString(): string; + + /** Returns the primitive value of the specified object. */ + valueOf(): Object; + + [Symbol.toStringTag]: string; +} + +interface SymbolConstructor { + /** + * A reference to the prototype. + */ + prototype: Symbol; + + /** + * Returns a new unique Symbol value. + * @param description Description of the new Symbol object. + */ + (description?: string|number): symbol; + + /** + * Returns a Symbol object from the global symbol registry matching the given key if found. + * Otherwise, returns a new symbol with this key. + * @param key key to search for. + */ + for(key: string): symbol; + + /** + * Returns a key from the global symbol registry matching the given Symbol if found. + * Otherwise, returns a undefined. + * @param sym Symbol to find the key for. + */ + keyFor(sym: symbol): string; + + // Well-known Symbols + + /** + * A method that determines if a constructor object recognizes an object as one of the + * constructor’s instances. Called by the semantics of the instanceof operator. + */ + hasInstance: symbol; + + /** + * A Boolean value that if true indicates that an object should flatten to its array elements + * by Array.prototype.concat. + */ + isConcatSpreadable: symbol; + + /** + * A method that returns the default iterator for an object. Called by the semantics of the + * for-of statement. + */ + iterator: symbol; + + /** + * A regular expression method that matches the regular expression against a string. Called + * by the String.prototype.match method. + */ + match: symbol; + + /** + * A regular expression method that replaces matched substrings of a string. Called by the + * String.prototype.replace method. + */ + replace: symbol; + + /** + * A regular expression method that returns the index within a string that matches the + * regular expression. Called by the String.prototype.search method. + */ + search: symbol; + + /** + * A function valued property that is the constructor function that is used to create + * derived objects. + */ + species: symbol; + + /** + * A regular expression method that splits a string at the indices that match the regular + * expression. Called by the String.prototype.split method. + */ + split: symbol; + + /** + * A method that converts an object to a corresponding primitive value.Called by the ToPrimitive + * abstract operation. + */ + toPrimitive: symbol; + + /** + * A String value that is used in the creation of the default string description of an object. + * Called by the built-in method Object.prototype.toString. + */ + toStringTag: symbol; + + /** + * An Object whose own property names are property names that are excluded from the with + * environment bindings of the associated objects. + */ + unscopables: symbol; +} +declare var Symbol: SymbolConstructor; + +interface IteratorResult { + done: boolean; + value?: T; +} + +interface Iterator { + next(value?: any): IteratorResult; + return?(value?: any): IteratorResult; + throw?(e?: any): IteratorResult; +} + +interface Iterable { + [Symbol.iterator](): Iterator; +} + +interface IterableIterator extends Iterator { + [Symbol.iterator](): IterableIterator; +} + +interface WeakMap { + clear(): void; + delete(key: K): boolean; + get(key: K): V; + has(key: K): boolean; + set(key: K, value?: V): WeakMap; +} + +interface WeakMapConstructor { + new (): WeakMap; + prototype: WeakMap; +} + +declare var WeakMap: WeakMapConstructor; + +interface Map { + clear(): void; + delete(key: K): boolean; + entries(): IterableIterator<[K, V]>; + forEach(callbackfn: (value: V, index: K, map: Map) => void, thisArg?: any): void; + get(key: K): V; + has(key: K): boolean; + keys(): IterableIterator; + set(key: K, value?: V): Map; + size: number; + values(): IterableIterator; + [Symbol.iterator]():IterableIterator<[K,V]>; + [Symbol.toStringTag]: string; +} + +interface MapConstructor { + new (): Map; + new (iterable: Iterable<[K, V]>): Map; + prototype: Map; +} +declare var Map: MapConstructor; + +interface Set { + add(value: T): Set; + clear(): void; + delete(value: T): boolean; + entries(): IterableIterator<[T, T]>; + forEach(callbackfn: (value: T, index: T, set: Set) => void, thisArg?: any): void; + has(value: T): boolean; + keys(): IterableIterator; + size: number; + values(): IterableIterator; + [Symbol.iterator]():IterableIterator; + [Symbol.toStringTag]: string; +} + +interface SetConstructor { + new (): Set; + new (iterable: Iterable): Set; + prototype: Set; +} +declare var Set: SetConstructor; + +interface WeakSet { + add(value: T): WeakSet; + clear(): void; + delete(value: T): boolean; + has(value: T): boolean; + [Symbol.toStringTag]: string; +} + +interface WeakSetConstructor { + new (): WeakSet; + new (iterable: Iterable): WeakSet; + prototype: WeakSet; +} +declare var WeakSet: WeakSetConstructor; diff --git a/node_modules/rx/ts/core/es6-promise.d.ts b/node_modules/rx/ts/core/es6-promise.d.ts new file mode 100644 index 0000000..61c0cac --- /dev/null +++ b/node_modules/rx/ts/core/es6-promise.d.ts @@ -0,0 +1,97 @@ + +interface PromiseLike { + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: (value: T) => TResult | PromiseLike, onrejected?: (reason: any) => TResult | PromiseLike): PromiseLike; + then(onfulfilled?: (value: T) => TResult | PromiseLike, onrejected?: (reason: any) => void): PromiseLike; +} + +/** + * Represents the completion of an asynchronous operation + */ +interface Promise { + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: (value: T) => TResult | PromiseLike, onrejected?: (reason: any) => TResult | PromiseLike): Promise; + then(onfulfilled?: (value: T) => TResult | PromiseLike, onrejected?: (reason: any) => void): Promise; + + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: (reason: any) => T | PromiseLike): Promise; + catch(onrejected?: (reason: any) => void): Promise; + + [Symbol.toStringTag]: string; +} + +interface PromiseConstructor { + /** + * A reference to the prototype. + */ + prototype: Promise; + + /** + * Creates a new Promise. + * @param executor A callback used to initialize the promise. This callback is passed two arguments: + * a resolve callback used resolve the promise with a value or the result of another promise, + * and a reject callback used to reject the promise with a provided reason or error. + */ + new (executor: (resolve: (value?: T | PromiseLike) => void, reject: (reason?: any) => void) => void): Promise; + + /** + * Creates a Promise that is resolved with an array of results when all of the provided Promises + * resolve, or rejected when any Promise is rejected. + * @param values An array of Promises. + * @returns A new Promise. + */ + all(values: Iterable>): Promise; + + /** + * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved + * or rejected. + * @param values An array of Promises. + * @returns A new Promise. + */ + race(values: Iterable>): Promise; + + /** + * Creates a new rejected promise for the provided reason. + * @param reason The reason the promise was rejected. + * @returns A new rejected Promise. + */ + reject(reason: any): Promise; + + /** + * Creates a new rejected promise for the provided reason. + * @param reason The reason the promise was rejected. + * @returns A new rejected Promise. + */ + reject(reason: any): Promise; + + /** + * Creates a new resolved promise for the provided value. + * @param value A promise. + * @returns A promise whose internal state matches the provided promise. + */ + resolve(value: T | PromiseLike): Promise; + + /** + * Creates a new resolved promise . + * @returns A resolved promise. + */ + resolve(): Promise; + + [Symbol.species]: Function; +} + +declare var Promise: PromiseConstructor; diff --git a/node_modules/rx/ts/core/es6.ts b/node_modules/rx/ts/core/es6.ts new file mode 100644 index 0000000..3b258ef --- /dev/null +++ b/node_modules/rx/ts/core/es6.ts @@ -0,0 +1,31 @@ +/// +/// +module Rx { + // Type alias for observables and promises + export type ObservableOrPromise = IObservable | Observable | Promise; + + export type ArrayLike = Array | { length: number;[index: number]: T; }; + + // Type alias for arrays and array like objects + export type ArrayOrIterable = ArrayLike | Iterable; + + /** + * Promise A+ + */ + export interface Promise extends PromiseLike { } + + /** + * Promise A+ + */ + export interface IPromise extends PromiseLike { } + + /** + * Represents a push-style collection. + */ + export interface IObservable { } + + /** + * Represents a push-style collection. + */ + export interface Observable extends IObservable { } +} diff --git a/node_modules/rx/ts/core/internal/bindcallback.ts b/node_modules/rx/ts/core/internal/bindcallback.ts new file mode 100644 index 0000000..bedb1c2 --- /dev/null +++ b/node_modules/rx/ts/core/internal/bindcallback.ts @@ -0,0 +1,9 @@ +module Rx { + export module internals { + export var bindCallback: (func: Function, thisArg: any, argCount: number) => Function; + } +} + +(function() { + Rx.internals.bindCallback(() => {}, null, 100); +}); diff --git a/node_modules/rx/ts/core/internal/errors.ts b/node_modules/rx/ts/core/internal/errors.ts new file mode 100644 index 0000000..66b365e --- /dev/null +++ b/node_modules/rx/ts/core/internal/errors.ts @@ -0,0 +1,23 @@ +module Rx { + export module internals { + export interface EmptyError extends Error { message: string; } + export interface EmptyErrorStatic { new (): EmptyError; } + + export interface ObjectDisposedError extends Error { message: string; } + export interface ObjectDisposedErrorStatic { new (): ObjectDisposedError; } + + export interface ArgumentOutOfRangeError extends Error { message: string; } + export interface ArgumentOutOfRangeErrorStatic { new (): ArgumentOutOfRangeError; } + + export interface NotSupportedError extends Error { message: string; } + export interface NotSupportedErrorStatic { new (): NotSupportedError; } + + export interface NotImplementedError extends Error { message: string; } + export interface NotImplementedErrorStatic { new (): NotImplementedError; } + } + + export module helpers { + export var notImplemented: () => internals.NotImplementedError; + export var notSupported: () => internals.NotSupportedError; + } +} diff --git a/node_modules/rx/ts/core/internal/isequal.ts b/node_modules/rx/ts/core/internal/isequal.ts new file mode 100644 index 0000000..9740889 --- /dev/null +++ b/node_modules/rx/ts/core/internal/isequal.ts @@ -0,0 +1,9 @@ +module Rx { + export module internals { + export var isEqual : (left: any, right: any) => boolean; + } +} + +(function() { + var b : boolean = Rx.internals.isEqual(1, 1); +}); diff --git a/node_modules/rx/ts/core/internal/priorityqueue.ts b/node_modules/rx/ts/core/internal/priorityqueue.ts new file mode 100644 index 0000000..55c4443 --- /dev/null +++ b/node_modules/rx/ts/core/internal/priorityqueue.ts @@ -0,0 +1,40 @@ +/// +module Rx { + export module internals { + // Priority Queue for Scheduling + export interface PriorityQueue { + length: number; + + isHigherPriority(left: number, right: number): boolean; + percolate(index: number): void; + heapify(index: number): void; + peek(): ScheduledItem; + removeAt(index: number): void; + dequeue(): ScheduledItem; + enqueue(item: ScheduledItem): void; + remove(item: ScheduledItem): boolean; + } + + interface PriorityQueueStatic { + new (capacity: number) : PriorityQueue; + count: number; + } + + export var PriorityQueue : PriorityQueueStatic; + } +} + +(function() { + var queue = new Rx.internals.PriorityQueue(100); + var n : number = queue.length + var b : boolean = queue.isHigherPriority(1, 100); + queue.percolate(100); + queue.heapify(100); + var item: Rx.internals.ScheduledItem = queue.peek(); + queue.removeAt(100); + var item: Rx.internals.ScheduledItem = queue.dequeue(); + queue.enqueue(item); + b = queue.remove(item); + + n = Rx.internals.PriorityQueue.count; +}); diff --git a/node_modules/rx/ts/core/internal/util.ts b/node_modules/rx/ts/core/internal/util.ts new file mode 100644 index 0000000..0f5aaf0 --- /dev/null +++ b/node_modules/rx/ts/core/internal/util.ts @@ -0,0 +1,15 @@ +/// +/// +module Rx { + export module internals { + export var inherits: (child: any, parent: any) => void; + export var addProperties: (obj: any, ...sources: any[]) => void; + export var addRef: (xs: Observable, r: { getDisposable(): IDisposable; }) => Observable; + } +} + +(function() { + Rx.internals.inherits(null, null); + Rx.internals.addProperties({}, 1, 2, 3); + var o: Rx.Observable = Rx.internals.addRef(>{}, new Rx.SingleAssignmentDisposable()); +}); diff --git a/node_modules/rx/ts/core/joins/pattern.ts b/node_modules/rx/ts/core/joins/pattern.ts new file mode 100644 index 0000000..422536c --- /dev/null +++ b/node_modules/rx/ts/core/joins/pattern.ts @@ -0,0 +1,110 @@ +/// +/// +module Rx { + export interface Pattern2 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern3; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2) => TR): Plan; + } + interface Pattern3 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern4; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3) => TR): Plan; + } + interface Pattern4 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern5; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3, item4: T4) => TR): Plan; + } + interface Pattern5 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern6; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5) => TR): Plan; + } + interface Pattern6 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern7; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6) => TR): Plan; + } + interface Pattern7 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern8; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7) => TR): Plan; + } + interface Pattern8 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern9; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7, item8: T8) => TR): Plan; + } + interface Pattern9 { + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7, item8: T8, item9: T9) => TR): Plan; + } +} diff --git a/node_modules/rx/ts/core/joins/plan.ts b/node_modules/rx/ts/core/joins/plan.ts new file mode 100644 index 0000000..b77cf46 --- /dev/null +++ b/node_modules/rx/ts/core/joins/plan.ts @@ -0,0 +1,3 @@ +module Rx { + export class Plan { } +} diff --git a/node_modules/rx/ts/core/linq/connectableobservable.ts b/node_modules/rx/ts/core/linq/connectableobservable.ts new file mode 100644 index 0000000..3d2ec2d --- /dev/null +++ b/node_modules/rx/ts/core/linq/connectableobservable.ts @@ -0,0 +1,14 @@ +/// +module Rx { + export interface ConnectableObservable extends Observable { + connect(): IDisposable; + refCount(): Observable; + } +} + +(function() { + var co: Rx.ConnectableObservable; + + var d : Rx.IDisposable = co.connect(); + var o : Rx.Observable = co.refCount(); +}); diff --git a/node_modules/rx/ts/core/linq/groupedobservable.ts b/node_modules/rx/ts/core/linq/groupedobservable.ts new file mode 100644 index 0000000..4a7720c --- /dev/null +++ b/node_modules/rx/ts/core/linq/groupedobservable.ts @@ -0,0 +1,14 @@ +/// +module Rx { + export interface GroupedObservable extends Observable { + key: TKey; + underlyingObservable: Observable; + } +} + +(function() { + var go: Rx.GroupedObservable; + + var k: string = go.key; + var o : Rx.Observable = go.underlyingObservable; +}); diff --git a/node_modules/rx/ts/core/linq/observable/amb.ts b/node_modules/rx/ts/core/linq/observable/amb.ts new file mode 100644 index 0000000..9cd54c4 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/amb.ts @@ -0,0 +1,26 @@ +/// +module Rx { + export interface ObservableStatic { + /** + * Propagates the observable sequence or Promise that reacts first. + * @returns {Observable} An observable sequence that surfaces any of the given sequences, whichever reacted first. + */ + amb(observables: ObservableOrPromise[]): Observable; + /** + * Propagates the observable sequence or Promise that reacts first. + * @returns {Observable} An observable sequence that surfaces any of the given sequences, whichever reacted first. + */ + amb(...observables: ObservableOrPromise[]): Observable; + } +} + +(function() { + var p : Rx.Promise; + var o : Rx.Observable; + var io : Rx.IObservable; + + var any: Rx.Observable = Rx.Observable.amb(p, o, io, p, o, io); + var any: Rx.Observable = Rx.Observable.amb(p, p); + var any: Rx.Observable = Rx.Observable.amb(o, o); + var any: Rx.Observable = Rx.Observable.amb(io, io); +}); diff --git a/node_modules/rx/ts/core/linq/observable/ambproto.ts b/node_modules/rx/ts/core/linq/observable/ambproto.ts new file mode 100644 index 0000000..c09b69b --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/ambproto.ts @@ -0,0 +1,22 @@ +/// +module Rx { + export interface Observable { + /** + * Propagates the observable sequence or Promise that reacts first. + * @param {Observable} rightSource Second observable sequence or Promise. + * @returns {Observable} {Observable} An observable sequence that surfaces either of the given sequences, whichever reacted first. + */ + amb(observable: ObservableOrPromise): Observable; + } +} + +(function() { + var r : Rx.Observable; + var o : Rx.Observable; + var io : Rx.IObservable; + var p : Rx.Promise; + + r = r.amb(o); + r = r.amb(io); + r = r.amb(p); +}); diff --git a/node_modules/rx/ts/core/linq/observable/and.ts b/node_modules/rx/ts/core/linq/observable/and.ts new file mode 100644 index 0000000..1c6d0e0 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/and.ts @@ -0,0 +1,31 @@ +/// +/// +module Rx { + export interface Observable { + /** + * Creates a pattern that matches when both observable sequences have an available value. + * + * @param right Observable sequence to match with the current sequence. + * @return {Pattern} Pattern object that matches when both observable sequences have an available value. + */ + and(right: Observable): Pattern2; + } +} + +(function() { + var r: Rx.Observable; + interface A { } + var a: Rx.Observable; + + interface B { } + var b: Rx.Observable; + + interface C { } + var c: Rx.Observable; + + var n: Rx.Observable = Rx.Observable.when( + r.and(a).and(b).and(c).thenDo((r, a, b, c) => { + return 123; + }) + ); +}); diff --git a/node_modules/rx/ts/core/linq/observable/asobservable.ts b/node_modules/rx/ts/core/linq/observable/asobservable.ts new file mode 100644 index 0000000..b7d7df0 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/asobservable.ts @@ -0,0 +1,16 @@ +/// +module Rx { + export interface Observable { + /** + * Hides the identity of an observable sequence. + * @returns {Observable} An observable sequence that hides the identity of the source sequence. + */ + asObservable(): Observable; + } +} + +(function() { + var s : Rx.Subject; + + var o : Rx.Observable = s.asObservable(); +}); diff --git a/node_modules/rx/ts/core/linq/observable/average.ts b/node_modules/rx/ts/core/linq/observable/average.ts new file mode 100644 index 0000000..4ee3680 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/average.ts @@ -0,0 +1,21 @@ +/// +module Rx { + export interface Observable { + /** + * Computes the average of an observable sequence of values that are in the sequence or obtained by invoking a transform function on each element of the input sequence if present. + * @param {Function} [selector] A transform function to apply to each element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence containing a single element with the average of the sequence of values. + */ + average(keySelector?: _Selector, thisArg?: any): Observable; + } +} + +(function () { + var os : Rx.Observable; + var on : Rx.Observable; + + on.average(); + os.average((v, i, s) => v.length + i); + os.average((v, i, s) => v.length + i, {}); +}); diff --git a/node_modules/rx/ts/core/linq/observable/buffer.ts b/node_modules/rx/ts/core/linq/observable/buffer.ts new file mode 100644 index 0000000..34f6cc6 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/buffer.ts @@ -0,0 +1,35 @@ +/// +module Rx { + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more buffers. + * @param {Mixed} bufferOpeningsOrClosingSelector Observable sequence whose elements denote the creation of new windows, or, a function invoked to define the boundaries of the produced windows (a new window is started when the previous one is closed, resulting in non-overlapping windows). + * @param {Function} [bufferClosingSelector] A function invoked to define the closing of each produced window. If a closing selector function is specified for the first parameter, this parameter is ignored. + * @returns {Observable} An observable sequence of windows. + */ + buffer(bufferOpenings: Observable): Observable; + /** + * Projects each element of an observable sequence into zero or more buffers. + * @param {Mixed} bufferOpeningsOrClosingSelector Observable sequence whose elements denote the creation of new windows, or, a function invoked to define the boundaries of the produced windows (a new window is started when the previous one is closed, resulting in non-overlapping windows). + * @param {Function} [bufferClosingSelector] A function invoked to define the closing of each produced window. If a closing selector function is specified for the first parameter, this parameter is ignored. + * @returns {Observable} An observable sequence of windows. + */ + buffer(bufferClosingSelector: () => Observable): Observable; + /** + * Projects each element of an observable sequence into zero or more buffers. + * @param {Mixed} bufferOpeningsOrClosingSelector Observable sequence whose elements denote the creation of new windows, or, a function invoked to define the boundaries of the produced windows (a new window is started when the previous one is closed, resulting in non-overlapping windows). + * @param {Function} [bufferClosingSelector] A function invoked to define the closing of each produced window. If a closing selector function is specified for the first parameter, this parameter is ignored. + * @returns {Observable} An observable sequence of windows. + */ + buffer(bufferOpenings: Observable, bufferClosingSelector: () => Observable): Observable; + } +} + +(function() { + var o : Rx.Observable; + var open : Rx.Observable; + + var so : Rx.Observable = o.buffer(open); + so = o.buffer(() => Rx.Observable.timer(100)); + so = o.buffer(open, () => Rx.Observable.timer(100)); +}); diff --git a/node_modules/rx/ts/core/linq/observable/bufferwithcount.ts b/node_modules/rx/ts/core/linq/observable/bufferwithcount.ts new file mode 100644 index 0000000..e7e1c8f --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/bufferwithcount.ts @@ -0,0 +1,19 @@ +/// +module Rx { + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more buffers which are produced based on element count information. + * @param {Number} count Length of each buffer. + * @param {Number} [skip] Number of elements to skip between creation of consecutive buffers. If not provided, defaults to the count. + * @returns {Observable} An observable sequence of buffers. + */ + bufferWithCount(count: number, skip?: number): Observable; + } +} + +(function() { + var o : Rx.Observable; + + var so : Rx.Observable = o.bufferWithCount(100); + so = o.bufferWithCount(100, 5); +}); diff --git a/node_modules/rx/ts/core/linq/observable/bufferwithtime.ts b/node_modules/rx/ts/core/linq/observable/bufferwithtime.ts new file mode 100644 index 0000000..d816462 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/bufferwithtime.ts @@ -0,0 +1,31 @@ +/// +/// +module Rx { + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more buffers which are produced based on timing information. + * @param {Number} timeSpan Length of each buffer (specified as an integer denoting milliseconds). + * @param {Mixed} [timeShiftOrScheduler] Interval between creation of consecutive buffers (specified as an integer denoting milliseconds), or an optional scheduler parameter. If not specified, the time shift corresponds to the timeSpan parameter, resulting in non-overlapping adjacent buffers. + * @param {Scheduler} [scheduler] Scheduler to run buffer timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence of buffers. + */ + bufferWithTime(timeSpan: number, timeShift: number, scheduler?: IScheduler): Observable; + /** + * Projects each element of an observable sequence into zero or more buffers which are produced based on timing information. + * @param {Number} timeSpan Length of each buffer (specified as an integer denoting milliseconds). + * @param {Mixed} [timeShiftOrScheduler] Interval between creation of consecutive buffers (specified as an integer denoting milliseconds), or an optional scheduler parameter. If not specified, the time shift corresponds to the timeSpan parameter, resulting in non-overlapping adjacent buffers. + * @param {Scheduler} [scheduler] Scheduler to run buffer timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence of buffers. + */ + bufferWithTime(timeSpan: number, scheduler?: IScheduler): Observable; + } +} + +(function() { + var o: Rx.Observable; + + var so: Rx.Observable = o.bufferWithTime(100); + so = o.bufferWithTime(100, 5); + var so: Rx.Observable = o.bufferWithTime(100, Rx.Scheduler.async); + so = o.bufferWithTime(100, 5, Rx.Scheduler.async); +}); diff --git a/node_modules/rx/ts/core/linq/observable/bufferwithtimeorcount.ts b/node_modules/rx/ts/core/linq/observable/bufferwithtimeorcount.ts new file mode 100644 index 0000000..752d388 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/bufferwithtimeorcount.ts @@ -0,0 +1,20 @@ +/// +/// +module Rx { + export interface Observable { + /** + * Projects each element of an observable sequence into a buffer that is completed when either it's full or a given amount of time has elapsed. + * @param {Number} timeSpan Maximum time length of a buffer. + * @param {Number} count Maximum element count of a buffer. + * @param {Scheduler} [scheduler] Scheduler to run bufferin timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence of buffers. + */ + bufferWithTimeOrCount(timeSpan: number, count: number, scheduler?: IScheduler): Observable; + } +} + +(function() { + var o: Rx.Observable; + var so: Rx.Observable = o.bufferWithTimeOrCount(100, 200); + var so: Rx.Observable = o.bufferWithTimeOrCount(100, 200, Rx.Scheduler.default); +}) diff --git a/node_modules/rx/ts/core/linq/observable/case.ts b/node_modules/rx/ts/core/linq/observable/case.ts new file mode 100644 index 0000000..5de82a2 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/case.ts @@ -0,0 +1,51 @@ +/// +/// +module Rx { + export interface ObservableStatic { + /** + * Uses selector to determine which source in sources to use. + * @param {Function} selector The function which extracts the value for to test in a case statement. + * @param {Array} sources A object which has keys which correspond to the case statement labels. + * @param {Observable} [elseSource] The observable sequence or Promise that will be run if the sources are not matched. If this is not provided, it defaults to Rx.Observabe.empty with the specified scheduler. + * + * @returns {Observable} An observable sequence which is determined by a case statement. + */ + case(selector: () => string, sources: { [key: string]: ObservableOrPromise; }, schedulerOrElseSource?: IScheduler | ObservableOrPromise): Observable; + /** + * Uses selector to determine which source in sources to use. + * @param {Function} selector The function which extracts the value for to test in a case statement. + * @param {Array} sources A object which has keys which correspond to the case statement labels. + * @param {Observable} [elseSource] The observable sequence or Promise that will be run if the sources are not matched. If this is not provided, it defaults to Rx.Observabe.empty with the specified scheduler. + * + * @returns {Observable} An observable sequence which is determined by a case statement. + */ + case(selector: () => number, sources: { [key: number]: ObservableOrPromise; }, schedulerOrElseSource?: IScheduler | ObservableOrPromise): Observable; + } +} + +(function() { + var o: Rx.Observable; + var p: Rx.Promise; + var e: Rx.Observable; + var on: Rx.Observable; + var pn: Rx.Promise; + var en: Rx.Observable; + + var so : { [key: string]: Rx.ObservableOrPromise; } = {}; + so['abc'] = p; + so['def'] = e; + so['xyz'] = o; + + var no : { [key: number]: Rx.ObservableOrPromise; } = {} + no[1] = pn; + no[2] = en; + no[3] = on; + + o = Rx.Observable.case(() => 'abc', so) + o = Rx.Observable.case(() => 'abc', so, e) + o = Rx.Observable.case(() => 'abc', so, Rx.Scheduler.async); + + on = Rx.Observable.case(() => 1, no) + on = Rx.Observable.case(() => 2, no, en); + on = Rx.Observable.case(() => 3, no, Rx.Scheduler.async); +}); diff --git a/node_modules/rx/ts/core/linq/observable/catch.ts b/node_modules/rx/ts/core/linq/observable/catch.ts new file mode 100644 index 0000000..3d4bc5a --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/catch.ts @@ -0,0 +1,28 @@ +/// +module Rx { + export interface ObservableStatic { + /** + * Continues an observable sequence that is terminated by an exception with the next observable sequence. + * @param {Array | Arguments} args Arguments or an array to use as the next sequence if an error occurs. + * @returns {Observable} An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + */ + catch(sources: ObservableOrPromise[]): Observable; + /** + * Continues an observable sequence that is terminated by an exception with the next observable sequence. + * @param {Array | Arguments} args Arguments or an array to use as the next sequence if an error occurs. + * @returns {Observable} An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + */ + catch(...sources: ObservableOrPromise[]): Observable; + } +} + +(function() { + var o : Rx.Observable; + var io : Rx.IObservable; + var p : Rx.Promise; + + var t = [o, p, o, p, io]; + o = Rx.Observable.catch(o, p, o, p, io); + o = Rx.Observable.catch(...t); + o = Rx.Observable.catch(t); +}); diff --git a/node_modules/rx/ts/core/linq/observable/catchproto.ts b/node_modules/rx/ts/core/linq/observable/catchproto.ts new file mode 100644 index 0000000..b31ab70 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/catchproto.ts @@ -0,0 +1,32 @@ +/// +module Rx { + export interface Observable { + /** + * Continues an observable sequence that is terminated by an exception with the next observable sequence. + * @param {Mixed} handlerOrSecond Exception handler function that returns an observable sequence given the error that occurred in the first sequence, or a second observable sequence used to produce results when an error occurred in the first sequence. + * @returns {Observable} An observable sequence containing the first sequence's elements, followed by the elements of the handler sequence in case an exception occurred. + */ + catch(handler: (exception: any) => ObservableOrPromise): Observable; + /** + * Continues an observable sequence that is terminated by an exception with the next observable sequence. + * @param {Mixed} handlerOrSecond Exception handler function that returns an observable sequence given the error that occurred in the first sequence, or a second observable sequence used to produce results when an error occurred in the first sequence. + * @returns {Observable} An observable sequence containing the first sequence's elements, followed by the elements of the handler sequence in case an exception occurred. + */ + catch(second: ObservableOrPromise): Observable; + } +} + +(function() { + + var o: Rx.Observable; + var io: Rx.IObservable; + var p: Rx.Promise; + + o = o.catch((e) => o); + o = o.catch((e) => io); + o = o.catch((e) => p); + + o = o.catch(o); + o = o.catch(io); + o = o.catch(p); +}); diff --git a/node_modules/rx/ts/core/linq/observable/combinelatest.ts b/node_modules/rx/ts/core/linq/observable/combinelatest.ts new file mode 100644 index 0000000..07e930b --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/combinelatest.ts @@ -0,0 +1,97 @@ +/// +module Rx { + export interface ObservableStatic { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, resultSelector: (v1: T, v2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, eventh: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, ninth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8, v9: T9) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(souces: ObservableOrPromise[], resultSelector: (...otherValues: TOther[]) => TResult): Observable; + } +} + +(function() { + var o: Rx.Observable; + var io: Rx.IObservable; + var so: Rx.Subject; + var p: Rx.Promise<{ a: string }>; + + var r: Rx.Observable<{ vo: boolean, vio: string, vp: { a: string }, vso: number }> = Rx.Observable.combineLatest(o, io, p, so, (vo, vio, vp, vso) => ({ vo, vio, vp, vso })); + + var rr : Rx.Observable = Rx.Observable.combineLatest([o, io, so, p], (items) => 5); +}); diff --git a/node_modules/rx/ts/core/linq/observable/combinelatestproto.ts b/node_modules/rx/ts/core/linq/observable/combinelatestproto.ts new file mode 100644 index 0000000..3545a62 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/combinelatestproto.ts @@ -0,0 +1,106 @@ +/// +module Rx { + export interface Observable { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, resultSelector: (v1: T, v2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, ninth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8, v9: T9) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(souces: ObservableOrPromise[], resultSelector: (firstValue: T, ...otherValues: TOther[]) => TResult): Observable; + } +} + +(function() { + var o: Rx.Observable; + var io: Rx.IObservable; + var so: Rx.Subject; + var p: Rx.Promise<{ a: string }>; + + var r: Rx.Observable<{ vo: boolean, vio: string, vp: { a: string }, vso: number }> = o.combineLatest(io, p, so, (vo, vio, vp, vso) => ({ vo, vio, vp, vso })); + + var rr : Rx.Observable = o.combineLatest([io, so, p], (v1, items) => 5); +}); diff --git a/node_modules/rx/ts/core/linq/observable/concat.ts b/node_modules/rx/ts/core/linq/observable/concat.ts new file mode 100644 index 0000000..d4f4fdb --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/concat.ts @@ -0,0 +1,28 @@ +/// +module Rx { + export interface ObservableStatic { + /** + * Concatenates all the observable sequences. + * @param {Array | Arguments} args Arguments or an array to concat to the observable sequence. + * @returns {Observable} An observable sequence that contains the elements of each given sequence, in sequential order. + */ + concat(...sources: ObservableOrPromise[]): Observable; + /** + * Concatenates all the observable sequences. + * @param {Array | Arguments} args Arguments or an array to concat to the observable sequence. + * @returns {Observable} An observable sequence that contains the elements of each given sequence, in sequential order. + */ + concat(sources: ObservableOrPromise[]): Observable; + } +} + +(function() { + + var o: Rx.Observable; + var io: Rx.IObservable; + var so: Rx.Subject; + var p: Rx.Promise; + + var o: Rx.Observable = Rx.Observable.concat(o, io, so, p); + var o: Rx.Observable = Rx.Observable.concat([o, io, so, p]); +}); diff --git a/node_modules/rx/ts/core/linq/observable/concatall.ts b/node_modules/rx/ts/core/linq/observable/concatall.ts new file mode 100644 index 0000000..a050edb --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/concatall.ts @@ -0,0 +1,16 @@ +/// +module Rx { + export interface Observable { + /** + * Concatenates an observable sequence of observable sequences. + * @returns {Observable} An observable sequence that contains the elements of each observed inner sequence, in sequential order. + */ + concatAll(): T; + } +} + +(function() { + var o: Rx.Observable>; + + var oo : Rx.Observable = o.concatAll(); +}); diff --git a/node_modules/rx/ts/core/linq/observable/concatmap.ts b/node_modules/rx/ts/core/linq/observable/concatmap.ts new file mode 100644 index 0000000..92a9171 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/concatmap.ts @@ -0,0 +1,199 @@ +/// +module Rx { + export interface Observable { + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + concatMap(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + concatMap(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + concatMap(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + concatMap(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectConcat(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectConcat(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectConcat(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectConcat(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + } +} + + +(function() { + var os: Rx.Observable; + var on: Rx.Observable; + + on = os.concatMap((v, i) => Rx.Observable.range(0, i)); + os = os.concatMap(z => Rx.Observable.just('abc').toPromise()); + on = os.concatMap(z => [1, 2, 3]); + + os = os.concatMap((v, i) => Rx.Observable.range(0, i), (v1, v2, i) => v2.toString()); + on = os.concatMap(z => Rx.Observable.just('abc').toPromise(), (v1, v2, i) => i); + on = os.concatMap(z => [1, 2, 3], (v1, v2, i) => i); + + os.concatMap(on); + os = os.concatMap(Rx.Observable.range(0, 5), (v1, v2, i) => v2.toString()); + on = os.concatMap(Rx.Observable.just('abc').toPromise(), (v1, v2, i) => i); + on = os.concatMap([1, 2, 3], (v1, v2, i) => i); + + on = os.selectConcat((v, i) => Rx.Observable.range(0, i)); + + on = os.selectConcat((v, i) => Rx.Observable.range(0, i)); + os = os.selectConcat(z => Rx.Observable.just('abc').toPromise()); + on = os.selectConcat(z => [1, 2, 3]); + + os = os.selectConcat((v, i) => Rx.Observable.range(0, i), (v1, v2, i) => v2.toString()); + on = os.selectConcat(z => Rx.Observable.just('abc').toPromise(), (v1, v2, i) => i); + on = os.selectConcat(z => [1, 2, 3], (v1, v2, i) => i); + + os.selectConcat(on); + os = os.selectConcat(Rx.Observable.range(0, 5), (v1, v2, i) => v2.toString()); + on = os.selectConcat(Rx.Observable.just('abc').toPromise(), (v1, v2, i) => i); + on = os.selectConcat([1, 2, 3], (v1, v2, i) => i); +}); diff --git a/node_modules/rx/ts/core/linq/observable/concatmapobserver.ts b/node_modules/rx/ts/core/linq/observable/concatmapobserver.ts new file mode 100644 index 0000000..7e04e32 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/concatmapobserver.ts @@ -0,0 +1,35 @@ +/// +module Rx { + export interface Observable { + /** + * Projects each notification of an observable sequence to an observable sequence and concats the resulting observable sequences into one observable sequence. + * @param {Function} onNext A transform function to apply to each element; the second parameter of the function represents the index of the source element. + * @param {Function} onError A transform function to apply when an error occurs in the source sequence. + * @param {Function} onCompleted A transform function to apply when the end of the source sequence is reached. + * @param {Any} [thisArg] An optional "this" to use to invoke each transform. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + */ + concatMapObserver(onNext: (value: T, i: number) => ObservableOrPromise, onError: (error: any) => ObservableOrPromise, onCompleted: () => ObservableOrPromise, thisArg?: any): Observable; + /** + * Projects each notification of an observable sequence to an observable sequence and concats the resulting observable sequences into one observable sequence. + * @param {Function} onNext A transform function to apply to each element; the second parameter of the function represents the index of the source element. + * @param {Function} onError A transform function to apply when an error occurs in the source sequence. + * @param {Function} onCompleted A transform function to apply when the end of the source sequence is reached. + * @param {Any} [thisArg] An optional "this" to use to invoke each transform. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + */ + selectConcatObserver(onNext: (value: T, i: number) => ObservableOrPromise, onError: (error: any) => ObservableOrPromise, onCompleted: () => ObservableOrPromise, thisArg?: any): Observable; + } +} + + +(function() { + var os: Rx.Observable; + var on: Rx.Observable; + + os.concatMapObserver((v, i) => Rx.Observable.just(i), (e) => Rx.Observable.just(e), () => Rx.Observable.empty()); + os.selectConcatObserver((v, i) => Rx.Observable.just(i), (e) => Rx.Observable.just(e), () => Rx.Observable.empty()); + + os.concatMapObserver((v, i) => Rx.Observable.just(i), (e) => Rx.Observable.just(e), () => Rx.Observable.empty(), {}); + os.selectConcatObserver((v, i) => Rx.Observable.just(i), (e) => Rx.Observable.just(e), () => Rx.Observable.empty(), {}); +}); diff --git a/node_modules/rx/ts/core/linq/observable/concatproto.ts b/node_modules/rx/ts/core/linq/observable/concatproto.ts new file mode 100644 index 0000000..d944aaa --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/concatproto.ts @@ -0,0 +1,19 @@ +/// +module Rx { + export interface Observable { + /** + * Concatenates all the observable sequences. This takes in either an array or variable arguments to concatenate. + * @returns {Observable} An observable sequence that contains the elements of each given sequence, in sequential order. + */ + concat(...sources: ObservableOrPromise[]): Observable; + } +} + +(function() { + var o: Rx.Observable; + var io: Rx.IObservable; + var so: Rx.Subject; + var p: Rx.Promise; + + var o: Rx.Observable = o.concat(o, io, so, p); +}); diff --git a/node_modules/rx/ts/core/linq/observable/count.ts b/node_modules/rx/ts/core/linq/observable/count.ts new file mode 100644 index 0000000..53cf72a --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/count.ts @@ -0,0 +1,25 @@ +/// +module Rx { + export interface Observable { + /** + * Returns an observable sequence containing a value that represents how many elements in the specified observable sequence satisfy a condition if provided, else the count of items. + * @example + * res = source.count(); + * res = source.count(function (x) { return x > 3; }); + * @param {Function} [predicate]A function to test each element for a condition. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence containing a single element with a number that represents how many elements in the input sequence satisfy the condition in the predicate function if provided, else the count of items in the sequence. + */ + count(predicate?: _Predicate, thisArg?: any): Observable; + } +} + + +(function () { + var os : Rx.Observable; + var on : Rx.Observable; + + on.count(); + os.count((v, i, s) => false); + os.count((v, i, s) => true, {}); +}); diff --git a/node_modules/rx/ts/core/linq/observable/create.ts b/node_modules/rx/ts/core/linq/observable/create.ts new file mode 100644 index 0000000..84540d1 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/create.ts @@ -0,0 +1,23 @@ +/// +/// +module Rx { + export interface ObservableStatic { + /** + * Creates an observable sequence from a specified subscribe method implementation. + * @example + * var res = Rx.Observable.create(function (observer) { return function () { } ); + * var res = Rx.Observable.create(function (observer) { return Rx.Disposable.empty; } ); + * var res = Rx.Observable.create(function (observer) { } ); + * @param {Function} subscribe Implementation of the resulting observable sequence's subscribe method, returning a function that will be wrapped in a Disposable. + * @returns {Observable} The observable sequence with the specified implementation for the Subscribe method. + */ + create(subscribe: (observer: Observer) => IDisposable | Function | void): Observable; + } +} + +(function () { + var o : Rx.Observable; + o = Rx.Observable.create(o => {}); + o = Rx.Observable.create(o => Rx.Disposable.empty); + o = Rx.Observable.create(o => () => {}); +}); diff --git a/node_modules/rx/ts/core/linq/observable/debounce.ts b/node_modules/rx/ts/core/linq/observable/debounce.ts new file mode 100644 index 0000000..b0399ce --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/debounce.ts @@ -0,0 +1,27 @@ +/// +/// +module Rx { + export interface Observable { + /** + * Ignores values from an observable sequence which are followed by another value before dueTime. + * @param {Number} dueTime Duration of the debounce period for each value (specified as an integer denoting milliseconds). + * @param {Scheduler} [scheduler] Scheduler to run the debounce timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The debounced sequence. + */ + debounce(dueTime: number, scheduler?: IScheduler): Observable; + + /** + * Ignores values from an observable sequence which are followed by another value within a computed throttle duration. + * @param {Function} durationSelector Selector function to retrieve a sequence indicating the throttle duration for each given element. + * @returns {Observable} The debounced sequence. + */ + debounce(debounceDurationSelector: (item: T) => ObservableOrPromise): Observable; + } +} + +(function () { + var o: Rx.Observable; + o.debounce(100); + o.debounce(100, Rx.Scheduler.async); + o.debounce(x => Rx.Observable.just(x.length)); +}); diff --git a/node_modules/rx/ts/core/linq/observable/defaultifempty.ts b/node_modules/rx/ts/core/linq/observable/defaultifempty.ts new file mode 100644 index 0000000..5822f25 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/defaultifempty.ts @@ -0,0 +1,23 @@ +/// +module Rx { + export interface Observable { + /** + * Returns the elements of the specified sequence or the specified value in a singleton sequence if the sequence is empty. + * + * var res = obs = xs.defaultIfEmpty(); + * 2 - obs = xs.defaultIfEmpty(false); + * + * @memberOf Observable# + * @param defaultValue The value to return if the sequence is empty. If not provided, this defaults to null. + * @returns {Observable} An observable sequence that contains the specified default value if the source is empty; otherwise, the elements of the source itself. + */ + defaultIfEmpty(defaultValue?: T): Observable; + } +} + + +(function () { + var o: Rx.Observable; + o.defaultIfEmpty(); + o.defaultIfEmpty('default'); +}); diff --git a/node_modules/rx/ts/core/linq/observable/defer.ts b/node_modules/rx/ts/core/linq/observable/defer.ts new file mode 100644 index 0000000..48e40bc --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/defer.ts @@ -0,0 +1,20 @@ +/// +module Rx { + export interface ObservableStatic { + /** + * Returns an observable sequence that invokes the specified factory function whenever a new observer subscribes. + * + * @example + * var res = Rx.Observable.defer(function () { return Rx.Observable.fromArray([1,2,3]); }); + * @param {Function} observableFactory Observable factory function to invoke for each observer that subscribes to the resulting sequence or Promise. + * @returns {Observable} An observable sequence whose observers trigger an invocation of the given observable factory function. + */ + defer(observableFactory: () => ObservableOrPromise): Observable; + } +} + +(function () { + var o: Rx.Observable; + Rx.Observable.defer(() => o); + Rx.Observable.defer(() => o.toPromise()); +}); diff --git a/node_modules/rx/ts/core/linq/observable/delay.ts b/node_modules/rx/ts/core/linq/observable/delay.ts new file mode 100644 index 0000000..f342bd8 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/delay.ts @@ -0,0 +1,74 @@ +/// +/// +module Rx { + export interface Observable { + /** + * Time shifts the observable sequence by dueTime. The relative time intervals between the values are preserved. + * + * @example + * 1 - res = Rx.Observable.delay(new Date()); + * 2 - res = Rx.Observable.delay(new Date(), Rx.Scheduler.timeout); + * + * 3 - res = Rx.Observable.delay(5000); + * 4 - res = Rx.Observable.delay(5000, 1000, Rx.Scheduler.timeout); + * @memberOf Observable# + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) by which to shift the observable sequence. + * @param {Scheduler} [scheduler] Scheduler to run the delay timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} Time-shifted sequence. + */ + delay(dueTime: Date, scheduler?: IScheduler): Observable; + /** + * Time shifts the observable sequence by dueTime. The relative time intervals between the values are preserved. + * + * @example + * 1 - res = Rx.Observable.delay(new Date()); + * 2 - res = Rx.Observable.delay(new Date(), Rx.Scheduler.timeout); + * + * 3 - res = Rx.Observable.delay(5000); + * 4 - res = Rx.Observable.delay(5000, 1000, Rx.Scheduler.timeout); + * @memberOf Observable# + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) by which to shift the observable sequence. + * @param {Scheduler} [scheduler] Scheduler to run the delay timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} Time-shifted sequence. + */ + delay(dueTime: number, scheduler?: IScheduler): Observable; + + /** + * Time shifts the observable sequence based on a subscription delay and a delay selector function for each element. + * + * @example + * 1 - res = source.delayWithSelector(function (x) { return Rx.Scheduler.timer(5000); }); // with selector only + * 1 - res = source.delayWithSelector(Rx.Observable.timer(2000), function (x) { return Rx.Observable.timer(x); }); // with delay and selector + * + * @param {Observable} [subscriptionDelay] Sequence indicating the delay for the subscription to the source. + * @param {Function} delayDurationSelector Selector function to retrieve a sequence indicating the delay for each given element. + * @returns {Observable} Time-shifted sequence. + */ + delay(delayDurationSelector: (item: T) => ObservableOrPromise): Observable; + + /** + * Time shifts the observable sequence based on a subscription delay and a delay selector function for each element. + * + * @example + * 1 - res = source.delayWithSelector(function (x) { return Rx.Scheduler.timer(5000); }); // with selector only + * 1 - res = source.delayWithSelector(Rx.Observable.timer(2000), function (x) { return Rx.Observable.timer(x); }); // with delay and selector + * + * @param {Observable} [subscriptionDelay] Sequence indicating the delay for the subscription to the source. + * @param {Function} delayDurationSelector Selector function to retrieve a sequence indicating the delay for each given element. + * @returns {Observable} Time-shifted sequence. + */ + delay(subscriptionDelay: Observable, delayDurationSelector: (item: T) => ObservableOrPromise): Observable; + } +} + +(function () { + var o: Rx.Observable; + o.delay(1000); + o.delay(new Date()); + o.delay(1000, Rx.Scheduler.async); + o.delay(new Date(), Rx.Scheduler.async); + + o.delay(x => Rx.Observable.timer(x.length)); + o.delay(Rx.Observable.timer(1000), x => Rx.Observable.timer(x.length)); + o.delay(x => Rx.Observable.timer(x.length).toPromise()); +}); diff --git a/node_modules/rx/ts/core/linq/observable/delaysubscription.ts b/node_modules/rx/ts/core/linq/observable/delaysubscription.ts new file mode 100644 index 0000000..bee443f --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/delaysubscription.ts @@ -0,0 +1,24 @@ +/// +/// +module Rx { + export interface Observable { + /** + * Time shifts the observable sequence by delaying the subscription with the specified relative time duration, using the specified scheduler to run timers. + * + * @example + * 1 - res = source.delaySubscription(5000); // 5s + * 2 - res = source.delaySubscription(5000, Rx.Scheduler.default); // 5 seconds + * + * @param {Number} dueTime Relative or absolute time shift of the subscription. + * @param {Scheduler} [scheduler] Scheduler to run the subscription delay timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Time-shifted sequence. + */ + delaySubscription(dueTime: number, scheduler?: IScheduler): Observable; + } +} + +(function () { + var o: Rx.Observable; + o.delaySubscription(1000); + o.delaySubscription(1000, Rx.Scheduler.async); +}); diff --git a/node_modules/rx/ts/core/linq/observable/dematerialize.ts b/node_modules/rx/ts/core/linq/observable/dematerialize.ts new file mode 100644 index 0000000..59ea111 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/dematerialize.ts @@ -0,0 +1,15 @@ +/// +module Rx { + export interface Observable { + /** + * Dematerializes the explicit notification values of an observable sequence as implicit notifications. + * @returns {Observable} An observable sequence exhibiting the behavior corresponding to the source sequence's notification values. + */ + dematerialize(): Observable; + } +} + +(function () { + var o : Rx.Observable; + o.dematerialize(); +}); diff --git a/node_modules/rx/ts/core/linq/observable/distinct.ts b/node_modules/rx/ts/core/linq/observable/distinct.ts new file mode 100644 index 0000000..4ee6d09 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/distinct.ts @@ -0,0 +1,25 @@ +/// +module Rx { + export interface Observable { + /** + * Returns an observable sequence that contains only distinct elements according to the keySelector and the comparer. + * Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + * + * @example + * var res = obs = xs.distinct(); + * 2 - obs = xs.distinct(function (x) { return x.id; }); + * 2 - obs = xs.distinct(function (x) { return x.id; }, function (a,b) { return a === b; }); + * @param {Function} [keySelector] A function to compute the comparison key for each element. + * @param {Function} [comparer] Used to compare items in the collection. + * @returns {Observable} An observable sequence only containing the distinct elements, based on a computed key value, from the source sequence. + */ + distinct(keySelector?: (value: T) => TKey, keySerializer?: (key: TKey) => string): Observable; + } +} + +(function () { + var o : Rx.Observable; + o = o.distinct(); + o = o.distinct(x => x.length); + o = o.distinct(x => x.length, x => x.toString() + '' + x); +}); diff --git a/node_modules/rx/ts/core/linq/observable/distinctuntilchanged.ts b/node_modules/rx/ts/core/linq/observable/distinctuntilchanged.ts new file mode 100644 index 0000000..4b495d5 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/distinctuntilchanged.ts @@ -0,0 +1,24 @@ +/// +module Rx { + export interface Observable { + /** + * Returns an observable sequence that contains only distinct contiguous elements according to the keySelector and the comparer. + * + * var obs = observable.distinctUntilChanged(); + * var obs = observable.distinctUntilChanged(function (x) { return x.id; }); + * var obs = observable.distinctUntilChanged(function (x) { return x.id; }, function (x, y) { return x === y; }); + * + * @param {Function} [keySelector] A function to compute the comparison key for each element. If not provided, it projects the value. + * @param {Function} [comparer] Equality comparer for computed key values. If not provided, defaults to an equality comparer function. + * @returns {Observable} An observable sequence only containing the distinct contiguous elements, based on a computed key value, from the source sequence. + */ + distinctUntilChanged(keySelector?: (value: T) => TValue, comparer?: _Comparer): Observable; + } +} + +(function () { + var o : Rx.Observable; + o = o.distinctUntilChanged(); + o = o.distinctUntilChanged(x => x.length); + o = o.distinctUntilChanged(x => x.length, (x, y) => true); +}); diff --git a/node_modules/rx/ts/core/linq/observable/dowhile.ts b/node_modules/rx/ts/core/linq/observable/dowhile.ts new file mode 100644 index 0000000..d3c0c2a --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/dowhile.ts @@ -0,0 +1,18 @@ +/// +module Rx { + export interface Observable { + /** + * Repeats source as long as condition holds emulating a do while loop. + * + * @param {Function} condition The condition which determines if the source will be repeated. + * @param {Observable} source The observable sequence that will be run if the condition function returns true. + * @returns {Observable} An observable sequence which is repeated as long as the condition holds. + */ + doWhile(condition: () => boolean): Observable; + } +} + +(function () { + var o : Rx.Observable; + o = o.doWhile(() => false); +}); diff --git a/node_modules/rx/ts/core/linq/observable/elementat.ts b/node_modules/rx/ts/core/linq/observable/elementat.ts new file mode 100644 index 0000000..3d55d80 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/elementat.ts @@ -0,0 +1,17 @@ +/// +module Rx { + export interface Observable { + /** + * Returns the element at a specified index in a sequence or default value if not found. + * @param {Number} index The zero-based index of the element to retrieve. + * @param {Any} [defaultValue] The default value to use if elementAt does not find a value. + * @returns {Observable} An observable sequence that produces the element at the specified position in the source sequence. + */ + elementAt(index: number): Observable; + } +} + +(function () { + var o : Rx.Observable; + o = o.elementAt(5); +}); diff --git a/node_modules/rx/ts/core/linq/observable/empty.ts b/node_modules/rx/ts/core/linq/observable/empty.ts new file mode 100644 index 0000000..acc80af --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/empty.ts @@ -0,0 +1,22 @@ +/// +/// +module Rx { + export interface ObservableStatic { + /** + * Returns an empty observable sequence, using the specified scheduler to send out the single OnCompleted message. + * + * @example + * var res = Rx.Observable.empty(); + * var res = Rx.Observable.empty(Rx.Scheduler.timeout); + * @param {Scheduler} [scheduler] Scheduler to send the termination call on. + * @returns {Observable} An observable sequence with no elements. + */ + empty(scheduler?: IScheduler): Observable; + } +} + +(function () { + var o : Rx.Observable; + o = Rx.Observable.empty(); + o = Rx.Observable.empty(Rx.Scheduler.async); +}); diff --git a/node_modules/rx/ts/core/linq/observable/every.ts b/node_modules/rx/ts/core/linq/observable/every.ts new file mode 100644 index 0000000..0f4c6df --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/every.ts @@ -0,0 +1,20 @@ +/// +module Rx { + export interface Observable { + /** + * Determines whether all elements of an observable sequence satisfy a condition. + * @param {Function} [predicate] A function to test each element for a condition. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence containing a single element determining whether all elements in the source sequence pass the test in the specified predicate. + */ + every(predicate?: _Predicate, thisArg?: any): Observable; // alias for all + } +} + +(function () { + var o : Rx.Observable; + var b : Rx.Observable; + b = o.every(); + b = o.every(() => true); + b = o.every(() => true, {}); +}); diff --git a/node_modules/rx/ts/core/linq/observable/expand.ts b/node_modules/rx/ts/core/linq/observable/expand.ts new file mode 100644 index 0000000..529387f --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/expand.ts @@ -0,0 +1,20 @@ +/// +/// +module Rx { + export interface Observable { + /** + * Expands an observable sequence by recursively invoking selector. + * + * @param {Function} selector Selector function to invoke for each produced element, resulting in another sequence to which the selector will be invoked recursively again. + * @param {Scheduler} [scheduler] Scheduler on which to perform the expansion. If not provided, this defaults to the current thread scheduler. + * @returns {Observable} An observable sequence containing all the elements produced by the recursive expansion. + */ + expand(selector: (item: T) => Observable, scheduler?: IScheduler): Observable; + } +} + +(function () { + var o : Rx.Observable; + o = o.expand(i => Rx.Observable.return(i + 1)); + o = o.expand(i => Rx.Observable.return(i + 1), Rx.Scheduler.async); +}); diff --git a/node_modules/rx/ts/core/linq/observable/filter.ts b/node_modules/rx/ts/core/linq/observable/filter.ts new file mode 100644 index 0000000..644786b --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/filter.ts @@ -0,0 +1,36 @@ +/// +module Rx { + export interface Observable { + /** + * Filters the elements of an observable sequence based on a predicate by incorporating the element's index. + * + * @example + * var res = source.where(function (value) { return value < 10; }); + * var res = source.where(function (value, index) { return value < 10 || index < 10; }); + * @param {Function} predicate A function to test each source element for a condition; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence that contains elements from the input sequence that satisfy the condition. + */ + where(predicate: _Predicate, thisArg?: any): Observable; + /** + * Filters the elements of an observable sequence based on a predicate by incorporating the element's index. + * + * @example + * var res = source.where(function (value) { return value < 10; }); + * var res = source.where(function (value, index) { return value < 10 || index < 10; }); + * @param {Function} predicate A function to test each source element for a condition; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence that contains elements from the input sequence that satisfy the condition. + */ + filter(predicate: _Predicate, thisArg?: any): Observable; + } +} + +(function () { + var o : Rx.Observable; + o = o.where(i => true); + o = o.where(i => true, {}); + o = o.filter(i => true); + o = o.filter(i => true, {}); + +}); diff --git a/node_modules/rx/ts/core/linq/observable/finally.ts b/node_modules/rx/ts/core/linq/observable/finally.ts new file mode 100644 index 0000000..33402d9 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/finally.ts @@ -0,0 +1,24 @@ +/// +module Rx { + export interface Observable { + /** + * Invokes a specified action after the source observable sequence terminates gracefully or exceptionally. + * @param {Function} finallyAction Action to invoke after the source observable sequence terminates. + * @returns {Observable} Source sequence with the action-invoking termination behavior applied. + */ + finally(action: () => void): Observable; + + /** + * Invokes a specified action after the source observable sequence terminates gracefully or exceptionally. + * @param {Function} finallyAction Action to invoke after the source observable sequence terminates. + * @returns {Observable} Source sequence with the action-invoking termination behavior applied. + */ + ensure(action: () => void): Observable; + } +} + +(function () { + var o : Rx.Observable; + o = o.finally(() => {}); + o = o.ensure(() => {}); +}); diff --git a/node_modules/rx/ts/core/linq/observable/find.ts b/node_modules/rx/ts/core/linq/observable/find.ts new file mode 100644 index 0000000..c7ed326 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/find.ts @@ -0,0 +1,18 @@ +/// +module Rx { + export interface Observable { + /** + * Searches for an element that matches the conditions defined by the specified predicate, and returns the first occurrence within the entire Observable sequence. + * @param {Function} predicate The predicate that defines the conditions of the element to search for. + * @param {Any} [thisArg] Object to use as `this` when executing the predicate. + * @returns {Observable} An Observable sequence with the first element that matches the conditions defined by the specified predicate, if found; otherwise, undefined. + */ + find(predicate: _Predicate, thisArg?: any): Observable; + } +} + +(function () { + var o : Rx.Observable; + o = o.find((x) => true); + o = o.find((x) => true, {}); +}); diff --git a/node_modules/rx/ts/core/linq/observable/findindex.ts b/node_modules/rx/ts/core/linq/observable/findindex.ts new file mode 100644 index 0000000..3c1d3a8 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/findindex.ts @@ -0,0 +1,19 @@ +/// +module Rx { + export interface Observable { + /** + * Searches for an element that matches the conditions defined by the specified predicate, and returns + * an Observable sequence with the zero-based index of the first occurrence within the entire Observable sequence. + * @param {Function} predicate The predicate that defines the conditions of the element to search for. + * @param {Any} [thisArg] Object to use as `this` when executing the predicate. + * @returns {Observable} An Observable sequence with the zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + */ + findIndex(predicate: _Predicate, thisArg?: any): Observable; + } +} + +(function () { + var o : Rx.Observable; + o = o.findIndex((x) => true); + o = o.findIndex((x) => true, {}); +}); diff --git a/node_modules/rx/ts/core/linq/observable/first.ts b/node_modules/rx/ts/core/linq/observable/first.ts new file mode 100644 index 0000000..165ed53 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/first.ts @@ -0,0 +1,16 @@ +/// +module Rx { + export interface Observable { + /** + * Returns the first element of an observable sequence that satisfies the condition in the predicate if present else the first item in the sequence. + * @returns {Observable} Sequence containing the first element in the observable sequence that satisfies the condition in the predicate if provided, else the first item in the sequence. + */ + first(predicate?: _Predicate, thisArg?: any): Observable; + } +} + +(function () { + var o : Rx.Observable; + o = o.first((x) => true); + o = o.first((x) => true, {}); +}); diff --git a/node_modules/rx/ts/core/linq/observable/flatmap.ts b/node_modules/rx/ts/core/linq/observable/flatmap.ts new file mode 100644 index 0000000..9ffcc65 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/flatmap.ts @@ -0,0 +1,196 @@ +/// +module Rx { + + export interface Observable { + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMap(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMap(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMap(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMap(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectMany(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectMany(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectMany(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectMany(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + } +} + +(function() { + var o: Rx.Observable; + var n: Rx.Observable; + n = o.flatMap(x => Rx.Observable.from([1, 2, 3])); + n = o.flatMap(x => Rx.Observable.from([1, 2, 3]).toPromise()); + n = o.flatMap(x => [1, 2, 3]); + n = o.flatMap((x, z, b) => Rx.Observable.from([1, 2, 3]), (x, y, a, b) => y); + n = o.flatMap(x => Rx.Observable.from([1, 2, 3]).toPromise(), (x, y) => y); + n = o.flatMap(x => [1, 2, 3], (x, y) => y); + n = o.flatMap(Rx.Observable.from([1, 2, 3])); + n = o.flatMap(Rx.Observable.from([1, 2, 3]).toPromise()); + n = o.flatMap([1, 2, 3]); + n = o.flatMap(Rx.Observable.from([1, 2, 3]), (x, y) => y); + n = o.flatMap(Rx.Observable.from([1, 2, 3]).toPromise(), (x, y) => y); + n = o.flatMap([1, 2, 3], (x, y) => y); + + n = o.selectMany(x => Rx.Observable.from([1, 2, 3])); + n = o.selectMany(x => Rx.Observable.from([1, 2, 3]).toPromise()); + n = o.selectMany(x => [1, 2, 3]); + n = o.selectMany(x => Rx.Observable.from([1, 2, 3]), (x, y) => y); + n = o.selectMany(x => Rx.Observable.from([1, 2, 3]).toPromise(), (x, y) => y); + n = o.selectMany(x => [1, 2, 3], (x, y) => y); + n = o.selectMany(Rx.Observable.from([1, 2, 3])); + n = o.selectMany(Rx.Observable.from([1, 2, 3]).toPromise()); + n = o.selectMany([1, 2, 3]); + n = o.selectMany(Rx.Observable.from([1, 2, 3]), (x, y) => y); + n = o.selectMany(Rx.Observable.from([1, 2, 3]).toPromise(), (x, y) => y); + n = o.selectMany([1, 2, 3], (x, y) => y); +}); diff --git a/node_modules/rx/ts/core/linq/observable/flatmapfirst.ts b/node_modules/rx/ts/core/linq/observable/flatmapfirst.ts new file mode 100644 index 0000000..aa57857 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/flatmapfirst.ts @@ -0,0 +1,109 @@ +/// +module Rx { + export interface Observable { + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + selectSwitchFirst(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + selectSwitchFirst(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + selectSwitchFirst(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + selectSwitchFirst(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + flatMapFirst(selector: _ValueOrSelector>): Observable; + + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + flatMapFirst(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + flatMapFirst(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + flatMapFirst(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + } +} + +(function() { + var o: Rx.Observable; + var n: Rx.Observable; + n = o.flatMapFirst(x => Rx.Observable.from([1, 2, 3])); + n = o.flatMapFirst(x => Rx.Observable.from([1, 2, 3]).toPromise()); + n = o.flatMapFirst(x => [1, 2, 3]); + n = o.flatMapFirst(x => Rx.Observable.from([1, 2, 3]), (x, y) => y); + n = o.flatMapFirst(x => Rx.Observable.from([1, 2, 3]).toPromise(), (x, y) => y); + n = o.flatMapFirst(x => [1, 2, 3], (x, y) => y); + n = o.flatMapFirst(Rx.Observable.from([1, 2, 3])); + n = o.flatMapFirst(Rx.Observable.from([1, 2, 3]).toPromise()); + n = o.flatMapFirst([1, 2, 3]); + n = o.flatMapFirst(Rx.Observable.from([1, 2, 3]), (x, y) => y); + n = o.flatMapFirst(Rx.Observable.from([1, 2, 3]).toPromise(), (x, y) => y); + n = o.flatMapFirst([1, 2, 3], (x, y) => y); + + n = o.selectSwitchFirst(x => Rx.Observable.from([1, 2, 3])); + n = o.selectSwitchFirst(x => Rx.Observable.from([1, 2, 3]).toPromise()); + n = o.selectSwitchFirst(x => [1, 2, 3]); + n = o.selectSwitchFirst(x => Rx.Observable.from([1, 2, 3]), (x, y) => y); + n = o.selectSwitchFirst(x => Rx.Observable.from([1, 2, 3]).toPromise(), (x, y) => y); + n = o.selectSwitchFirst(x => [1, 2, 3], (x, y) => y); + n = o.selectSwitchFirst(Rx.Observable.from([1, 2, 3])); + n = o.selectSwitchFirst(Rx.Observable.from([1, 2, 3]).toPromise()); + n = o.selectSwitchFirst([1, 2, 3]); + n = o.selectSwitchFirst(Rx.Observable.from([1, 2, 3]), (x, y) => y); + n = o.selectSwitchFirst(Rx.Observable.from([1, 2, 3]).toPromise(), (x, y) => y); + n = o.selectSwitchFirst([1, 2, 3], (x, y) => y); +}); diff --git a/node_modules/rx/ts/core/linq/observable/flatmaplatest.ts b/node_modules/rx/ts/core/linq/observable/flatmaplatest.ts new file mode 100644 index 0000000..6f44bbf --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/flatmaplatest.ts @@ -0,0 +1,108 @@ +/// +module Rx { + export interface Observable { + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + selectSwitch(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + selectSwitch(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + selectSwitch(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + selectSwitch(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + flatMapLatest(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + flatMapLatest(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + flatMapLatest(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + flatMapLatest(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + } +} + + +(function() { + var o: Rx.Observable; + var n: Rx.Observable; + n = o.flatMapLatest(x => Rx.Observable.from([1, 2, 3])); + n = o.flatMapLatest(x => Rx.Observable.from([1, 2, 3]).toPromise()); + n = o.flatMapLatest(x => [1, 2, 3]); + n = o.flatMapLatest(x => Rx.Observable.from([1, 2, 3]), (x, y) => y); + n = o.flatMapLatest(x => Rx.Observable.from([1, 2, 3]).toPromise(), (x, y) => y); + n = o.flatMapLatest(x => [1, 2, 3], (x, y) => y); + n = o.flatMapLatest(Rx.Observable.from([1, 2, 3])); + n = o.flatMapLatest(Rx.Observable.from([1, 2, 3]).toPromise()); + n = o.flatMapLatest([1, 2, 3]); + n = o.flatMapLatest(Rx.Observable.from([1, 2, 3]), (x, y) => y); + n = o.flatMapLatest(Rx.Observable.from([1, 2, 3]).toPromise(), (x, y) => y); + n = o.flatMapLatest([1, 2, 3], (x, y) => y); + + n = o.selectSwitch(x => Rx.Observable.from([1, 2, 3])); + n = o.selectSwitch(x => Rx.Observable.from([1, 2, 3]).toPromise()); + n = o.selectSwitch(x => [1, 2, 3]); + n = o.selectSwitch(x => Rx.Observable.from([1, 2, 3]), (x, y) => y); + n = o.selectSwitch(x => Rx.Observable.from([1, 2, 3]).toPromise(), (x, y) => y); + n = o.selectSwitch(x => [1, 2, 3], (x, y) => y); + n = o.selectSwitch(Rx.Observable.from([1, 2, 3])); + n = o.selectSwitch(Rx.Observable.from([1, 2, 3]).toPromise()); + n = o.selectSwitch([1, 2, 3]); + n = o.selectSwitch(Rx.Observable.from([1, 2, 3]), (x, y) => y); + n = o.selectSwitch(Rx.Observable.from([1, 2, 3]).toPromise(), (x, y) => y); + n = o.selectSwitch([1, 2, 3], (x, y) => y); +}); diff --git a/node_modules/rx/ts/core/linq/observable/flatmapwithmaxconcurrent.ts b/node_modules/rx/ts/core/linq/observable/flatmapwithmaxconcurrent.ts new file mode 100644 index 0000000..99a57e8 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/flatmapwithmaxconcurrent.ts @@ -0,0 +1,205 @@ +/// +module Rx { + export interface Observable { + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectManyWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectManyWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectManyWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectManyWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMapWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>): Observable; + + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMapWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMapWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMapWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + } +} + +(function() { + var o: Rx.Observable; + var n: Rx.Observable; + n = o.flatMapWithMaxConcurrent(1, x => Rx.Observable.from([1, 2, 3])); + n = o.flatMapWithMaxConcurrent(1, x => Rx.Observable.from([1, 2, 3]).toPromise()); + n = o.flatMapWithMaxConcurrent(1, x => [1, 2, 3]); + n = o.flatMapWithMaxConcurrent(1, x => Rx.Observable.from([1, 2, 3]), (x, y) => y); + n = o.flatMapWithMaxConcurrent(1, x => Rx.Observable.from([1, 2, 3]).toPromise(), (x, y) => y); + n = o.flatMapWithMaxConcurrent(1, x => [1, 2, 3], (x, y) => y); + n = o.flatMapWithMaxConcurrent(1, Rx.Observable.from([1, 2, 3])); + n = o.flatMapWithMaxConcurrent(1, Rx.Observable.from([1, 2, 3]).toPromise()); + n = o.flatMapWithMaxConcurrent(1, [1, 2, 3]); + n = o.flatMapWithMaxConcurrent(1, Rx.Observable.from([1, 2, 3]), (x, y) => y); + n = o.flatMapWithMaxConcurrent(1, Rx.Observable.from([1, 2, 3]).toPromise(), (x, y) => y); + n = o.flatMapWithMaxConcurrent(1, [1, 2, 3], (x, y) => y); + + n = o.selectManyWithMaxConcurrent(1, x => Rx.Observable.from([1, 2, 3])); + n = o.selectManyWithMaxConcurrent(1, x => Rx.Observable.from([1, 2, 3]).toPromise()); + n = o.selectManyWithMaxConcurrent(1, x => [1, 2, 3]); + n = o.selectManyWithMaxConcurrent(1, x => Rx.Observable.from([1, 2, 3]), (x, y) => y); + n = o.selectManyWithMaxConcurrent(1, x => Rx.Observable.from([1, 2, 3]).toPromise(), (x, y) => y); + n = o.selectManyWithMaxConcurrent(1, x => [1, 2, 3], (x, y) => y); + n = o.selectManyWithMaxConcurrent(1, Rx.Observable.from([1, 2, 3])); + n = o.selectManyWithMaxConcurrent(1, Rx.Observable.from([1, 2, 3]).toPromise()); + n = o.selectManyWithMaxConcurrent(1, [1, 2, 3]); + n = o.selectManyWithMaxConcurrent(1, Rx.Observable.from([1, 2, 3]), (x, y) => y); + n = o.selectManyWithMaxConcurrent(1, Rx.Observable.from([1, 2, 3]).toPromise(), (x, y) => y); + n = o.selectManyWithMaxConcurrent(1, [1, 2, 3], (x, y) => y); +}); diff --git a/node_modules/rx/ts/core/linq/observable/for.ts b/node_modules/rx/ts/core/linq/observable/for.ts new file mode 100644 index 0000000..d39376f --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/for.ts @@ -0,0 +1,27 @@ +/// +module Rx { + export interface ObservableStatic { + /** + * Concatenates the observable sequences obtained by running the specified result selector for each element in source. + * There is an alias for this method called 'forIn' for browsers (sources: T[], resultSelector: _Selector, thisArg?: any): Observable; + /** + * Concatenates the observable sequences obtained by running the specified result selector for each element in source. + * There is an alias for this method called 'forIn' for browsers (sources: T[], resultSelector: _Selector, thisArg?: any): Observable; + } +} + +(function() { + Rx.Observable.for(['a'], x => x); + Rx.Observable.forIn(['a'], x => x); + +}); diff --git a/node_modules/rx/ts/core/linq/observable/forkjoin.ts b/node_modules/rx/ts/core/linq/observable/forkjoin.ts new file mode 100644 index 0000000..01704ab --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/forkjoin.ts @@ -0,0 +1,31 @@ +/// +module Rx { + export interface ObservableStatic { + /** + * Runs all observable sequences in parallel and collect their last elements. + * + * @example + * 1 - res = Rx.Observable.forkJoin([obs1, obs2]); + * 1 - res = Rx.Observable.forkJoin(obs1, obs2, ...); + * @returns {Observable} An observable sequence with an array collecting the last elements of all the input sequences. + */ + forkJoin(sources: ObservableOrPromise[]): Observable; + + /** + * Runs all observable sequences in parallel and collect their last elements. + * + * @example + * 1 - res = Rx.Observable.forkJoin([obs1, obs2]); + * 1 - res = Rx.Observable.forkJoin(obs1, obs2, ...); + * @returns {Observable} An observable sequence with an array collecting the last elements of all the input sequences. + */ + forkJoin(...args: ObservableOrPromise[]): Observable; + } +} + +(function () { + var a : Rx.Observable; + var b : Rx.Promise; + Rx.Observable.forkJoin(a, b); + Rx.Observable.forkJoin([a, b]); +}); diff --git a/node_modules/rx/ts/core/linq/observable/forkjoinproto.ts b/node_modules/rx/ts/core/linq/observable/forkjoinproto.ts new file mode 100644 index 0000000..28bc65b --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/forkjoinproto.ts @@ -0,0 +1,20 @@ +/// +module Rx { + export interface Observable { + /** + * Runs two observable sequences in parallel and combines their last elemenets. + * + * @param {Observable} second Second observable sequence. + * @param {Function} resultSelector Result selector function to invoke with the last elements of both sequences. + * @returns {Observable} An observable sequence with the result of calling the selector function with the last elements of both input sequences. + */ + forkJoin(second: ObservableOrPromise, resultSelector: (left: T, right: TSecond) => TResult): Observable; + } +} + +(function () { + var a : Rx.Observable; + var b : Rx.Observable; + a = a.forkJoin(b, (a, b) => a); + b = a.forkJoin(b, (a, b) => b); +}); diff --git a/node_modules/rx/ts/core/linq/observable/from.ts b/node_modules/rx/ts/core/linq/observable/from.ts new file mode 100644 index 0000000..c7816e1 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/from.ts @@ -0,0 +1,31 @@ +/// +/// +module Rx { + export interface ObservableStatic { + /** + * This method creates a new Observable sequence from an array-like or iterable object. + * @param {Any} arrayLike An array-like or iterable object to convert to an Observable sequence. + * @param {Function} [mapFn] Map function to call on every element of the array. + * @param {Any} [thisArg] The context to use calling the mapFn if provided. + * @param {Scheduler} [scheduler] Optional scheduler to use for scheduling. If not provided, defaults to Scheduler.currentThread. + */ + from(array: ArrayOrIterable): Observable; + /** + * This method creates a new Observable sequence from an array-like or iterable object. + * @param {Any} arrayLike An array-like or iterable object to convert to an Observable sequence. + * @param {Function} [mapFn] Map function to call on every element of the array. + * @param {Any} [thisArg] The context to use calling the mapFn if provided. + * @param {Scheduler} [scheduler] Optional scheduler to use for scheduling. If not provided, defaults to Scheduler.currentThread. + */ + from(array: ArrayOrIterable, mapFn: (value: T, index: number) => TResult, thisArg?: any, scheduler?: IScheduler): Observable; + } +} + +(function () { + var a : Rx.Observable; + var b : Rx.Promise; + Rx.Observable.from([1,2,3]); + Rx.Observable.from([1,2,3], x => x + 1); + Rx.Observable.from([1,2,3], x => x + 1, {}); + Rx.Observable.from([1,2,3], x => x + 1, {}, Rx.Scheduler.async); +}); diff --git a/node_modules/rx/ts/core/linq/observable/fromarray.ts b/node_modules/rx/ts/core/linq/observable/fromarray.ts new file mode 100644 index 0000000..7b17a9e --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/fromarray.ts @@ -0,0 +1,18 @@ +/// +/// +module Rx { + export interface ObservableStatic { + /** + * Converts an array to an observable sequence, using an optional scheduler to enumerate the array. + * @deprecated use Observable.from or Observable.of + * @param {Scheduler} [scheduler] Scheduler to run the enumeration of the input sequence on. + * @returns {Observable} The observable sequence whose elements are pulled from the given enumerable sequence. + */ + fromArray(array: ArrayLike, scheduler?: IScheduler): Observable; + } +} + +(function () { + Rx.Observable.fromArray([1,2,3]); + Rx.Observable.fromArray([1,2,3], Rx.Scheduler.async); +}); diff --git a/node_modules/rx/ts/core/linq/observable/fromcallback.ts b/node_modules/rx/ts/core/linq/observable/fromcallback.ts new file mode 100644 index 0000000..de79a1b --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/fromcallback.ts @@ -0,0 +1,96 @@ +/// +/// +module Rx { + export interface ObservableStatic { + /** + * Converts a callback function to an observable sequence. + * + * @param {Function} function Function with a callback as the last parameter to convert to an Observable sequence. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback to produce a single item to yield on next. + * @returns {Function} A function, when executed with the required parameters minus the callback, produces an Observable sequence with a single value of the arguments to the callback as an array. + */ + fromCallback(func: Function, context: any, selector: Function): (...args: any[]) => Observable; + /** + * Converts a callback function to an observable sequence. + * + * @param {Function} function Function with a callback as the last parameter to convert to an Observable sequence. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback to produce a single item to yield on next. + * @returns {Function} A function, when executed with the required parameters minus the callback, produces an Observable sequence with a single value of the arguments to the callback as an array. + */ + fromCallback(func: (arg1: T1, callback: (result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1) => Observable; + /** + * Converts a callback function to an observable sequence. + * + * @param {Function} function Function with a callback as the last parameter to convert to an Observable sequence. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback to produce a single item to yield on next. + * @returns {Function} A function, when executed with the required parameters minus the callback, produces an Observable sequence with a single value of the arguments to the callback as an array. + */ + fromCallback(func: (arg1: T1, arg2: T2, callback: (result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2) => Observable; + /** + * Converts a callback function to an observable sequence. + * + * @param {Function} function Function with a callback as the last parameter to convert to an Observable sequence. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback to produce a single item to yield on next. + * @returns {Function} A function, when executed with the required parameters minus the callback, produces an Observable sequence with a single value of the arguments to the callback as an array. + */ + fromCallback(func: (arg1: T1, arg2: T2, arg3: T3, callback: (result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3) => Observable; + /** + * Converts a callback function to an observable sequence. + * + * @param {Function} function Function with a callback as the last parameter to convert to an Observable sequence. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback to produce a single item to yield on next. + * @returns {Function} A function, when executed with the required parameters minus the callback, produces an Observable sequence with a single value of the arguments to the callback as an array. + */ + fromCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Observable; + /** + * Converts a callback function to an observable sequence. + * + * @param {Function} function Function with a callback as the last parameter to convert to an Observable sequence. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback to produce a single item to yield on next. + * @returns {Function} A function, when executed with the required parameters minus the callback, produces an Observable sequence with a single value of the arguments to the callback as an array. + */ + fromCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Observable; + /** + * Converts a callback function to an observable sequence. + * + * @param {Function} function Function with a callback as the last parameter to convert to an Observable sequence. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback to produce a single item to yield on next. + * @returns {Function} A function, when executed with the required parameters minus the callback, produces an Observable sequence with a single value of the arguments to the callback as an array. + */ + fromCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, callback: (result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Observable; + /** + * Converts a callback function to an observable sequence. + * + * @param {Function} function Function with a callback as the last parameter to convert to an Observable sequence. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback to produce a single item to yield on next. + * @returns {Function} A function, when executed with the required parameters minus the callback, produces an Observable sequence with a single value of the arguments to the callback as an array. + */ + fromCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7, callback: (result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7) => Observable; + /** + * Converts a callback function to an observable sequence. + * + * @param {Function} function Function with a callback as the last parameter to convert to an Observable sequence. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback to produce a single item to yield on next. + * @returns {Function} A function, when executed with the required parameters minus the callback, produces an Observable sequence with a single value of the arguments to the callback as an array. + */ + fromCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7, arg8: T8, callback: (result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7, arg8: T8) => Observable; + /** + * Converts a callback function to an observable sequence. + * + * @param {Function} function Function with a callback as the last parameter to convert to an Observable sequence. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback to produce a single item to yield on next. + * @returns {Function} A function, when executed with the required parameters minus the callback, produces an Observable sequence with a single value of the arguments to the callback as an array. + */ + fromCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7, arg8: T8, arg9: T9, callback: (result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7, arg8: T8, arg9: T9) => Observable; + } +} diff --git a/node_modules/rx/ts/core/linq/observable/fromevent.ts b/node_modules/rx/ts/core/linq/observable/fromevent.ts new file mode 100644 index 0000000..1c193f3 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/fromevent.ts @@ -0,0 +1,22 @@ +/// +/// +module Rx { + export interface ObservableStatic { + /** + * Creates an observable sequence by adding an event listener to the matching DOMElement or each item in the NodeList. + * @param {Object} element The DOMElement or NodeList to attach a listener. + * @param {String} eventName The event name to attach the observable sequence. + * @param {Function} [selector] A selector which takes the arguments from the event handler to produce a single item to yield on next. + * @returns {Observable} An observable sequence of events from the specified element and the specified event. + */ + fromEvent(element: EventTarget, eventName: string, selector?: (arguments: any[]) => T): Observable; + /** + * Creates an observable sequence by adding an event listener to the matching DOMElement or each item in the NodeList. + * @param {Object} element The DOMElement or NodeList to attach a listener. + * @param {String} eventName The event name to attach the observable sequence. + * @param {Function} [selector] A selector which takes the arguments from the event handler to produce a single item to yield on next. + * @returns {Observable} An observable sequence of events from the specified element and the specified event. + */ + fromEvent(element: { on: (name: string, cb: (e: any) => any) => void; off: (name: string, cb: (e: any) => any) => void }, eventName: string, selector?: (arguments: any[]) => T): Observable; + } +} diff --git a/node_modules/rx/ts/core/linq/observable/fromeventpattern.ts b/node_modules/rx/ts/core/linq/observable/fromeventpattern.ts new file mode 100644 index 0000000..052c0f4 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/fromeventpattern.ts @@ -0,0 +1,13 @@ +/// +module Rx { + export interface ObservableStatic { + /** + * Creates an observable sequence from an event emitter via an addHandler/removeHandler pair. + * @param {Function} addHandler The function to add a handler to the emitter. + * @param {Function} [removeHandler] The optional function to remove a handler from an emitter. + * @param {Function} [selector] A selector which takes the arguments from the event handler to produce a single item to yield on next. + * @returns {Observable} An observable sequence which wraps an event from an event emitter + */ + fromEventPattern(addHandler: (handler: Function) => void, removeHandler: (handler: Function) => void, selector?: (arguments: any[]) => T): Observable; + } +} diff --git a/node_modules/rx/ts/core/linq/observable/fromnodecallback.ts b/node_modules/rx/ts/core/linq/observable/fromnodecallback.ts new file mode 100644 index 0000000..148f958 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/fromnodecallback.ts @@ -0,0 +1,85 @@ +/// +module Rx { + export interface ObservableStatic { + /** + * Converts a Node.js callback style function to an observable sequence. This must be in function (err, ...) format. + * @param {Function} func The function to call + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback minus the error to produce a single item to yield on next. + * @returns {Function} An async function which when applied, returns an observable sequence with the callback arguments as an array. + */ + fromNodeCallback(func: Function, context?: any, selector?: Function): (...args: any[]) => Observable; + /** + * Converts a Node.js callback style function to an observable sequence. This must be in function (err, ...) format. + * @param {Function} func The function to call + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback minus the error to produce a single item to yield on next. + * @returns {Function} An async function which when applied, returns an observable sequence with the callback arguments as an array. + */ + fromNodeCallback(func: (arg1: T1, callback: (err: any, result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1) => Observable; + /** + * Converts a Node.js callback style function to an observable sequence. This must be in function (err, ...) format. + * @param {Function} func The function to call + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback minus the error to produce a single item to yield on next. + * @returns {Function} An async function which when applied, returns an observable sequence with the callback arguments as an array. + */ + fromNodeCallback(func: (arg1: T1, arg2: T2, callback: (err: any, result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2) => Observable; + /** + * Converts a Node.js callback style function to an observable sequence. This must be in function (err, ...) format. + * @param {Function} func The function to call + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback minus the error to produce a single item to yield on next. + * @returns {Function} An async function which when applied, returns an observable sequence with the callback arguments as an array. + */ + fromNodeCallback(func: (arg1: T1, arg2: T2, arg3: T3, callback: (err: any, result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3) => Observable; + /** + * Converts a Node.js callback style function to an observable sequence. This must be in function (err, ...) format. + * @param {Function} func The function to call + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback minus the error to produce a single item to yield on next. + * @returns {Function} An async function which when applied, returns an observable sequence with the callback arguments as an array. + */ + fromNodeCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: any, result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Observable; + /** + * Converts a Node.js callback style function to an observable sequence. This must be in function (err, ...) format. + * @param {Function} func The function to call + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback minus the error to produce a single item to yield on next. + * @returns {Function} An async function which when applied, returns an observable sequence with the callback arguments as an array. + */ + fromNodeCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: any, result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Observable; + /** + * Converts a Node.js callback style function to an observable sequence. This must be in function (err, ...) format. + * @param {Function} func The function to call + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback minus the error to produce a single item to yield on next. + * @returns {Function} An async function which when applied, returns an observable sequence with the callback arguments as an array. + */ + fromNodeCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, callback: (err: any, result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Observable; + /** + * Converts a Node.js callback style function to an observable sequence. This must be in function (err, ...) format. + * @param {Function} func The function to call + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback minus the error to produce a single item to yield on next. + * @returns {Function} An async function which when applied, returns an observable sequence with the callback arguments as an array. + */ + fromNodeCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7, callback: (err: any, result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7) => Observable; + /** + * Converts a Node.js callback style function to an observable sequence. This must be in function (err, ...) format. + * @param {Function} func The function to call + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback minus the error to produce a single item to yield on next. + * @returns {Function} An async function which when applied, returns an observable sequence with the callback arguments as an array. + */ + fromNodeCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7, arg8: T8, callback: (err: any, result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7, arg8: T8) => Observable; + /** + * Converts a Node.js callback style function to an observable sequence. This must be in function (err, ...) format. + * @param {Function} func The function to call + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback minus the error to produce a single item to yield on next. + * @returns {Function} An async function which when applied, returns an observable sequence with the callback arguments as an array. + */ + fromNodeCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7, arg8: T8, arg9: T9, callback: (err: any, result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7, arg8: T8, arg9: T9) => Observable; + } +} diff --git a/node_modules/rx/ts/core/linq/observable/frompromise.ts b/node_modules/rx/ts/core/linq/observable/frompromise.ts new file mode 100644 index 0000000..e9a1f9d --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/frompromise.ts @@ -0,0 +1,16 @@ +/// +module Rx { + export interface ObservableStatic { + /** + * Converts a Promise to an Observable sequence + * @param {Promise} An ES6 Compliant promise. + * @returns {Observable} An Observable sequence which wraps the existing promise success and failure. + */ + fromPromise(promise: Promise): Observable; + } +} + +(function () { + var p : Rx.Promise; + var o : Rx.Observable = Rx.Observable.fromPromise(p); +}) diff --git a/node_modules/rx/ts/core/linq/observable/generate.ts b/node_modules/rx/ts/core/linq/observable/generate.ts new file mode 100644 index 0000000..fd8f134 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/generate.ts @@ -0,0 +1,20 @@ +/// +/// +module Rx { + export interface ObservableStatic { + /** + * Generates an observable sequence by running a state-driven loop producing the sequence's elements, using the specified scheduler to send out observer messages. + * + * @example + * var res = Rx.Observable.generate(0, function (x) { return x < 10; }, function (x) { return x + 1; }, function (x) { return x; }); + * var res = Rx.Observable.generate(0, function (x) { return x < 10; }, function (x) { return x + 1; }, function (x) { return x; }, Rx.Scheduler.timeout); + * @param {Mixed} initialState Initial state. + * @param {Function} condition Condition to terminate generation (upon returning false). + * @param {Function} iterate Iteration step function. + * @param {Function} resultSelector Selector function for results produced in the sequence. + * @param {Scheduler} [scheduler] Scheduler on which to run the generator loop. If not provided, defaults to Scheduler.currentThread. + * @returns {Observable} The generated sequence. + */ + generate(initialState: TState, condition: (state: TState) => boolean, iterate: (state: TState) => TState, resultSelector: (state: TState) => TResult, scheduler?: IScheduler): Observable; + } +} diff --git a/node_modules/rx/ts/core/linq/observable/generatewithabsolutetime.ts b/node_modules/rx/ts/core/linq/observable/generatewithabsolutetime.ts new file mode 100644 index 0000000..362a5f2 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/generatewithabsolutetime.ts @@ -0,0 +1,32 @@ +/// +/// +module Rx { + export interface ObservableStatic { + /** + * Generates an observable sequence by iterating a state from an initial state until the condition fails. + * + * @example + * res = source.generateWithAbsoluteTime(0, + * function (x) { return return true; }, + * function (x) { return x + 1; }, + * function (x) { return x; }, + * function (x) { return new Date(); } + * }); + * + * @param {Mixed} initialState Initial state. + * @param {Function} condition Condition to terminate generation (upon returning false). + * @param {Function} iterate Iteration step function. + * @param {Function} resultSelector Selector function for results produced in the sequence. + * @param {Function} timeSelector Time selector function to control the speed of values being produced each iteration, returning Date values. + * @param {Scheduler} [scheduler] Scheduler on which to run the generator loop. If not specified, the timeout scheduler is used. + * @returns {Observable} The generated sequence. + */ + generateWithAbsoluteTime( + initialState: TState, + condition: (state: TState) => boolean, + iterate: (state: TState) => TState, + resultSelector: (state: TState) => TResult, + timeSelector: (state: TState) => Date, + scheduler?: IScheduler): Observable; + } +} diff --git a/node_modules/rx/ts/core/linq/observable/generatewithrelativetime.ts b/node_modules/rx/ts/core/linq/observable/generatewithrelativetime.ts new file mode 100644 index 0000000..c0049ee --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/generatewithrelativetime.ts @@ -0,0 +1,32 @@ +/// +/// +module Rx { + export interface ObservableStatic { + /** + * Generates an observable sequence by iterating a state from an initial state until the condition fails. + * + * @example + * res = source.generateWithRelativeTime(0, + * function (x) { return return true; }, + * function (x) { return x + 1; }, + * function (x) { return x; }, + * function (x) { return 500; } + * ); + * + * @param {Mixed} initialState Initial state. + * @param {Function} condition Condition to terminate generation (upon returning false). + * @param {Function} iterate Iteration step function. + * @param {Function} resultSelector Selector function for results produced in the sequence. + * @param {Function} timeSelector Time selector function to control the speed of values being produced each iteration, returning integer values denoting milliseconds. + * @param {Scheduler} [scheduler] Scheduler on which to run the generator loop. If not specified, the timeout scheduler is used. + * @returns {Observable} The generated sequence. + */ + generateWithRelativeTime( + initialState: TState, + condition: (state: TState) => boolean, + iterate: (state: TState) => TState, + resultSelector: (state: TState) => TResult, + timeSelector: (state: TState) => number, + scheduler?: IScheduler): Observable; + } +} diff --git a/node_modules/rx/ts/core/linq/observable/groupby.ts b/node_modules/rx/ts/core/linq/observable/groupby.ts new file mode 100644 index 0000000..af4cde2 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/groupby.ts @@ -0,0 +1,29 @@ +/// +module Rx { + export interface Observable { + /** + * Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + * + * @example + * var res = observable.groupBy(function (x) { return x.id; }); + * 2 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }); + * 3 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }, function (x) { return x.toString(); }); + * @param {Function} keySelector A function to extract the key for each element. + * @param {Function} [elementSelector] A function to map each source element to an element in an observable group. + * @returns {Observable} A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + */ + groupBy(keySelector: (value: T) => TKey, skipElementSelector?: boolean, keySerializer?: (key: TKey) => string): Observable>; + /** + * Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + * + * @example + * var res = observable.groupBy(function (x) { return x.id; }); + * 2 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }); + * 3 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }, function (x) { return x.toString(); }); + * @param {Function} keySelector A function to extract the key for each element. + * @param {Function} [elementSelector] A function to map each source element to an element in an observable group. + * @returns {Observable} A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + */ + groupBy(keySelector: (value: T) => TKey, elementSelector: (value: T) => TElement, keySerializer?: (key: TKey) => string): Observable>; + } +} diff --git a/node_modules/rx/ts/core/linq/observable/groupbyuntil.ts b/node_modules/rx/ts/core/linq/observable/groupbyuntil.ts new file mode 100644 index 0000000..ba52300 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/groupbyuntil.ts @@ -0,0 +1,41 @@ +/// +/// +module Rx { + export interface Observable { + /** + * Groups the elements of an observable sequence according to a specified key selector function. + * A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + * key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + * + * @example + * var res = observable.groupByUntil(function (x) { return x.id; }, null, function () { return Rx.Observable.never(); }); + * 2 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }, function () { return Rx.Observable.never(); }); + * 3 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }, function () { return Rx.Observable.never(); }, function (x) { return x.toString(); }); + * @param {Function} keySelector A function to extract the key for each element. + * @param {Function} durationSelector A function to signal the expiration of a group. + * @returns {Observable} + * A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + * If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encoutered. + * + */ + groupByUntil(keySelector: (value: T) => TKey, skipElementSelector: boolean, durationSelector: (group: GroupedObservable) => Observable, keySerializer?: (key: TKey) => string): Observable>; + + /** + * Groups the elements of an observable sequence according to a specified key selector function. + * A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + * key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + * + * @example + * var res = observable.groupByUntil(function (x) { return x.id; }, null, function () { return Rx.Observable.never(); }); + * 2 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }, function () { return Rx.Observable.never(); }); + * 3 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }, function () { return Rx.Observable.never(); }, function (x) { return x.toString(); }); + * @param {Function} keySelector A function to extract the key for each element. + * @param {Function} durationSelector A function to signal the expiration of a group. + * @returns {Observable} + * A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + * If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encoutered. + * + */ + groupByUntil(keySelector: (value: T) => TKey, elementSelector: (value: T) => TElement, durationSelector: (group: GroupedObservable) => Observable, keySerializer?: (key: TKey) => string): Observable>; + } +} diff --git a/node_modules/rx/ts/core/linq/observable/groupjoin.ts b/node_modules/rx/ts/core/linq/observable/groupjoin.ts new file mode 100644 index 0000000..3c8fee1 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/groupjoin.ts @@ -0,0 +1,19 @@ +/// +module Rx { + export interface Observable { + /** + * Correlates the elements of two sequences based on overlapping durations, and groups the results. + * + * @param {Observable} right The right observable sequence to join elements for. + * @param {Function} leftDurationSelector A function to select the duration (expressed as an observable sequence) of each element of the left observable sequence, used to determine overlap. + * @param {Function} rightDurationSelector A function to select the duration (expressed as an observable sequence) of each element of the right observable sequence, used to determine overlap. + * @param {Function} resultSelector A function invoked to compute a result element for any element of the left sequence with overlapping elements from the right observable sequence. The first parameter passed to the function is an element of the left sequence. The second parameter passed to the function is an observable sequence with elements from the right sequence that overlap with the left sequence's element. + * @returns {Observable} An observable sequence that contains result elements computed from source elements that have an overlapping duration. + */ + groupJoin( + right: Observable, + leftDurationSelector: (leftItem: T) => Observable, + rightDurationSelector: (rightItem: TRight) => Observable, + resultSelector: (leftItem: T, rightItem: Observable) => TResult): Observable; + } +} diff --git a/node_modules/rx/ts/core/linq/observable/if.ts b/node_modules/rx/ts/core/linq/observable/if.ts new file mode 100644 index 0000000..420bcba --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/if.ts @@ -0,0 +1,27 @@ +/// +/// +module Rx { + export interface ObservableStatic { + /** + * Determines whether an observable collection contains values. + * + * @example + * 1 - res = Rx.Observable.if(condition, obs1); + * 2 - res = Rx.Observable.if(condition, obs1, obs2); + * 3 - res = Rx.Observable.if(condition, obs1, scheduler); + * @param {Function} condition The condition which determines if the thenSource or elseSource will be run. + * @param {Observable} thenSource The observable sequence or Promise that will be run if the condition function returns true. + * @param {Observable} [elseSource] The observable sequence or Promise that will be run if the condition function returns false. If this is not provided, it defaults to Rx.Observabe.Empty with the specified scheduler. + * @returns {Observable} An observable sequence which is either the thenSource or elseSource. + */ + if(condition: () => boolean, thenSource: ObservableOrPromise, elseSourceOrScheduler?: ObservableOrPromise | IScheduler): Observable; + } +} + +(function () { + var o : Rx.Observable; + + Rx.Observable.if(() => false, o); + Rx.Observable.if(() => false, o, o); + Rx.Observable.if(() => false, o, Rx.Scheduler.async); +}) diff --git a/node_modules/rx/ts/core/linq/observable/ignoreelements.ts b/node_modules/rx/ts/core/linq/observable/ignoreelements.ts new file mode 100644 index 0000000..295201b --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/ignoreelements.ts @@ -0,0 +1,15 @@ +/// +module Rx { + export interface Observable { + /** + * Ignores all elements in an observable sequence leaving only the termination messages. + * @returns {Observable} An empty observable sequence that signals termination, successful or exceptional, of the source sequence. + */ + ignoreElements(): Observable; + } +} + +(function () { + var o : Rx.Observable; + o.ignoreElements(); +}); diff --git a/node_modules/rx/ts/core/linq/observable/includes.ts b/node_modules/rx/ts/core/linq/observable/includes.ts new file mode 100644 index 0000000..d0b7d10 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/includes.ts @@ -0,0 +1,17 @@ +/// +module Rx { + export interface Observable { + /** + * Determines whether an observable sequence includes a specified element with an optional equality comparer. + * @param searchElement The value to locate in the source sequence. + * @param {Number} [fromIndex] An equality comparer to compare elements. + * @returns {Observable} An observable sequence containing a single element determining whether the source sequence includes an element that has the specified value from the given index. + */ + includes(value: T, comparer?: _Comparer): Observable; + } +} + +(function () { + var o : Rx.Observable; + var b : Rx.Observable = o.includes('a'); +}); diff --git a/node_modules/rx/ts/core/linq/observable/indexof.ts b/node_modules/rx/ts/core/linq/observable/indexof.ts new file mode 100644 index 0000000..4cfef85 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/indexof.ts @@ -0,0 +1,18 @@ +/// +module Rx { + export interface Observable { + /** + * Returns the first index at which a given element can be found in the observable sequence, or -1 if it is not present. + * @param {Any} searchElement Element to locate in the array. + * @param {Number} [fromIndex] The index to start the search. If not specified, defaults to 0. + * @returns {Observable} And observable sequence containing the first index at which a given element can be found in the observable sequence, or -1 if it is not present. + */ + indexOf(element: T, fromIndex?: number): Observable; + } +} + +(function () { + var o : Rx.Observable; + var b : Rx.Observable = o.indexOf('a'); + var b : Rx.Observable = o.indexOf('a', 1); +}); diff --git a/node_modules/rx/ts/core/linq/observable/interval.ts b/node_modules/rx/ts/core/linq/observable/interval.ts new file mode 100644 index 0000000..71bed04 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/interval.ts @@ -0,0 +1,23 @@ +/// +module Rx { + export interface ObservableStatic { + /** + * Returns an observable sequence that produces a value after each period. + * + * @example + * 1 - res = Rx.Observable.interval(1000); + * 2 - res = Rx.Observable.interval(1000, Rx.Scheduler.timeout); + * + * @param {Number} period Period for producing the values in the resulting sequence (specified as an integer denoting milliseconds). + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, Rx.Scheduler.timeout is used. + * @returns {Observable} An observable sequence that produces a value after each period. + */ + interval(period: number, scheduler?: IScheduler): Observable; + } +} + +(function () { + var o : Rx.Observable; + o = Rx.Observable.interval(100); + o = Rx.Observable.interval(100, Rx.Scheduler.async); +}); diff --git a/node_modules/rx/ts/core/linq/observable/isempty.ts b/node_modules/rx/ts/core/linq/observable/isempty.ts new file mode 100644 index 0000000..db9ba3b --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/isempty.ts @@ -0,0 +1,15 @@ +/// +module Rx { + export interface Observable { + /** + * Determines whether an observable sequence is empty. + * @returns {Observable} An observable sequence containing a single element determining whether the source sequence is empty. + */ + isEmpty(): Observable; + } +} + +(function () { + var o : Rx.Observable; + var b : Rx.Observable = o.isEmpty(); +}); diff --git a/node_modules/rx/ts/core/linq/observable/join.ts b/node_modules/rx/ts/core/linq/observable/join.ts new file mode 100644 index 0000000..3804306 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/join.ts @@ -0,0 +1,19 @@ +/// +module Rx { + export interface Observable { + /** + * Correlates the elements of two sequences based on overlapping durations. + * + * @param {Observable} right The right observable sequence to join elements for. + * @param {Function} leftDurationSelector A function to select the duration (expressed as an observable sequence) of each element of the left observable sequence, used to determine overlap. + * @param {Function} rightDurationSelector A function to select the duration (expressed as an observable sequence) of each element of the right observable sequence, used to determine overlap. + * @param {Function} resultSelector A function invoked to compute a result element for any two overlapping elements of the left and right observable sequences. The parameters passed to the function correspond with the elements from the left and right source sequences for which overlap occurs. + * @returns {Observable} An observable sequence that contains result elements computed from source elements that have an overlapping duration. + */ + join( + right: Observable, + leftDurationSelector: (leftItem: T) => Observable, + rightDurationSelector: (rightItem: TRight) => Observable, + resultSelector: (leftItem: T, rightItem: TRight) => TResult): Observable; + } +} diff --git a/node_modules/rx/ts/core/linq/observable/jortsort.ts b/node_modules/rx/ts/core/linq/observable/jortsort.ts new file mode 100644 index 0000000..2e4b72c --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/jortsort.ts @@ -0,0 +1,16 @@ +/// +module Rx { + export interface Observable { + /** + * jortSort checks if your inputs are sorted. Note that this is only for a sequence with an end. + * See http://jort.technology/ for full details. + * @returns {Observable} An observable which has a single value of true if sorted, else false. + */ + jortSort(): Observable; + } +} + +(function () { + var o : Rx.Observable; + var b : Rx.Observable = o.jortSort(); +}); diff --git a/node_modules/rx/ts/core/linq/observable/jortsortuntil.ts b/node_modules/rx/ts/core/linq/observable/jortsortuntil.ts new file mode 100644 index 0000000..b92ab39 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/jortsortuntil.ts @@ -0,0 +1,16 @@ +/// +module Rx { + export interface Observable { + /** + * jortSort checks if your inputs are sorted until another Observable sequence fires. + * See http://jort.technology/ for full details. + * @returns {Observable} An observable which has a single value of true if sorted, else false. + */ + jortSortUntil(other: TOther): Observable; + } +} + +(function () { + var o : Rx.Observable; + var b : Rx.Observable = o.jortSortUntil(o); +}); diff --git a/node_modules/rx/ts/core/linq/observable/just.ts b/node_modules/rx/ts/core/linq/observable/just.ts new file mode 100644 index 0000000..cccb521 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/just.ts @@ -0,0 +1,31 @@ +/// +/// +module Rx { + export interface ObservableStatic { + /** + * Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages. + * There is an alias called 'just' or browsers (value: T, scheduler?: IScheduler): Observable; + /** + * Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages. + * There is an alias called 'just' or browsers (value: T, scheduler?: IScheduler): Observable; + } +} + +(function () { + var a : Rx.Observable; + var b : Rx.Observable; + b = Rx.Observable.return(1); + a = Rx.Observable.return('a', Rx.Scheduler.async); + b = Rx.Observable.just(1); + a = Rx.Observable.just('a', Rx.Scheduler.async); +}); diff --git a/node_modules/rx/ts/core/linq/observable/last.ts b/node_modules/rx/ts/core/linq/observable/last.ts new file mode 100644 index 0000000..c3235b2 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/last.ts @@ -0,0 +1,16 @@ +/// +module Rx { + export interface Observable { + /** + * Returns the last element of an observable sequence that satisfies the condition in the predicate if specified, else the last element. + * @returns {Observable} Sequence containing the last element in the observable sequence that satisfies the condition in the predicate. + */ + last(predicate?: _Predicate, thisArg?: any): Observable; + } +} + +(function () { + var o : Rx.Observable; + o = o.last((x) => true); + o = o.last((x) => true, {}); +}); diff --git a/node_modules/rx/ts/core/linq/observable/let.ts b/node_modules/rx/ts/core/linq/observable/let.ts new file mode 100644 index 0000000..c3dfcc3 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/let.ts @@ -0,0 +1,19 @@ +/// +module Rx { + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on the source sequence, without sharing subscriptions. + * This operator allows for a fluent style of writing queries that use the same sequence multiple times. + * + * @param {Function} selector Selector function which can use the source sequence as many times as needed, without sharing subscriptions to the source sequence. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + let(selector: (source: Observable) => Observable): Observable; + } +} + +(function () { + var a : Rx.Observable; + var b : Rx.Observable; + a.let(x => x.concat(Rx.Observable.just('a'))); +}); diff --git a/node_modules/rx/ts/core/linq/observable/manyselect.ts b/node_modules/rx/ts/core/linq/observable/manyselect.ts new file mode 100644 index 0000000..e0d7dc9 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/manyselect.ts @@ -0,0 +1,27 @@ +/// +/// +module Rx { + export interface Observable { + /** + * Comonadic bind operator. + * @param {Function} selector A transform function to apply to each element. + * @param {Object} scheduler Scheduler used to execute the operation. If not specified, defaults to the ImmediateScheduler. + * @returns {Observable} An observable sequence which results from the comonadic bind operation. + */ + manySelect(selector: _Selector, TResult>, scheduler?: IScheduler): Observable; + /** + * Comonadic bind operator. + * @param {Function} selector A transform function to apply to each element. + * @param {Object} scheduler Scheduler used to execute the operation. If not specified, defaults to the ImmediateScheduler. + * @returns {Observable} An observable sequence which results from the comonadic bind operation. + */ + extend(selector: _Selector, TResult>, scheduler?: IScheduler): Observable; + } +} + +(function() { + var o: Rx.Observable; + + var oo: Rx.Observable> = o.extend(x => x.first()); + var oo: Rx.Observable> = o.manySelect(x => x.first()); +}); diff --git a/node_modules/rx/ts/core/linq/observable/map.ts b/node_modules/rx/ts/core/linq/observable/map.ts new file mode 100644 index 0000000..2d09059 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/map.ts @@ -0,0 +1,27 @@ +/// +module Rx { + export interface Observable { + /** + * Projects each element of an observable sequence into a new form by incorporating the element's index. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source. + */ + select(selector: _Selector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new form by incorporating the element's index. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source. + */ + map(selector: _Selector, thisArg?: any): Observable; + } +} + +(function () { + var o : Rx.Observable; + o = o.map((x) => true); + o = o.map((x) => true, {}); + o = o.select((x) => true); + o = o.select((x) => true, {}); +}); diff --git a/node_modules/rx/ts/core/linq/observable/materialize.ts b/node_modules/rx/ts/core/linq/observable/materialize.ts new file mode 100644 index 0000000..5aec661 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/materialize.ts @@ -0,0 +1,15 @@ +/// +module Rx { + export interface Observable { + /** + * Materializes the implicit notifications of an observable sequence as explicit notification values. + * @returns {Observable} An observable sequence containing the materialized notification values from the source sequence. + */ + materialize(): Observable; + } +} + +(function () { + var o : Rx.Observable; + o = o.materialize(); +}); diff --git a/node_modules/rx/ts/core/linq/observable/max.ts b/node_modules/rx/ts/core/linq/observable/max.ts new file mode 100644 index 0000000..5073411 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/max.ts @@ -0,0 +1,21 @@ +/// +module Rx { + export interface Observable { + /** + * Returns the maximum value in an observable sequence according to the specified comparer. + * @example + * var res = source.max(); + * var res = source.max(function (x, y) { return x.value - y.value; }); + * @param {Function} [comparer] Comparer used to compare elements. + * @returns {Observable} An observable sequence containing a single element with the maximum element in the source sequence. + */ + max(comparer?: _Comparer): Observable; + } +} + +(function () { + var o : Rx.Observable; + var a : Rx.Observable; + o = o.max(); + o = a.max((x, y) => x.length - y.length); +}); diff --git a/node_modules/rx/ts/core/linq/observable/maxby.ts b/node_modules/rx/ts/core/linq/observable/maxby.ts new file mode 100644 index 0000000..fb63700 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/maxby.ts @@ -0,0 +1,32 @@ +/// +module Rx { + export interface Observable { + /** + * Returns the elements in an observable sequence with the maximum key value according to the specified comparer. + * @example + * var res = source.maxBy(function (x) { return x.value; }); + * var res = source.maxBy(function (x) { return x.value; }, function (x, y) { return x - y;; }); + * @param {Function} keySelector Key selector function. + * @param {Function} [comparer] Comparer used to compare key values. + * @returns {Observable} An observable sequence containing a list of zero or more elements that have a maximum key value. + */ + maxBy(keySelector: (item: T) => TKey, comparer: _Comparer): Observable; + /** + * Returns the elements in an observable sequence with the maximum key value according to the specified comparer. + * @example + * var res = source.maxBy(function (x) { return x.value; }); + * var res = source.maxBy(function (x) { return x.value; }, function (x, y) { return x - y;; }); + * @param {Function} keySelector Key selector function. + * @param {Function} [comparer] Comparer used to compare key values. + * @returns {Observable} An observable sequence containing a list of zero or more elements that have a maximum key value. + */ + maxBy(keySelector: (item: T) => number): Observable; + } +} + +(function () { + var o : Rx.Observable<{value:number}>; + var a : Rx.Observable<{value: string}>; + o = o.maxBy(x => x.value); + a = a.maxBy(x => x.value, (x, y) => x.length - y.length); +}); diff --git a/node_modules/rx/ts/core/linq/observable/merge.ts b/node_modules/rx/ts/core/linq/observable/merge.ts new file mode 100644 index 0000000..be347c0 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/merge.ts @@ -0,0 +1,40 @@ +/// +/// +module Rx { + export interface ObservableStatic { + /** + * Merges all the observable sequences into a single observable sequence. + * The scheduler is optional and if not specified, the immediate scheduler is used. + * @returns {Observable} The observable sequence that merges the elements of the observable sequences. + */ + merge(...sources: ObservableOrPromise[]): Observable; + /** + * Merges all the observable sequences into a single observable sequence. + * The scheduler is optional and if not specified, the immediate scheduler is used. + * @returns {Observable} The observable sequence that merges the elements of the observable sequences. + */ + merge(sources: ObservableOrPromise[]): Observable; + /** + * Merges all the observable sequences into a single observable sequence. + * The scheduler is optional and if not specified, the immediate scheduler is used. + * @returns {Observable} The observable sequence that merges the elements of the observable sequences. + */ + merge(scheduler: IScheduler, ...sources: ObservableOrPromise[]): Observable; + /** + * Merges all the observable sequences into a single observable sequence. + * The scheduler is optional and if not specified, the immediate scheduler is used. + * @returns {Observable} The observable sequence that merges the elements of the observable sequences. + */ + merge(scheduler: IScheduler, sources: ObservableOrPromise[]): Observable; + } +} + +(function() { + var o: Rx.Observable; + var p: Rx.Promise; + + o = Rx.Observable.merge(o, p, o, p); + o = Rx.Observable.merge([o, p, o, p]); + o = Rx.Observable.merge(Rx.Scheduler.async, o, p, o, p); + o = Rx.Observable.merge(Rx.Scheduler.async, [o, p, o, p]); +}); diff --git a/node_modules/rx/ts/core/linq/observable/mergeall.ts b/node_modules/rx/ts/core/linq/observable/mergeall.ts new file mode 100644 index 0000000..09e9ca0 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/mergeall.ts @@ -0,0 +1,17 @@ +/// +module Rx { + export interface Observable { + /** + * Merges an observable sequence of observable sequences into an observable sequence. + * @returns {Observable} The observable sequence that merges the elements of the inner sequences. + */ + mergeAll(): T; + } +} + + +(function() { + var o: Rx.Observable>; + + var oo : Rx.Observable = o.mergeAll(); +}); diff --git a/node_modules/rx/ts/core/linq/observable/mergeconcat.ts b/node_modules/rx/ts/core/linq/observable/mergeconcat.ts new file mode 100644 index 0000000..1fe8d58 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/mergeconcat.ts @@ -0,0 +1,37 @@ +/// +module Rx { + export interface Observable { + /** + * Merges an observable sequence of observable sequences into an observable sequence, limiting the number of concurrent subscriptions to inner sequences. + * Or merges two observable sequences into a single observable sequence. + * + * @example + * 1 - merged = sources.merge(1); + * 2 - merged = source.merge(otherSource); + * @param {Mixed} [maxConcurrentOrOther] Maximum number of inner observable sequences being subscribed to concurrently or the second observable sequence. + * @returns {Observable} The observable sequence that merges the elements of the inner sequences. + */ + merge(maxConcurrent: number): T; + /** + * Merges an observable sequence of observable sequences into an observable sequence, limiting the number of concurrent subscriptions to inner sequences. + * Or merges two observable sequences into a single observable sequence. + * + * @example + * 1 - merged = sources.merge(1); + * 2 - merged = source.merge(otherSource); + * @param {Mixed} [maxConcurrentOrOther] Maximum number of inner observable sequences being subscribed to concurrently or the second observable sequence. + * @returns {Observable} The observable sequence that merges the elements of the inner sequences. + */ + merge(other: ObservableOrPromise): Observable; + } +} + +(function() { + var o: Rx.Observable; + var oo: Rx.Observable>; + var p: Rx.Promise; + + o = oo.merge(1); + o = o.merge(p); + o = o.merge(o); +}); diff --git a/node_modules/rx/ts/core/linq/observable/mergedelayerror.ts b/node_modules/rx/ts/core/linq/observable/mergedelayerror.ts new file mode 100644 index 0000000..cffe79f --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/mergedelayerror.ts @@ -0,0 +1,37 @@ +/// +module Rx { + export interface ObservableStatic { + /** + * Flattens an Observable that emits Observables into one Observable, in a way that allows an Observer to + * receive all successfully emitted items from all of the source Observables without being interrupted by + * an error notification from one of them. + * + * This behaves like Observable.prototype.mergeAll except that if any of the merged Observables notify of an + * error via the Observer's onError, mergeDelayError will refrain from propagating that + * error notification until all of the merged Observables have finished emitting items. + * @param {Array | Arguments} args Arguments or an array to merge. + * @returns {Observable} an Observable that emits all of the items emitted by the Observables emitted by the Observable + */ + mergeDelayError(...sources: ObservableOrPromise[]): Observable; + /** + * Flattens an Observable that emits Observables into one Observable, in a way that allows an Observer to + * receive all successfully emitted items from all of the source Observables without being interrupted by + * an error notification from one of them. + * + * This behaves like Observable.prototype.mergeAll except that if any of the merged Observables notify of an + * error via the Observer's onError, mergeDelayError will refrain from propagating that + * error notification until all of the merged Observables have finished emitting items. + * @param {Array | Arguments} args Arguments or an array to merge. + * @returns {Observable} an Observable that emits all of the items emitted by the Observables emitted by the Observable + */ + mergeDelayError(sources: ObservableOrPromise[]): Observable; + } +} + +(function() { + var o: Rx.Observable; + var p: Rx.Promise; + + Rx.Observable.mergeDelayError(o, p, o, p); + Rx.Observable.mergeDelayError([o, p, o, p]); +}) diff --git a/node_modules/rx/ts/core/linq/observable/min.ts b/node_modules/rx/ts/core/linq/observable/min.ts new file mode 100644 index 0000000..9a59932 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/min.ts @@ -0,0 +1,21 @@ +/// +module Rx { + export interface Observable { + /** + * Returns the minimum element in an observable sequence according to the optional comparer else a default greater than less than check. + * @example + * var res = source.min(); + * var res = source.min(function (x, y) { return x.value - y.value; }); + * @param {Function} [comparer] Comparer used to compare elements. + * @returns {Observable} An observable sequence containing a single element with the minimum element in the source sequence. + */ + min(comparer?: _Comparer): Observable; + } +} + +(function () { + var o : Rx.Observable; + var a : Rx.Observable; + o = o.min(); + o = a.min((x, y) => x.length - y.length); +}); diff --git a/node_modules/rx/ts/core/linq/observable/minby.ts b/node_modules/rx/ts/core/linq/observable/minby.ts new file mode 100644 index 0000000..f9fd94b --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/minby.ts @@ -0,0 +1,32 @@ +/// +module Rx { + export interface Observable { + /** + * Returns the elements in an observable sequence with the minimum key value according to the specified comparer. + * @example + * var res = source.minBy(function (x) { return x.value; }); + * var res = source.minBy(function (x) { return x.value; }, function (x, y) { return x - y; }); + * @param {Function} keySelector Key selector function. + * @param {Function} [comparer] Comparer used to compare key values. + * @returns {Observable} An observable sequence containing a list of zero or more elements that have a minimum key value. + */ + minBy(keySelector: (item: T) => TKey, comparer: _Comparer): Observable; + /** + * Returns the elements in an observable sequence with the minimum key value according to the specified comparer. + * @example + * var res = source.minBy(function (x) { return x.value; }); + * var res = source.minBy(function (x) { return x.value; }, function (x, y) { return x - y; }); + * @param {Function} keySelector Key selector function. + * @param {Function} [comparer] Comparer used to compare key values. + * @returns {Observable} An observable sequence containing a list of zero or more elements that have a minimum key value. + */ + minBy(keySelector: (item: T) => number): Observable; + } +} + +(function () { + var o : Rx.Observable<{value:number}>; + var a : Rx.Observable<{value: string}>; + o = o.minBy(x => x.value); + a = a.minBy(x => x.value, (x, y) => x.length - y.length); +}); diff --git a/node_modules/rx/ts/core/linq/observable/multicast.ts b/node_modules/rx/ts/core/linq/observable/multicast.ts new file mode 100644 index 0000000..bb32d0f --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/multicast.ts @@ -0,0 +1,58 @@ +/// +/// +module Rx { + export interface Observable { + /** + * Multicasts the source sequence notifications through an instantiated subject into all uses of the sequence within a selector function. Each + * subscription to the resulting sequence causes a separate multicast invocation, exposing the sequence resulting from the selector function's + * invocation. For specializations with fixed subject types, see Publish, PublishLast, and Replay. + * + * @example + * 1 - res = source.multicast(observable); + * 2 - res = source.multicast(function () { return new Subject(); }, function (x) { return x; }); + * + * @param {Function|Subject} subjectOrSubjectSelector + * 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 which can use the multicasted source sequence subject to the policies enforced by the created subject. Specified only if | (() => ISubject)): ConnectableObservable; + /** + * Multicasts the source sequence notifications through an instantiated subject into all uses of the sequence within a selector function. Each + * subscription to the resulting sequence causes a separate multicast invocation, exposing the sequence resulting from the selector function's + * invocation. For specializations with fixed subject types, see Publish, PublishLast, and Replay. + * + * @example + * 1 - res = source.multicast(observable); + * 2 - res = source.multicast(function () { return new Subject(); }, function (x) { return x; }); + * + * @param {Function|Subject} subjectOrSubjectSelector + * 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 which can use the multicasted source sequence subject to the policies enforced by the created subject. Specified only if (subjectSelector: ISubject | (() => ISubject), selector: (source: ConnectableObservable) => Observable): Observable; + } +} + +(function() { + var o: Rx.Observable; + var oc: Rx.ConnectableObservable; + var is: Rx.ISubject; + var s: Rx.Subject; + var a: Rx.Observable; + + oc = o.multicast(is); + oc = o.multicast(s); + oc = o.multicast(() => s); + + o = o.multicast(is, a => a.asObservable()); + o = o.multicast(s, a => a.asObservable()); + o = o.multicast(() => s, a => a.asObservable()); +}); diff --git a/node_modules/rx/ts/core/linq/observable/never.ts b/node_modules/rx/ts/core/linq/observable/never.ts new file mode 100644 index 0000000..e0e8719 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/never.ts @@ -0,0 +1,16 @@ +/// +/// +module Rx { + export interface ObservableStatic { + /** + * Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins). + * @returns {Observable} An observable sequence whose observers will never get called. + */ + never(): Observable; + } +} + +(function () { + var o : Rx.Observable; + o = Rx.Observable.never(); +}); diff --git a/node_modules/rx/ts/core/linq/observable/observeon.ts b/node_modules/rx/ts/core/linq/observable/observeon.ts new file mode 100644 index 0000000..8bc2d0d --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/observeon.ts @@ -0,0 +1,21 @@ +/// +/// +module Rx { + export interface Observable { + /** + * Wraps the source sequence in order to run its observer callbacks on the specified scheduler. + * + * This only invokes observer callbacks on a scheduler. In case the subscription and/or unsubscription actions have side-effects + * that require to be run on a scheduler, use subscribeOn. + * + * @param {Scheduler} scheduler Scheduler to notify observers on. + * @returns {Observable} The source sequence whose observations happen on the specified scheduler. + */ + observeOn(scheduler: IScheduler): Observable; + } +} + +(function () { + var o : Rx.Observable; + o = o.observeOn(Rx.Scheduler.async); +}); diff --git a/node_modules/rx/ts/core/linq/observable/of.ts b/node_modules/rx/ts/core/linq/observable/of.ts new file mode 100644 index 0000000..b065565 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/of.ts @@ -0,0 +1,24 @@ +/// +/// +module Rx { + export interface ObservableStatic { + /** + * This method creates a new Observable instance with a variable number of arguments, regardless of number or type of the arguments. + * @returns {Observable} The observable sequence whose elements are pulled from the given arguments. + */ + of(...values: T[]): Observable; + + /** + * This method creates a new Observable instance with a variable number of arguments, regardless of number or type of the arguments. + * @param {Scheduler} scheduler A scheduler to use for scheduling the arguments. + * @returns {Observable} The observable sequence whose elements are pulled from the given arguments. + */ + ofWithScheduler(scheduler?: IScheduler, ...values: T[]): Observable; + } +} + +(function() { + var o: Rx.Observable; + o = Rx.Observable.of(1, 2, 3, 4, 5); + o = Rx.Observable.ofWithScheduler(Rx.Scheduler.async, 1, 2, 3, 4, 5); +}); diff --git a/node_modules/rx/ts/core/linq/observable/ofarraychanges.ts b/node_modules/rx/ts/core/linq/observable/ofarraychanges.ts new file mode 100644 index 0000000..2aa053c --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/ofarraychanges.ts @@ -0,0 +1,26 @@ +/// +module Rx { + export interface ArrayObserveChange { + type: string; + object: T[]; + name?: string; + oldValue?: T; + index?: number; + removed?: T[]; + added?: number; + } + + export interface ObservableStatic { + /** + * Creates an Observable sequence from changes to an array using Array.observe. + * @param {Array} array An array to observe changes. + * @returns {Observable} An observable sequence containing changes to an array from Array.observe. + */ + ofArrayChanges(obj: T[]): Observable>; + } +} + +(function () { + var o : Rx.Observable>; + o = Rx.Observable.ofArrayChanges([]); +}); diff --git a/node_modules/rx/ts/core/linq/observable/ofobjectchanges.ts b/node_modules/rx/ts/core/linq/observable/ofobjectchanges.ts new file mode 100644 index 0000000..181afb4 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/ofobjectchanges.ts @@ -0,0 +1,23 @@ +/// +module Rx { + export interface ObjectObserveChange { + type: string; + object: T; + name: string; + oldValue?: any; + } + + export interface ObservableStatic { + /** + * Creates an Observable sequence from changes to an object using Object.observe. + * @param {Object} obj An object to observe changes. + * @returns {Observable} An observable sequence containing changes to an object from Object.observe. + */ + ofObjectChanges(obj: T): Observable>; + } +} + +(function () { + var o : Rx.Observable>; + o = Rx.Observable.ofObjectChanges({}); +}); diff --git a/node_modules/rx/ts/core/linq/observable/onerrorresumenext.ts b/node_modules/rx/ts/core/linq/observable/onerrorresumenext.ts new file mode 100644 index 0000000..f027ec8 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/onerrorresumenext.ts @@ -0,0 +1,30 @@ +/// +module Rx { + export interface ObservableStatic { + /** + * Continues an observable sequence that is terminated normally or by an exception with the next observable sequence. + * + * @example + * 1 - res = Rx.Observable.onErrorResumeNext(xs, ys, zs); + * 1 - res = Rx.Observable.onErrorResumeNext([xs, ys, zs]); + * @returns {Observable} An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + */ + onErrorResumeNext(...sources: ObservableOrPromise[]): Observable; + /** + * Continues an observable sequence that is terminated normally or by an exception with the next observable sequence. + * + * @example + * 1 - res = Rx.Observable.onErrorResumeNext(xs, ys, zs); + * 1 - res = Rx.Observable.onErrorResumeNext([xs, ys, zs]); + * @returns {Observable} An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + */ + onErrorResumeNext(sources: ObservableOrPromise[]): Observable; + } +} + +(function() { + var o: Rx.Observable; + var p: Rx.Promise; + o = Rx.Observable.onErrorResumeNext(o, p, o, p); + o = Rx.Observable.onErrorResumeNext([o, p, o, p]); +}); diff --git a/node_modules/rx/ts/core/linq/observable/onerrorresumenextproto.ts b/node_modules/rx/ts/core/linq/observable/onerrorresumenextproto.ts new file mode 100644 index 0000000..1b1ed9f --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/onerrorresumenextproto.ts @@ -0,0 +1,18 @@ +/// +module Rx { + export interface Observable { + /** + * Continues an observable sequence that is terminated normally or by an exception with the next observable sequence. + * @param {Observable} second Second observable sequence used to produce results after the first sequence terminates. + * @returns {Observable} An observable sequence that concatenates the first and second sequence, even if the first sequence terminates exceptionally. + */ + onErrorResumeNext(second: ObservableOrPromise): Observable; + } +} + +(function() { + var o: Rx.Observable; + var p: Rx.Promise; + o = o.onErrorResumeNext(p); + o = o.onErrorResumeNext(o); +}); diff --git a/node_modules/rx/ts/core/linq/observable/pairs.ts b/node_modules/rx/ts/core/linq/observable/pairs.ts new file mode 100644 index 0000000..c50774e --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/pairs.ts @@ -0,0 +1,30 @@ +/// +/// +module Rx { + export interface ObservableStatic { + /** + * Convert an object into an observable sequence of [key, value] pairs. + * @param {Object} obj The object to inspect. + * @param {Scheduler} [scheduler] Scheduler to run the enumeration of the input sequence on. + * @returns {Observable} An observable sequence of [key, value] pairs from the object. + */ + pairs(obj: { [key: string]: T }, scheduler?: IScheduler): Observable<[string, T]>; + /** + * Convert an object into an observable sequence of [key, value] pairs. + * @param {Object} obj The object to inspect. + * @param {Scheduler} [scheduler] Scheduler to run the enumeration of the input sequence on. + * @returns {Observable} An observable sequence of [key, value] pairs from the object. + */ + pairs(obj: { [key: number]: T }, scheduler?: IScheduler): Observable<[number, T]>; + } +} + +(function() { + var n: Rx.Observable<[number, string]>; + var s: Rx.Observable<[string, number]>; + + s = Rx.Observable.pairs(<{ [key: string]: number }>{}); + s = Rx.Observable.pairs(<{ [key: string]: number }>{}, Rx.Scheduler.default); + n = Rx.Observable.pairs(<{ [key: number]: string }>{}); + n = Rx.Observable.pairs(<{ [key: number]: string }>{}, Rx.Scheduler.default); +}); diff --git a/node_modules/rx/ts/core/linq/observable/pairwise.ts b/node_modules/rx/ts/core/linq/observable/pairwise.ts new file mode 100644 index 0000000..8004175 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/pairwise.ts @@ -0,0 +1,20 @@ +/// +module Rx { + export interface Observable { + /** + * Returns a new observable that triggers on the second and subsequent triggerings of the input observable. + * The Nth triggering of the input observable passes the arguments from the N-1th and Nth triggering as a pair. + * The argument passed to the N-1th triggering is held in hidden internal state until the Nth triggering occurs. + * @returns {Observable} An observable that triggers on successive pairs of observations from the input observable as an array. + */ + pairwise(): Observable<[T, T]>; + } +} + + +(function () { + var o : Rx.Observable; + var r : Rx.Observable<[number, number]>; + + r = o.pairwise(); +}); diff --git a/node_modules/rx/ts/core/linq/observable/partition.ts b/node_modules/rx/ts/core/linq/observable/partition.ts new file mode 100644 index 0000000..b0cc859 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/partition.ts @@ -0,0 +1,26 @@ +/// +module Rx { + export interface Observable { + /** + * Returns two observables which partition the observations of the source by the given function. + * The first will trigger observations for those values for which the predicate returns true. + * The second will trigger observations for those values where the predicate returns false. + * The predicate is executed once for each subscribed observer. + * Both also propagate all error observations arising from the source and each completes + * when the source completes. + * @param {Function} predicate + * The function to determine which output Observable will trigger a particular observation. + * @returns {Array} + * An array of observables. The first triggers when the predicate returns true, + * and the second triggers when the predicate returns false. + */ + partition(predicate: _Predicate, thisArg?: any): [Observable, Observable]; + } +} + +(function() { + var o: Rx.Observable; + var r: [Rx.Observable, Rx.Observable]; + + r = o.partition(x => x % 2 === 0); +}); diff --git a/node_modules/rx/ts/core/linq/observable/pipe.ts b/node_modules/rx/ts/core/linq/observable/pipe.ts new file mode 100644 index 0000000..a91baa7 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/pipe.ts @@ -0,0 +1,12 @@ +/// +module Rx { + export interface Observable { + /** + * Pipes the existing Observable sequence into a Node.js Stream. + * @param {Stream} dest The destination Node.js stream. + * @returns {Stream} The destination stream. + */ + pipe(dest: TDest): TDest; + // TODO: Add link to node.d.ts some where + } +} diff --git a/node_modules/rx/ts/core/linq/observable/pluck.ts b/node_modules/rx/ts/core/linq/observable/pluck.ts new file mode 100644 index 0000000..4c869f8 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/pluck.ts @@ -0,0 +1,19 @@ +/// +module Rx { + export interface Observable { + /** + * Retrieves the value of a specified nested property from all elements in + * the Observable sequence. + * @param {Arguments} arguments The nested properties to pluck. + * @returns {Observable} Returns a new Observable sequence of property values. + */ + pluck(prop: string): Observable; + } +} + +(function() { + var o: Rx.Observable<{}>; + var n: Rx.Observable; + + n = o.pluck('abc'); +}); diff --git a/node_modules/rx/ts/core/linq/observable/publish.ts b/node_modules/rx/ts/core/linq/observable/publish.ts new file mode 100644 index 0000000..c0bc85a --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/publish.ts @@ -0,0 +1,40 @@ +/// +module Rx { + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence. + * This operator is a specialization of Multicast using a regular Subject. + * + * @example + * var resres = source.publish(); + * var res = source.publish(function (x) { return x; }); + * + * @param {Function} [selector] 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. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publish(): ConnectableObservable; + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence. + * This operator is a specialization of Multicast using a regular Subject. + * + * @example + * var resres = source.publish(); + * var res = source.publish(function (x) { return x; }); + * + * @param {Function} [selector] 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. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publish(selector: (source: ConnectableObservable) => Observable): Observable; + } +} + +(function() { + var o: Rx.Observable; + var oc: Rx.ConnectableObservable; + var is: Rx.ISubject; + var s: Rx.Subject; + var a: Rx.Observable; + + oc = o.publish(); + o = o.publish(a => a.asObservable()); +}); diff --git a/node_modules/rx/ts/core/linq/observable/publishlast.ts b/node_modules/rx/ts/core/linq/observable/publishlast.ts new file mode 100644 index 0000000..6aaaed9 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/publishlast.ts @@ -0,0 +1,41 @@ +/// +module Rx { + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + * This operator is a specialization of Multicast using a AsyncSubject. + * + * @example + * var res = source.publishLast(); + * var res = source.publishLast(function (x) { return x; }); + * + * @param 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 only receive the last notification of the source. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishLast(): ConnectableObservable; + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + * This operator is a specialization of Multicast using a AsyncSubject. + * + * @example + * var res = source.publishLast(); + * var res = source.publishLast(function (x) { return x; }); + * + * @param 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 only receive the last notification of the source. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishLast(selector: (source: ConnectableObservable) => Observable): Observable; + } +} + + +(function() { + var o: Rx.Observable; + var oc: Rx.ConnectableObservable; + var is: Rx.ISubject; + var s: Rx.Subject; + var a: Rx.Observable; + + oc = o.publishLast(); + o = o.publishLast(a => a.asObservable()); +}); diff --git a/node_modules/rx/ts/core/linq/observable/publishvalue.ts b/node_modules/rx/ts/core/linq/observable/publishvalue.ts new file mode 100644 index 0000000..ba8cf1f --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/publishvalue.ts @@ -0,0 +1,42 @@ +/// +module Rx { + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + * This operator is a specialization of Multicast using a BehaviorSubject. + * + * @example + * var res = source.publishValue(42); + * var res = source.publishValue(function (x) { return x.select(function (y) { return y * y; }) }, 42); + * + * @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 immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + * @param {Mixed} initialValue Initial value received by observers upon subscription. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishValue(initialValue: T): ConnectableObservable; + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + * This operator is a specialization of Multicast using a BehaviorSubject. + * + * @example + * var res = source.publishValue(42); + * var res = source.publishValue(function (x) { return x.select(function (y) { return y * y; }) }, 42); + * + * @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 immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + * @param {Mixed} initialValue Initial value received by observers upon subscription. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishValue(selector: (source: ConnectableObservable) => Observable, initialValue: T): Observable; + } +} + +(function() { + var o: Rx.Observable; + var oc: Rx.ConnectableObservable; + var is: Rx.ISubject; + var s: Rx.Subject; + var a: Rx.Observable; + + oc = o.publishValue(12); + o = o.publishValue(a => a.asObservable(), 12); +}); diff --git a/node_modules/rx/ts/core/linq/observable/range.ts b/node_modules/rx/ts/core/linq/observable/range.ts new file mode 100644 index 0000000..bb03825 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/range.ts @@ -0,0 +1,23 @@ +/// +/// +module Rx { + export interface ObservableStatic { + /** + * Generates an observable sequence of integral numbers within a specified range, using the specified scheduler to send out observer messages. + * + * @example + * var res = Rx.Observable.range(0, 10); + * var res = Rx.Observable.range(0, 10, Rx.Scheduler.timeout); + * @param {Number} start The value of the first integer in the sequence. + * @param {Number} count The number of sequential integers to generate. + * @param {Scheduler} [scheduler] Scheduler to run the generator loop on. If not specified, defaults to Scheduler.currentThread. + * @returns {Observable} An observable sequence that contains a range of sequential integral numbers. + */ + range(start: number, count: number, scheduler?: IScheduler): Observable; + } +} + +(function() { + var o: Rx.Observable = Rx.Observable.range(1, 2); + o = Rx.Observable.range(1, 2, Rx.Scheduler.async); +}); diff --git a/node_modules/rx/ts/core/linq/observable/reduce.ts b/node_modules/rx/ts/core/linq/observable/reduce.ts new file mode 100644 index 0000000..f6d7092 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/reduce.ts @@ -0,0 +1,28 @@ +/// +module Rx { + export interface Observable { + /** + * Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. The specified seed value is used as the initial accumulator value. + * For aggregation behavior with incremental intermediate results, see Observable.scan. + * @param {Function} accumulator An accumulator function to be invoked on each element. + * @param {Any} [seed] The initial accumulator value. + * @returns {Observable} An observable sequence containing a single element with the final accumulator value. + */ + reduce(accumulator: _Accumulator, seed?: TAcc): Observable; + /** + * Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. The specified seed value is used as the initial accumulator value. + * For aggregation behavior with incremental intermediate results, see Observable.scan. + * @param {Function} accumulator An accumulator function to be invoked on each element. + * @param {Any} [seed] The initial accumulator value. + * @returns {Observable} An observable sequence containing a single element with the final accumulator value. + */ + reduce(accumulator: _Accumulator, seed?: T): Observable; + } +} + +(function() { + var o: Rx.Observable; + + o = o.reduce((a, x) => a * x); + o = o.reduce((a, x) => a * x, 1); +}); diff --git a/node_modules/rx/ts/core/linq/observable/repeat.ts b/node_modules/rx/ts/core/linq/observable/repeat.ts new file mode 100644 index 0000000..9aa07e3 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/repeat.ts @@ -0,0 +1,27 @@ +/// +/// +module Rx { + export interface ObservableStatic { + /** + * Generates an observable sequence that repeats the given element the specified number of times, using the specified scheduler to send out observer messages. + * + * @example + * var res = Rx.Observable.repeat(42); + * var res = Rx.Observable.repeat(42, 4); + * 3 - res = Rx.Observable.repeat(42, 4, Rx.Scheduler.timeout); + * 4 - res = Rx.Observable.repeat(42, null, Rx.Scheduler.timeout); + * @param {Mixed} value Element to repeat. + * @param {Number} repeatCount [Optiona] Number of times to repeat the element. If not specified, repeats indefinitely. + * @param {Scheduler} scheduler Scheduler to run the producer loop on. If not specified, defaults to Scheduler.immediate. + * @returns {Observable} An observable sequence that repeats the given element the specified number of times. + */ + repeat(value: T, repeatCount?: number | void, scheduler?: IScheduler): Observable; + } +} + +(function() { + var o: Rx.Observable; + Rx.Observable.repeat(42, 4, Rx.Scheduler.async); + Rx.Observable.repeat(42, null, Rx.Scheduler.async); + Rx.Observable.repeat(42); +}); diff --git a/node_modules/rx/ts/core/linq/observable/repeatproto.ts b/node_modules/rx/ts/core/linq/observable/repeatproto.ts new file mode 100644 index 0000000..e435e38 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/repeatproto.ts @@ -0,0 +1,18 @@ +/// +module Rx { + export interface Observable { + /** + * Repeats the observable sequence a specified number of times. If the repeat count is not specified, the sequence repeats indefinitely. + * @param {Number} [repeatCount] Number of times to repeat the sequence. If not provided, repeats the sequence indefinitely. + * @returns {Observable} The observable sequence producing the elements of the given sequence repeatedly. + */ + repeat(repeatCount?: number): Observable; + } +} + + +(function() { + var o: Rx.Observable; + o.repeat(); + o.repeat(42); +}); diff --git a/node_modules/rx/ts/core/linq/observable/replay.ts b/node_modules/rx/ts/core/linq/observable/replay.ts new file mode 100644 index 0000000..80d48bf --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/replay.ts @@ -0,0 +1,50 @@ +/// +/// +module Rx { + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + * This operator is a specialization of Multicast using a ReplaySubject. + * + * @example + * var res = source.replay(null, 3); + * var res = source.replay(null, 3, 500); + * var res = source.replay(null, 3, 500, scheduler); + * var res = source.replay(function (x) { return x.take(6).repeat(); }, 3, 500, scheduler); + * + * @param 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 the notifications of the source subject to the specified replay buffer trimming policy. + * @param bufferSize [Optional] Maximum element count of the replay buffer. + * @param windowSize [Optional] Maximum time length of the replay buffer. + * @param scheduler [Optional] Scheduler where connected observers within the selector function will be invoked on. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + replay(selector?: void, bufferSize?: number, window?: number, scheduler?: IScheduler): ConnectableObservable; // hack to catch first omitted parameter + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + * This operator is a specialization of Multicast using a ReplaySubject. + * + * @example + * var res = source.replay(null, 3); + * var res = source.replay(null, 3, 500); + * var res = source.replay(null, 3, 500, scheduler); + * var res = source.replay(function (x) { return x.take(6).repeat(); }, 3, 500, scheduler); + * + * @param 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 the notifications of the source subject to the specified replay buffer trimming policy. + * @param bufferSize [Optional] Maximum element count of the replay buffer. + * @param windowSize [Optional] Maximum time length of the replay buffer. + * @param scheduler [Optional] Scheduler where connected observers within the selector function will be invoked on. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + replay(selector: (source: ConnectableObservable) => Observable, bufferSize?: number, window?: number, scheduler?: IScheduler): Observable; + } +} + +(function() { + var o: Rx.Observable; + var oc: Rx.ConnectableObservable; + var is: Rx.ISubject; + var s: Rx.Subject; + var a: Rx.Observable; + + o = o.replay(null, 1, 2, Rx.Scheduler.async); +}); diff --git a/node_modules/rx/ts/core/linq/observable/retry.ts b/node_modules/rx/ts/core/linq/observable/retry.ts new file mode 100644 index 0000000..d446a27 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/retry.ts @@ -0,0 +1,22 @@ +/// +module Rx { + export interface Observable { + /** + * Repeats the source observable sequence the specified number of times or until it successfully terminates. If the retry count is not specified, it retries indefinitely. + * Note if you encounter an error and want it to retry once, then you must use .retry(2); + * + * @example + * var res = retried = retry.repeat(); + * var res = retried = retry.repeat(2); + * @param {Number} [retryCount] Number of times to retry the sequence. If not provided, retry the sequence indefinitely. + * @returns {Observable} An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + */ + retry(retryCount?: number): Observable; + } +} + +(function() { + var o: Rx.Observable; + o.retry(); + o.retry(42); +}); diff --git a/node_modules/rx/ts/core/linq/observable/retrywhen.ts b/node_modules/rx/ts/core/linq/observable/retrywhen.ts new file mode 100644 index 0000000..60a5f92 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/retrywhen.ts @@ -0,0 +1,22 @@ +/// +module Rx { + export interface Observable { + /** + * Repeats the source observable sequence upon error each time the notifier emits or until it successfully terminates. + * if the notifier completes, the observable sequence completes. + * + * @example + * var timer = Observable.timer(500); + * var source = observable.retryWhen(timer); + * @param {Observable} [notifier] An observable that triggers the retries or completes the observable with onNext or onCompleted respectively. + * @returns {Observable} An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + */ + retryWhen(notifier: (errors: Observable) => Observable): Observable; + } +} + + +(function() { + var o: Rx.Observable; + o.retryWhen(() => Rx.Observable.of(1)); +}); diff --git a/node_modules/rx/ts/core/linq/observable/sample.ts b/node_modules/rx/ts/core/linq/observable/sample.ts new file mode 100644 index 0000000..0490099 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/sample.ts @@ -0,0 +1,72 @@ +/// +/// +module Rx { + export interface Observable { + /** + * Samples the observable sequence at each interval. + * + * @example + * 1 - res = source.sample(sampleObservable); // Sampler tick sequence + * 2 - res = source.sample(5000); // 5 seconds + * 2 - res = source.sample(5000, Rx.Scheduler.timeout); // 5 seconds + * + * @param {Mixed} intervalOrSampler Interval at which to sample (specified as an integer denoting milliseconds) or Sampler Observable. + * @param {Scheduler} [scheduler] Scheduler to run the sampling timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Sampled observable sequence. + */ + sample(intervalOrSampler: number, scheduler?: IScheduler): Observable; + /** + * Samples the observable sequence at each interval. + * + * @example + * 1 - res = source.sample(sampleObservable); // Sampler tick sequence + * 2 - res = source.sample(5000); // 5 seconds + * 2 - res = source.sample(5000, Rx.Scheduler.timeout); // 5 seconds + * + * @param {Mixed} intervalOrSampler Interval at which to sample (specified as an integer denoting milliseconds) or Sampler Observable. + * @param {Scheduler} [scheduler] Scheduler to run the sampling timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Sampled observable sequence. + */ + sample(sampler: Observable, scheduler?: IScheduler): Observable; + /** + * Samples the observable sequence at each interval. + * + * @example + * 1 - res = source.sample(sampleObservable); // Sampler tick sequence + * 2 - res = source.sample(5000); // 5 seconds + * 2 - res = source.sample(5000, Rx.Scheduler.timeout); // 5 seconds + * + * @param {Mixed} intervalOrSampler Interval at which to sample (specified as an integer denoting milliseconds) or Sampler Observable. + * @param {Scheduler} [scheduler] Scheduler to run the sampling timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Sampled observable sequence. + */ + throttleLatest(interval: number, scheduler?: IScheduler): Observable; + /** + * Samples the observable sequence at each interval. + * + * @example + * 1 - res = source.sample(sampleObservable); // Sampler tick sequence + * 2 - res = source.sample(5000); // 5 seconds + * 2 - res = source.sample(5000, Rx.Scheduler.timeout); // 5 seconds + * + * @param {Mixed} intervalOrSampler Interval at which to sample (specified as an integer denoting milliseconds) or Sampler Observable. + * @param {Scheduler} [scheduler] Scheduler to run the sampling timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Sampled observable sequence. + */ + throttleLatest(sampler: Observable, scheduler?: IScheduler): Observable; + } +} + + +(function() { + var o: Rx.Observable; + o.sample(100); + o.sample(100, Rx.Scheduler.async); + o.sample(Rx.Observable.interval(100)); + o.sample(Rx.Observable.interval(100), Rx.Scheduler.async); + + o.throttleLatest(100); + o.throttleLatest(100, Rx.Scheduler.async); + o.throttleLatest(Rx.Observable.interval(100)); + o.throttleLatest(Rx.Observable.interval(100), Rx.Scheduler.async); +}); diff --git a/node_modules/rx/ts/core/linq/observable/scan.ts b/node_modules/rx/ts/core/linq/observable/scan.ts new file mode 100644 index 0000000..cd0ed46 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/scan.ts @@ -0,0 +1,35 @@ +/// +module Rx { + export interface Observable { + /** + * Applies an accumulator function over an observable sequence and returns each intermediate result. The optional seed value is used as the initial accumulator value. + * For aggregation behavior with no intermediate results, see Observable.aggregate. + * @example + * var res = source.scan(function (acc, x) { return acc + x; }); + * var res = source.scan(function (acc, x) { return acc + x; }, 0); + * @param {Function} accumulator An accumulator function to be invoked on each element. + * @param {Mixed} [seed] The initial accumulator value. + * @returns {Observable} An observable sequence containing the accumulated values. + */ + scan(accumulator: _Accumulator, seed?: TAcc): Observable; + /** + * Applies an accumulator function over an observable sequence and returns each intermediate result. The optional seed value is used as the initial accumulator value. + * For aggregation behavior with no intermediate results, see Observable.aggregate. + * @example + * var res = source.scan(function (acc, x) { return acc + x; }); + * var res = source.scan(function (acc, x) { return acc + x; }, 0); + * @param {Function} accumulator An accumulator function to be invoked on each element. + * @param {Mixed} [seed] The initial accumulator value. + * @returns {Observable} An observable sequence containing the accumulated values. + */ + scan(accumulator: _Accumulator, seed?: T): Observable; + } +} + + +(function() { + var o: Rx.Observable; + + o = o.scan((a, x) => a * x); + o = o.scan((a, x) => a * x, 1); +}); diff --git a/node_modules/rx/ts/core/linq/observable/selectmanyobserver.ts b/node_modules/rx/ts/core/linq/observable/selectmanyobserver.ts new file mode 100644 index 0000000..841350b --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/selectmanyobserver.ts @@ -0,0 +1,35 @@ +/// +module Rx { + export interface Observable { + /** + * Projects each notification of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * @param {Function} onNext A transform function to apply to each element; the second parameter of the function represents the index of the source element. + * @param {Function} onError A transform function to apply when an error occurs in the source sequence. + * @param {Function} onCompleted A transform function to apply when the end of the source sequence is reached. + * @param {Any} [thisArg] An optional "this" to use to invoke each transform. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + */ + selectManyObserver(onNext: (value: T, index: number) => Observable, onError: (exception: any) => Observable, onCompleted: () => Observable, thisArg?: any): Observable; + /** + * Projects each notification of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * @param {Function} onNext A transform function to apply to each element; the second parameter of the function represents the index of the source element. + * @param {Function} onError A transform function to apply when an error occurs in the source sequence. + * @param {Function} onCompleted A transform function to apply when the end of the source sequence is reached. + * @param {Any} [thisArg] An optional "this" to use to invoke each transform. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + */ + flatMapObserver(onNext: (value: T, index: number) => Observable, onError: (exception: any) => Observable, onCompleted: () => Observable, thisArg?: any): Observable; + } +} + + +(function() { + var os: Rx.Observable; + var on: Rx.Observable; + + os.flatMapObserver((v, i) => Rx.Observable.just(i), (e) => Rx.Observable.just(e), () => Rx.Observable.empty()); + os.selectManyObserver((v, i) => Rx.Observable.just(i), (e) => Rx.Observable.just(e), () => Rx.Observable.empty()); + + os.flatMapObserver((v, i) => Rx.Observable.just(i), (e) => Rx.Observable.just(e), () => Rx.Observable.empty(), {}); + os.selectManyObserver((v, i) => Rx.Observable.just(i), (e) => Rx.Observable.just(e), () => Rx.Observable.empty(), {}); +}); diff --git a/node_modules/rx/ts/core/linq/observable/sequenceequal.ts b/node_modules/rx/ts/core/linq/observable/sequenceequal.ts new file mode 100644 index 0000000..a8a1724 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/sequenceequal.ts @@ -0,0 +1,38 @@ +/// +module Rx { + export interface Observable { + /** + * Determines whether two sequences are equal by comparing the elements pairwise using a specified equality comparer. + * + * @example + * var res = res = source.sequenceEqual([1,2,3]); + * var res = res = source.sequenceEqual([{ value: 42 }], function (x, y) { return x.value === y.value; }); + * 3 - res = source.sequenceEqual(Rx.Observable.returnValue(42)); + * 4 - res = source.sequenceEqual(Rx.Observable.returnValue({ value: 42 }), function (x, y) { return x.value === y.value; }); + * @param {Observable} second Second observable sequence or array to compare. + * @param {Function} [comparer] Comparer used to compare elements of both sequences. + * @returns {Observable} An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the specified equality comparer. + */ + sequenceEqual(second: ObservableOrPromise | ArrayOrIterable, comparer?: _Comparer): Observable; + /** + * Determines whether two sequences are equal by comparing the elements pairwise using a specified equality comparer. + * + * @example + * var res = res = source.sequenceEqual([1,2,3]); + * var res = res = source.sequenceEqual([{ value: 42 }], function (x, y) { return x.value === y.value; }); + * 3 - res = source.sequenceEqual(Rx.Observable.returnValue(42)); + * 4 - res = source.sequenceEqual(Rx.Observable.returnValue({ value: 42 }), function (x, y) { return x.value === y.value; }); + * @param {Observable} second Second observable sequence or array to compare. + * @param {Function} [comparer] Comparer used to compare elements of both sequences. + * @returns {Observable} An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the specified equality comparer. + */ + sequenceEqual(second: ObservableOrPromise | ArrayOrIterable, comparer: _Comparer): Observable; + } +} + +(function () { + var o : Rx.Observable; + var o2 : Rx.Observable; + var b : Rx.Observable; + b = o.sequenceEqual(o2); +}); diff --git a/node_modules/rx/ts/core/linq/observable/share.ts b/node_modules/rx/ts/core/linq/observable/share.ts new file mode 100644 index 0000000..dae0a3e --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/share.ts @@ -0,0 +1,21 @@ +/// +module Rx { + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence. + * This operator is a specialization of publish which creates a subscription when the number of observers goes from zero to one, then shares that subscription with all subsequent observers until the number of observers returns to zero, at which point the subscription is disposed. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence. + */ + share(): Observable; + } +} + +(function() { + var o: Rx.Observable; + var oc: Rx.ConnectableObservable; + var is: Rx.ISubject; + var s: Rx.Subject; + var a: Rx.Observable; + + o = o.share(); +}); diff --git a/node_modules/rx/ts/core/linq/observable/sharereplay.ts b/node_modules/rx/ts/core/linq/observable/sharereplay.ts new file mode 100644 index 0000000..9584399 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/sharereplay.ts @@ -0,0 +1,34 @@ +/// +module Rx { + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + * This operator is a specialization of replay which creates a subscription when the number of observers goes from zero to one, then shares that subscription with all subsequent observers until the number of observers returns to zero, at which point the subscription is disposed. + * + * @example + * var res = source.shareReplay(3); + * var res = source.shareReplay(3, 500); + * var res = source.shareReplay(3, 500, scheduler); + * + + * @param bufferSize [Optional] Maximum element count of the replay buffer. + * @param window [Optional] Maximum time length of the replay buffer. + * @param scheduler [Optional] Scheduler where connected observers within the selector function will be invoked on. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence. + */ + shareReplay(bufferSize?: number, window?: number, scheduler?: IScheduler): Observable; + } +} + +(function() { + var o: Rx.Observable; + var oc: Rx.ConnectableObservable; + var is: Rx.ISubject; + var s: Rx.Subject; + var a: Rx.Observable; + + o = o.shareReplay(); + o = o.shareReplay(1); + o = o.shareReplay(1,2); + o = o.shareReplay(1,2, Rx.Scheduler.default); +}); diff --git a/node_modules/rx/ts/core/linq/observable/sharevalue.ts b/node_modules/rx/ts/core/linq/observable/sharevalue.ts new file mode 100644 index 0000000..51e5817 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/sharevalue.ts @@ -0,0 +1,23 @@ +/// +module Rx { + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence and starts with an initialValue. + * This operator is a specialization of publishValue which creates a subscription when the number of observers goes from zero to one, then shares that subscription with all subsequent observers until the number of observers returns to zero, at which point the subscription is disposed. + * @param {Mixed} initialValue Initial value received by observers upon subscription. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence. + */ + shareValue(initialValue: T): Observable; + } +} + + +(function() { + var o: Rx.Observable; + var oc: Rx.ConnectableObservable; + var is: Rx.ISubject; + var s: Rx.Subject; + var a: Rx.Observable; + + o = o.shareValue(12); +}); diff --git a/node_modules/rx/ts/core/linq/observable/single.ts b/node_modules/rx/ts/core/linq/observable/single.ts new file mode 100644 index 0000000..93a5b59 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/single.ts @@ -0,0 +1,24 @@ +/// +module Rx { + export interface Observable { + /** + * Returns the only element of an observable sequence that satisfies the condition in the optional predicate, and reports an exception if there is not exactly one element in the observable sequence. + * @param {Function} [predicate] A predicate function to evaluate for elements in the source sequence. + * @param {Any} [thisArg] Object to use as `this` when executing the predicate. + * @returns {Observable} Sequence containing the single element in the observable sequence that satisfies the condition in the predicate. + */ + single(predicate?: _Predicate, thisArg?: any): Observable; + } +} + + +(function() { + var o: Rx.Observable; + var oc: Rx.ConnectableObservable; + var is: Rx.ISubject; + var s: Rx.Subject; + var a: Rx.Observable; + + o = o.single(); + o = o.single(x => true); +}); diff --git a/node_modules/rx/ts/core/linq/observable/singleinstance.ts b/node_modules/rx/ts/core/linq/observable/singleinstance.ts new file mode 100644 index 0000000..0fa9d75 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/singleinstance.ts @@ -0,0 +1,22 @@ +/// +module Rx { + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence. This observable sequence + * can be resubscribed to, even if all prior subscriptions have ended. (unlike `.publish().refCount()`) + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source. + */ + singleInstance(): Observable; + } +} + + +(function() { + var o: Rx.Observable; + var oc: Rx.ConnectableObservable; + var is: Rx.ISubject; + var s: Rx.Subject; + var a: Rx.Observable; + + o = o.singleInstance(); +}); diff --git a/node_modules/rx/ts/core/linq/observable/skip.ts b/node_modules/rx/ts/core/linq/observable/skip.ts new file mode 100644 index 0000000..6d49370 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/skip.ts @@ -0,0 +1,16 @@ +/// +module Rx { + export interface Observable { + /** + * Bypasses a specified number of elements in an observable sequence and then returns the remaining elements. + * @param {Number} count The number of elements to skip before returning the remaining elements. + * @returns {Observable} An observable sequence that contains the elements that occur after the specified index in the input sequence. + */ + skip(count: number): Observable; + } +} + +(function() { + var o: Rx.Observable; + o = o.skip(1); +}); diff --git a/node_modules/rx/ts/core/linq/observable/skiplast.ts b/node_modules/rx/ts/core/linq/observable/skiplast.ts new file mode 100644 index 0000000..f4873b1 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/skiplast.ts @@ -0,0 +1,20 @@ +/// +module Rx { + export interface Observable { + /** + * Bypasses a specified number of elements at the end of an observable sequence. + * @description + * This operator accumulates a queue with a length enough to store the first `count` elements. As more elements are + * received, elements are taken from the front of the queue and produced on the result sequence. This causes elements to be delayed. + * @param count Number of elements to bypass at the end of the source sequence. + * @returns {Observable} An observable sequence containing the source sequence elements except for the bypassed ones at the end. + */ + skipLast(count: number): Observable; + } +} + + +(function() { + var o: Rx.Observable; + o = o.skipLast(1); +}); diff --git a/node_modules/rx/ts/core/linq/observable/skiplastwithtime.ts b/node_modules/rx/ts/core/linq/observable/skiplastwithtime.ts new file mode 100644 index 0000000..e5f5c97 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/skiplastwithtime.ts @@ -0,0 +1,28 @@ +/// +/// +module Rx { + export interface Observable { + /** + * Skips elements for the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + * + * 1 - res = source.skipLastWithTime(5000); + * 2 - res = source.skipLastWithTime(5000, scheduler); + * + * @description + * This operator accumulates a queue with a length enough to store elements received during the initial duration window. + * As more elements are received, elements older than the specified duration are taken from the queue and produced on the + * result sequence. This causes elements to be delayed with duration. + * @param {Number} duration Duration for skipping elements from the end of the sequence. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout + * @returns {Observable} An observable sequence with the elements skipped during the specified duration from the end of the source sequence. + */ + skipLastWithTime(duration: number, scheduler?: IScheduler): Observable; + } +} + + +(function() { + var o: Rx.Observable; + o = o.skipLastWithTime(1); + o = o.skipLastWithTime(1, Rx.Scheduler.async); +}); diff --git a/node_modules/rx/ts/core/linq/observable/skipuntil.ts b/node_modules/rx/ts/core/linq/observable/skipuntil.ts new file mode 100644 index 0000000..a245e25 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/skipuntil.ts @@ -0,0 +1,18 @@ +/// +module Rx { + export interface Observable { + /** + * Returns the values from the source observable sequence only after the other observable sequence produces a value. + * @param {Observable | Promise} other The observable sequence or Promise that triggers propagation of elements of the source sequence. + * @returns {Observable} An observable sequence containing the elements of the source sequence starting from the point the other sequence triggered propagation. + */ + skipUntil(other: ObservableOrPromise): Observable; + } +} + +(function() { + var o: Rx.Observable; + var o2: Rx.Observable; + + o = o.skipUntil(o2); +}); diff --git a/node_modules/rx/ts/core/linq/observable/skipuntilwithtime.ts b/node_modules/rx/ts/core/linq/observable/skipuntilwithtime.ts new file mode 100644 index 0000000..71ffcc4 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/skipuntilwithtime.ts @@ -0,0 +1,41 @@ +/// +/// +module Rx { + export interface Observable { + /** + * Skips elements from the observable source sequence until the specified start time, using the specified scheduler to run timers. + * Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the start time. + * + * @examples + * 1 - res = source.skipUntilWithTime(new Date(), [scheduler]); + * 2 - res = source.skipUntilWithTime(5000, [scheduler]); + * @param {Date|Number} startTime Time to start taking elements from the source sequence. If this value is less than or equal to Date(), no elements will be skipped. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout. + * @returns {Observable} An observable sequence with the elements skipped until the specified start time. + */ + skipUntilWithTime(startTime: Date, scheduler?: IScheduler): Observable; + /** + * Skips elements from the observable source sequence until the specified start time, using the specified scheduler to run timers. + * Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the start time. + * + * @examples + * 1 - res = source.skipUntilWithTime(new Date(), [scheduler]); + * 2 - res = source.skipUntilWithTime(5000, [scheduler]); + * @param {Date|Number} startTime Time to start taking elements from the source sequence. If this value is less than or equal to Date(), no elements will be skipped. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout. + * @returns {Observable} An observable sequence with the elements skipped until the specified start time. + */ + skipUntilWithTime(duration: number, scheduler?: IScheduler): Observable; + } +} + + +(function() { + var o: Rx.Observable; + var o2: Rx.Observable; + + o = o.skipUntilWithTime(new Date()); + o = o.skipUntilWithTime(new Date(), Rx.Scheduler.default); + o = o.skipUntilWithTime(1000); + o = o.skipUntilWithTime(1000, Rx.Scheduler.default); +}); diff --git a/node_modules/rx/ts/core/linq/observable/skipwhile.ts b/node_modules/rx/ts/core/linq/observable/skipwhile.ts new file mode 100644 index 0000000..142476c --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/skipwhile.ts @@ -0,0 +1,16 @@ +/// +module Rx { + export interface Observable { + /** + * Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. + * The element's index is used in the logic of the predicate function. + * + * var res = source.skipWhile(function (value) { return value < 10; }); + * var res = source.skipWhile(function (value, index) { return value < 10 || index < 10; }); + * @param {Function} predicate A function to test each element for a condition; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. + */ + skipWhile(predicate: _Predicate, thisArg?: any): Observable; + } +} diff --git a/node_modules/rx/ts/core/linq/observable/skipwithtime.ts b/node_modules/rx/ts/core/linq/observable/skipwithtime.ts new file mode 100644 index 0000000..8bfbe44 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/skipwithtime.ts @@ -0,0 +1,29 @@ +/// +/// +module Rx { + export interface Observable { + /** + * Skips elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + * + * @example + * 1 - res = source.skipWithTime(5000, [optional scheduler]); + * + * @description + * Specifying a zero value for duration doesn't guarantee no elements will be dropped from the start of the source sequence. + * This is a side-effect of the asynchrony introduced by the scheduler, where the action that causes callbacks from the source sequence to be forwarded + * may not execute immediately, despite the zero due time. + * + * Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the duration. + * @param {Number} duration Duration for skipping elements from the start of the sequence. + * @param {Scheduler} scheduler Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout. + * @returns {Observable} An observable sequence with the elements skipped during the specified duration from the start of the source sequence. + */ + skipWithTime(duration: number, scheduler?: IScheduler): Observable; + } +} + +(function() { + var o: Rx.Observable; + o = o.skipWithTime(1); + o = o.skipWithTime(100, Rx.Scheduler.default); +}); diff --git a/node_modules/rx/ts/core/linq/observable/some.ts b/node_modules/rx/ts/core/linq/observable/some.ts new file mode 100644 index 0000000..d20224e --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/some.ts @@ -0,0 +1,21 @@ +/// +module Rx { + export interface Observable { + /** + * Determines whether any element of an observable sequence satisfies a condition if present, else if any items are in the sequence. + * @param {Function} [predicate] A function to test each element for a condition. + * @returns {Observable} An observable sequence containing a single element determining whether any elements in the source sequence pass the test in the specified predicate if given, else if any items are in the sequence. + */ + some(predicate?: _Predicate, thisArg?: any): Observable; // alias for any + } +} + + +(function () { + var os : Rx.Observable; + var on : Rx.Observable; + + on.some(); + os.some((v, i, s) => true); + os.some((v, i, s) => true, {}); +}); diff --git a/node_modules/rx/ts/core/linq/observable/spawn.ts b/node_modules/rx/ts/core/linq/observable/spawn.ts new file mode 100644 index 0000000..44f256e --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/spawn.ts @@ -0,0 +1,7 @@ +/// +module Rx { + export interface ObservableStatic { + wrap(fn: Function): Observable; + spawn(fn: Function): Observable; + } +} diff --git a/node_modules/rx/ts/core/linq/observable/start.ts b/node_modules/rx/ts/core/linq/observable/start.ts new file mode 100644 index 0000000..ceb5b95 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/start.ts @@ -0,0 +1,30 @@ +/// +/// +module Rx { + export interface ObservableStatic { + /** + * Invokes the specified function asynchronously on the specified scheduler, surfacing the result through an observable sequence. + * + * @example + * var res = Rx.Observable.start(function () { console.log('hello'); }); + * var res = Rx.Observable.start(function () { console.log('hello'); }, Rx.Scheduler.timeout); + * var res = Rx.Observable.start(function () { this.log('hello'); }, Rx.Scheduler.timeout, console); + * + * @param {Function} func Function to run asynchronously. + * @param {Scheduler} [scheduler] Scheduler to run the function on. If not specified, defaults to Scheduler.timeout. + * @param [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @returns {Observable} An observable sequence exposing the function's result value, or an exception. + * + * Remarks + * * The function is called immediately, not during the subscription of the resulting sequence. + * * Multiple subscriptions to the resulting sequence can observe the function's result. + */ + start(func: () => T, scheduler?: IScheduler, context?: any): Observable; + } +} + +(function () { + var o : Rx.Observable = Rx.Observable.start(() => 'abc'); + var o : Rx.Observable = Rx.Observable.start(() => 'abc', Rx.Scheduler.default); + var o : Rx.Observable = Rx.Observable.start(() => 'abc', Rx.Scheduler.default, {}); +}); diff --git a/node_modules/rx/ts/core/linq/observable/startasync.ts b/node_modules/rx/ts/core/linq/observable/startasync.ts new file mode 100644 index 0000000..27031c7 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/startasync.ts @@ -0,0 +1,16 @@ +/// +module Rx { + export interface ObservableStatic { + /** + * Invokes the asynchronous function, surfacing the result through an observable sequence. + * @param {Function} functionAsync Asynchronous function which returns a Promise to run. + * @returns {Observable} An observable sequence exposing the function's result value, or an exception. + */ + startAsync(functionAsync: () => IPromise): Observable; + } +} + + +(function () { + var o : Rx.Observable = Rx.Observable.startAsync(() => Rx.Observable.just('a').toPromise()); +}); diff --git a/node_modules/rx/ts/core/linq/observable/startwith.ts b/node_modules/rx/ts/core/linq/observable/startwith.ts new file mode 100644 index 0000000..9043b5f --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/startwith.ts @@ -0,0 +1,30 @@ +/// +module Rx { + export interface Observable { + /** + * Prepends a sequence of values to an observable sequence with an optional scheduler and an argument list of values to prepend. + * @example + * var res = source.startWith(1, 2, 3); + * var res = source.startWith(Rx.Scheduler.timeout, 1, 2, 3); + * @param {Arguments} args The specified values to prepend to the observable sequence + * @returns {Observable} The source sequence prepended with the specified values. + */ + startWith(...values: T[]): Observable; + /** + * Prepends a sequence of values to an observable sequence with an optional scheduler and an argument list of values to prepend. + * @example + * var res = source.startWith(1, 2, 3); + * var res = source.startWith(Rx.Scheduler.timeout, 1, 2, 3); + * @param {Arguments} args The specified values to prepend to the observable sequence + * @returns {Observable} The source sequence prepended with the specified values. + */ + startWith(scheduler: IScheduler, ...values: T[]): Observable; + } +} + + +(function() { + var o: Rx.Observable; + o = o.startWith(1, 2, 3, 4, 5); + o = o.startWith(Rx.Scheduler.async, 1, 2, 3, 4, 5); +}); diff --git a/node_modules/rx/ts/core/linq/observable/subscribeon.ts b/node_modules/rx/ts/core/linq/observable/subscribeon.ts new file mode 100644 index 0000000..e1f96d0 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/subscribeon.ts @@ -0,0 +1,24 @@ +/// +/// +module Rx { + export interface Observable { + /** + * Wraps the source sequence in order to run its subscription and unsubscription logic on the specified scheduler. This operation is not commonly used; + * see the remarks section for more information on the distinction between subscribeOn and observeOn. + + * This only performs the side-effects of subscription and unsubscription on the specified scheduler. In order to invoke observer + * callbacks on a scheduler, use observeOn. + + * @param {Scheduler} scheduler Scheduler to perform subscription and unsubscription actions on. + * @returns {Observable} The source sequence whose subscriptions and unsubscriptions happen on the specified scheduler. + */ + subscribeOn(scheduler: IScheduler): Observable; + } +} + + + +(function() { + var o: Rx.Observable; + o = o.subscribeOn(Rx.Scheduler.async); +}); diff --git a/node_modules/rx/ts/core/linq/observable/sum.ts b/node_modules/rx/ts/core/linq/observable/sum.ts new file mode 100644 index 0000000..f63b3c7 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/sum.ts @@ -0,0 +1,22 @@ +/// +module Rx { + export interface Observable { + /** + * Computes the sum of a sequence of values that are obtained by invoking an optional transform function on each element of the input sequence, else if not specified computes the sum on each item in the sequence. + * @param {Function} [selector] A transform function to apply to each element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence containing a single element with the sum of the values in the source sequence. + */ + sum(keySelector?: _Selector, thisArg?: any): Observable; + } +} + + +(function () { + var os : Rx.Observable; + var on : Rx.Observable; + + on.sum(); + os.sum((v, i, s) => v.length + i); + os.sum((v, i, s) => v.length + i, {}); +}); diff --git a/node_modules/rx/ts/core/linq/observable/switch.ts b/node_modules/rx/ts/core/linq/observable/switch.ts new file mode 100644 index 0000000..2278db4 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/switch.ts @@ -0,0 +1,22 @@ +/// +module Rx { + export interface Observable { + /** + * Transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @returns {Observable} The observable sequence that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + switch(): T; + /** + * Transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @returns {Observable} The observable sequence that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + switchLatest(): T; + } +} + +(function() { + var o: Rx.Observable>; + var or: Rx.Observable; + or = o.switch(); + or = o.switchLatest(); +}); diff --git a/node_modules/rx/ts/core/linq/observable/switchfirst.ts b/node_modules/rx/ts/core/linq/observable/switchfirst.ts new file mode 100644 index 0000000..e0df0f4 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/switchfirst.ts @@ -0,0 +1,18 @@ +/// +module Rx { + export interface Observable { + /** + * Performs a exclusive waiting for the first to finish before subscribing to another observable. + * Observables that come in between subscriptions will be dropped on the floor. + * @returns {Observable} A exclusive observable with only the results that happen when subscribed. + */ + switchFirst(): T; + } +} + + +(function() { + var o: Rx.Observable>; + var or: Rx.Observable; + or = o.switchFirst(); +}); diff --git a/node_modules/rx/ts/core/linq/observable/take.ts b/node_modules/rx/ts/core/linq/observable/take.ts new file mode 100644 index 0000000..f50f366 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/take.ts @@ -0,0 +1,22 @@ +/// +/// +module Rx { + export interface Observable { + /** + * Returns a specified number of contiguous elements from the start of an observable sequence, using the specified scheduler for the edge case of take(0). + * + * var res = source.take(5); + * var res = source.take(0, Rx.Scheduler.timeout); + * @param {Number} count The number of elements to return. + * @param {Scheduler} [scheduler] Scheduler used to produce an OnCompleted message in case +/// +module Rx { + export interface Observable { + /** + * Returns a specified number of contiguous elements from the end of an observable sequence. + * @description + * This operator accumulates a buffer with a length enough to store elements count elements. Upon completion of + * the source sequence, this buffer is drained on the result sequence. This causes the elements to be delayed. + * @param {Number} count Number of elements to take from the end of the source sequence. + * @returns {Observable} An observable sequence containing the specified number of elements from the end of the source sequence. + */ + takeLast(count: number): Observable; + } +} + + +(function() { + var o: Rx.Observable; + o = o.takeLast(1); +}); diff --git a/node_modules/rx/ts/core/linq/observable/takelastbuffer.ts b/node_modules/rx/ts/core/linq/observable/takelastbuffer.ts new file mode 100644 index 0000000..34e1aab --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/takelastbuffer.ts @@ -0,0 +1,22 @@ +/// +module Rx { + export interface Observable { + /** + * Returns an array with the specified number of contiguous elements from the end of an observable sequence. + * + * @description + * This operator accumulates a buffer with a length enough to store count elements. Upon completion of the + * source sequence, this buffer is produced on the result sequence. + * @param {Number} count Number of elements to take from the end of the source sequence. + * @returns {Observable} An observable sequence containing a single array with the specified number of elements from the end of the source sequence. + */ + takeLastBuffer(count: number): Observable; + } +} + + +(function() { + var o: Rx.Observable; + var o2: Rx.Observable; + o2 = o.takeLastBuffer(1); +}); diff --git a/node_modules/rx/ts/core/linq/observable/takelastbufferwithtime.ts b/node_modules/rx/ts/core/linq/observable/takelastbufferwithtime.ts new file mode 100644 index 0000000..902e7ee --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/takelastbufferwithtime.ts @@ -0,0 +1,25 @@ +/// +/// +module Rx { + export interface Observable { + /** + * Returns an array with the elements within the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + * @description + * This operator accumulates a queue with a length enough to store elements received during the initial duration window. + * As more elements are received, elements older than the specified duration are taken from the queue and produced on the + * result sequence. This causes elements to be delayed with duration. + * @param {Number} duration Duration for taking elements from the end of the sequence. + * @param {Scheduler} scheduler Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout. + * @returns {Observable} An observable sequence containing a single array with the elements taken during the specified duration from the end of the source sequence. + */ + takeLastBufferWithTime(duration: number, scheduler?: IScheduler): Observable; + } +} + + +(function() { + var o: Rx.Observable; + var o2: Rx.Observable; + o2 = o.takeLastBufferWithTime(1); + o2 = o.takeLastBufferWithTime(1, Rx.Scheduler.async); +}); diff --git a/node_modules/rx/ts/core/linq/observable/takelastwithtime.ts b/node_modules/rx/ts/core/linq/observable/takelastwithtime.ts new file mode 100644 index 0000000..0cda3a6 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/takelastwithtime.ts @@ -0,0 +1,24 @@ +/// +/// +module Rx { + export interface Observable { + /** + * Returns elements within the specified duration from the end of the observable source sequence, using the specified schedulers to run timers and to drain the collected elements. + * @description + * This operator accumulates a queue with a length enough to store elements received during the initial duration window. + * As more elements are received, elements older than the specified duration are taken from the queue and produced on the + * result sequence. This causes elements to be delayed with duration. + * @param {Number} duration Duration for taking elements from the end of the sequence. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout. + * @returns {Observable} An observable sequence with the elements taken during the specified duration from the end of the source sequence. + */ + takeLastWithTime(duration: number, timerScheduler?: IScheduler, loopScheduler?: IScheduler): Observable; + } +} + + +(function() { + var o: Rx.Observable; + o = o.takeLastWithTime(1); + o = o.takeLastWithTime(1, Rx.Scheduler.async, Rx.Scheduler.default); +}); diff --git a/node_modules/rx/ts/core/linq/observable/takeuntil.ts b/node_modules/rx/ts/core/linq/observable/takeuntil.ts new file mode 100644 index 0000000..5d442d6 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/takeuntil.ts @@ -0,0 +1,19 @@ +/// +module Rx { + export interface Observable { + /** + * Returns the values from the source observable sequence until the other observable sequence produces a value. + * @param {Observable | Promise} other Observable sequence or Promise that terminates propagation of elements of the source sequence. + * @returns {Observable} An observable sequence containing the elements of the source sequence up to the point the other sequence interrupted further propagation. + */ + takeUntil(other: ObservableOrPromise): Observable; + } +} + + +(function() { + var o: Rx.Observable; + var o2: Rx.Observable; + + o = o.skipUntil(o2); +}); diff --git a/node_modules/rx/ts/core/linq/observable/takeuntilwithtime.ts b/node_modules/rx/ts/core/linq/observable/takeuntilwithtime.ts new file mode 100644 index 0000000..dcff3cb --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/takeuntilwithtime.ts @@ -0,0 +1,31 @@ +/// +/// +module Rx { + export interface Observable { + /** + * Takes elements for the specified duration until the specified end time, using the specified scheduler to run timers. + * @param {Number | Date} endTime Time to stop taking elements from the source sequence. If this value is less than or equal to new Date(), the result stream will complete immediately. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. + * @returns {Observable} An observable sequence with the elements taken until the specified end time. + */ + takeUntilWithTime(endTime: Date, scheduler?: IScheduler): Observable; + /** + * Takes elements for the specified duration until the specified end time, using the specified scheduler to run timers. + * @param {Number | Date} endTime Time to stop taking elements from the source sequence. If this value is less than or equal to new Date(), the result stream will complete immediately. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. + * @returns {Observable} An observable sequence with the elements taken until the specified end time. + */ + takeUntilWithTime(duration: number, scheduler?: IScheduler): Observable; + } +} + + +(function() { + var o: Rx.Observable; + var o2: Rx.Observable; + + o = o.skipUntilWithTime(new Date()); + o = o.skipUntilWithTime(new Date(), Rx.Scheduler.default); + o = o.skipUntilWithTime(1000); + o = o.skipUntilWithTime(1000, Rx.Scheduler.default); +}); diff --git a/node_modules/rx/ts/core/linq/observable/takewhile.ts b/node_modules/rx/ts/core/linq/observable/takewhile.ts new file mode 100644 index 0000000..1997955 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/takewhile.ts @@ -0,0 +1,13 @@ +/// +module Rx { + export interface Observable { + /** + * Returns elements from an observable sequence as long as a specified condition is true. + * The element's index is used in the logic of the predicate function. + * @param {Function} predicate A function to test each element for a condition; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes. + */ + takeWhile(predicate: _Predicate, thisArg?: any): Observable; + } +} diff --git a/node_modules/rx/ts/core/linq/observable/takewithtime.ts b/node_modules/rx/ts/core/linq/observable/takewithtime.ts new file mode 100644 index 0000000..b5cfcec --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/takewithtime.ts @@ -0,0 +1,27 @@ +/// +/// +module Rx { + export interface Observable { + /** + * Takes elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + * + * @example + * 1 - res = source.takeWithTime(5000, [optional scheduler]); + * @description + * This operator accumulates a queue with a length enough to store elements received during the initial duration window. + * As more elements are received, elements older than the specified duration are taken from the queue and produced on the + * result sequence. This causes elements to be delayed with duration. + * @param {Number} duration Duration for taking elements from the start of the sequence. + * @param {Scheduler} scheduler Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout. + * @returns {Observable} An observable sequence with the elements taken during the specified duration from the start of the source sequence. + */ + takeWithTime(duration: number, scheduler?: IScheduler): Observable; + } +} + + +(function() { + var o: Rx.Observable; + o = o.takeWithTime(1); + o = o.takeWithTime(100, Rx.Scheduler.default); +}); diff --git a/node_modules/rx/ts/core/linq/observable/tap.ts b/node_modules/rx/ts/core/linq/observable/tap.ts new file mode 100644 index 0000000..4d2db91 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/tap.ts @@ -0,0 +1,118 @@ +/// +/// +module Rx { + export interface Observable { + /** + * Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function | Observer} observerOrOnNext Action to invoke for each element in the observable sequence or an observer. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + do(observer: Observer): Observable; + /** + * Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function | Observer} observerOrOnNext Action to invoke for each element in the observable sequence or an observer. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tap(observer: Observer): Observable; + + /** + * Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function | Observer} observerOrOnNext Action to invoke for each element in the observable sequence or an observer. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + do(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): Observable; + /** + * Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function | Observer} observerOrOnNext Action to invoke for each element in the observable sequence or an observer. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tap(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): Observable; + + /** + * Invokes an action for each element in the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onNext Action to invoke for each element in the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + doOnNext(onNext: (value: T) => void, thisArg?: any): Observable; + /** + * Invokes an action upon exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onError Action to invoke upon exceptional termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + doOnError(onError: (exception: any) => void, thisArg?: any): Observable; + /** + * Invokes an action upon graceful termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onCompleted Action to invoke upon graceful termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + doOnCompleted(onCompleted: () => void, thisArg?: any): Observable; + + /** + * Invokes an action for each element in the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onNext Action to invoke for each element in the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tapOnNext(onNext: (value: T) => void, thisArg?: any): Observable; + /** + * Invokes an action upon exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onError Action to invoke upon exceptional termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tapOnError(onError: (exception: any) => void, thisArg?: any): Observable; + /** + * Invokes an action upon graceful termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onCompleted Action to invoke upon graceful termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tapOnCompleted(onCompleted: () => void, thisArg?: any): Observable; + } +} + + +(function() { + var o: Rx.Observable; + var or: Rx.Observer; + + o.do(or); + o.tap(or); + + o.do((v) => {}, e => {}, () => {}); + o.tap((v) => {}, e => {}, () => {}); + + o.doOnNext((v) => { }); + o.tapOnNext((v) => { }); + o.doOnError((e) => { }); + o.tapOnError((e) => { }); + o.doOnCompleted(() => { }); + o.tapOnCompleted(() => { }); + o.doOnNext((v) => { }, {}); + o.tapOnNext((v) => { }, {}); + o.doOnError((e) => { }, {}); + o.tapOnError((e) => { }, {}); + o.doOnCompleted(() => { }, {}); + o.tapOnCompleted(() => { }, {}); +}); diff --git a/node_modules/rx/ts/core/linq/observable/thendo.ts b/node_modules/rx/ts/core/linq/observable/thendo.ts new file mode 100644 index 0000000..c9d8c7d --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/thendo.ts @@ -0,0 +1,13 @@ +/// +/// +module Rx { + export interface Observable { + /** + * Matches when the observable sequence has an available value and projects the value. + * + * @param {Function} selector Selector that will be invoked for values in the source sequence. + * @returns {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T) => TR): Plan; + } +} diff --git a/node_modules/rx/ts/core/linq/observable/throttle.ts b/node_modules/rx/ts/core/linq/observable/throttle.ts new file mode 100644 index 0000000..f3edf3b --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/throttle.ts @@ -0,0 +1,20 @@ +/// +/// +module Rx { + export interface Observable { + /** + * Returns an Observable that emits only the first item emitted by the source Observable during sequential time windows of a specified duration. + * @param {Number} windowDuration time to wait before emitting another item after emitting the last item + * @param {Scheduler} [scheduler] the Scheduler to use internally to manage the timers that handle timeout for each item. If not provided, defaults to Scheduler.timeout. + * @returns {Observable} An Observable that performs the throttle operation. + */ + throttle(windowDuration: number, scheduler?: IScheduler): Observable; + } +} + + +(function () { + var o: Rx.Observable; + o.throttle(100); + o.throttle(100, Rx.Scheduler.async); +}); diff --git a/node_modules/rx/ts/core/linq/observable/throw.ts b/node_modules/rx/ts/core/linq/observable/throw.ts new file mode 100644 index 0000000..d64caa0 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/throw.ts @@ -0,0 +1,28 @@ +/// +/// +module Rx { + export interface ObservableStatic { + /** + * Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single onError message. + * @param {Mixed} error An object used for the sequence's termination. + * @param {Scheduler} scheduler Scheduler to send the exceptional termination call on. If not specified, defaults to Scheduler.immediate. + * @returns {Observable} The observable sequence that terminates exceptionally with the specified exception object. + */ + throw(exception: Error, scheduler?: IScheduler): Observable; + /** + * Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single onError message. + * @param {Mixed} error An object used for the sequence's termination. + * @param {Scheduler} scheduler Scheduler to send the exceptional termination call on. If not specified, defaults to Scheduler.immediate. + * @returns {Observable} The observable sequence that terminates exceptionally with the specified exception object. + */ + throw(exception: any, scheduler?: IScheduler): Observable; + } +} + +(function () { + var o : Rx.Observable; + o = Rx.Observable.throw(new Error()); + o = Rx.Observable.throw(new Error(), Rx.Scheduler.async); + o = Rx.Observable.throw('abc'); + o = Rx.Observable.throw('abc', Rx.Scheduler.async); +}); diff --git a/node_modules/rx/ts/core/linq/observable/timeinterval.ts b/node_modules/rx/ts/core/linq/observable/timeinterval.ts new file mode 100644 index 0000000..a81885b --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/timeinterval.ts @@ -0,0 +1,29 @@ +/// +/// +module Rx { + export interface TimeInterval { + value: T; + interval: number; + } + + export interface Observable { + /** + * Records the time interval between consecutive values in an observable sequence. + * + * @example + * 1 - res = source.timeInterval(); + * 2 - res = source.timeInterval(Rx.Scheduler.timeout); + * + * @param [scheduler] Scheduler used to compute time intervals. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence with time interval information on values. + */ + timeInterval(scheduler?: IScheduler): Observable>; + } +} + +(function () { + var o : Rx.Observable; + var t : Rx.Observable>; + + t = o.timeInterval(Rx.Scheduler.async); +}); diff --git a/node_modules/rx/ts/core/linq/observable/timeout.ts b/node_modules/rx/ts/core/linq/observable/timeout.ts new file mode 100644 index 0000000..85a1729 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/timeout.ts @@ -0,0 +1,80 @@ +/// +/// +module Rx { + export interface Observable { + /** + * Returns the source observable sequence or the other observable sequence if dueTime elapses. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) when a timeout occurs. + * @param {Scheduler} [scheduler] Scheduler to run the timeout timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(dueTime: Date, scheduler?: IScheduler): Observable; + + /** + * Returns the source observable sequence or the other observable sequence if dueTime elapses. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) when a timeout occurs. + * @param {Observable} [other] Sequence to return in case of a timeout. If not specified, a timeout error throwing sequence will be used. + * @param {Scheduler} [scheduler] Scheduler to run the timeout timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(dueTime: Date, other?: Observable, scheduler?: IScheduler): Observable; + /** + * Returns the source observable sequence or the other observable sequence if dueTime elapses. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) when a timeout occurs. + * @param {Observable} [other] Sequence to return in case of a timeout. If not specified, a timeout error throwing sequence will be used. + * @param {Scheduler} [scheduler] Scheduler to run the timeout timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(dueTime: number, scheduler?: IScheduler): Observable; + /** + * Returns the source observable sequence or the other observable sequence if dueTime elapses. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) when a timeout occurs. + * @param {Observable} [other] Sequence to return in case of a timeout. If not specified, a timeout error throwing sequence will be used. + * @param {Scheduler} [scheduler] Scheduler to run the timeout timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(dueTime: number, other?: Observable, scheduler?: IScheduler): Observable; + + /** + * Returns the source observable sequence, switching to the other observable sequence if a timeout is signaled. + * @param {Function} timeoutDurationSelector Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(timeoutdurationSelector: (item: T) => Observable): Observable; + + /** + * Returns the source observable sequence, switching to the other observable sequence if a timeout is signaled. + * @param {Function} timeoutDurationSelector Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + * @param {Observable} other Sequence to return in case of a timeout. If not provided, this is set to Observable.throwException(). + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(timeoutdurationSelector: (item: T) => Observable, other: Observable): Observable; + + /** + * Returns the source observable sequence, switching to the other observable sequence if a timeout is signaled. + * @param {Observable} [firstTimeout] Observable sequence that represents the timeout for the first element. If not provided, this defaults to Observable.never(). + * @param {Function} timeoutDurationSelector Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + * @param {Observable} [other] Sequence to return in case of a timeout. If not provided, this is set to Observable.throwException(). + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(firstTimeout: Observable, timeoutdurationSelector: (item: T) => Observable, other?: Observable): Observable; + } +} + + +(function () { + var o: Rx.Observable; + o.timeout(100); + o.timeout(100, Rx.Scheduler.default); + o.timeout(new Date()); + o.timeout(new Date(), Rx.Scheduler.default); + o.timeout(100, o); + o.timeout(new Date(), o); + o.timeout(100, o, Rx.Scheduler.async); + o.timeout(new Date(), o, Rx.Scheduler.async); + + o.timeout(x => Rx.Observable.interval(1000)); + o.timeout(x => Rx.Observable.interval(1000), Rx.Observable.just('100')); + o.timeout(Rx.Observable.interval(1000), x => Rx.Observable.interval(1000)); + o.timeout(Rx.Observable.interval(1000), x => Rx.Observable.interval(1000), Rx.Observable.just('100')); +}); diff --git a/node_modules/rx/ts/core/linq/observable/timer.ts b/node_modules/rx/ts/core/linq/observable/timer.ts new file mode 100644 index 0000000..1205212 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/timer.ts @@ -0,0 +1,30 @@ +/// +/// +module Rx { + export interface ObservableStatic { + /** + * Returns an observable sequence that produces a value after dueTime has elapsed and then after each period. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) at which to produce the first value. + * @param {Mixed} [periodOrScheduler] Period to produce subsequent values (specified as an integer denoting milliseconds), or the scheduler to run the timer on. If not specified, the resulting timer is not recurring. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence that produces a value after due time has elapsed and then each period. + */ + timer(dueTime: number, period: number, scheduler?: IScheduler): Observable; + /** + * Returns an observable sequence that produces a value after dueTime has elapsed and then after each period. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) at which to produce the first value. + * @param {Mixed} [periodOrScheduler] Period to produce subsequent values (specified as an integer denoting milliseconds), or the scheduler to run the timer on. If not specified, the resulting timer is not recurring. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence that produces a value after due time has elapsed and then each period. + */ + timer(dueTime: number, scheduler?: IScheduler): Observable; + } +} + + +(function () { + var o : Rx.Observable; + o = Rx.Observable.timer(100); + o = Rx.Observable.timer(100, 100); + o = Rx.Observable.timer(100, 100, Rx.Scheduler.async); +}); diff --git a/node_modules/rx/ts/core/linq/observable/timestamp.ts b/node_modules/rx/ts/core/linq/observable/timestamp.ts new file mode 100644 index 0000000..6004904 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/timestamp.ts @@ -0,0 +1,28 @@ +/// +/// +module Rx { + export interface Timestamp { + value: T; + timestamp: number; + } + + export interface Observable { + /** + * Records the timestamp for each value in an observable sequence. + * + * @example + * 1 - res = source.timestamp(); // produces { value: x, timestamp: ts } + * 2 - res = source.timestamp(Rx.Scheduler.default); + * + * @param {Scheduler} [scheduler] Scheduler used to compute timestamps. If not specified, the default scheduler is used. + * @returns {Observable} An observable sequence with timestamp information on values. + */ + timestamp(scheduler?: IScheduler): Observable>; + } +} + +(function () { + var o : Rx.Observable; + var t : Rx.Observable>; + t = o.timestamp(Rx.Scheduler.async); +}); diff --git a/node_modules/rx/ts/core/linq/observable/toarray.ts b/node_modules/rx/ts/core/linq/observable/toarray.ts new file mode 100644 index 0000000..90fd21f --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/toarray.ts @@ -0,0 +1,16 @@ +/// +module Rx { + export interface Observable { + /** + * Creates an array from an observable sequence. + * @returns {Observable} An observable sequence containing a single element with a list containing all the elements of the source sequence. + */ + toArray(): Observable; + } +} + +(function () { + var o : Rx.Observable; + var t : Rx.Observable; + t = o.toArray(); +}); diff --git a/node_modules/rx/ts/core/linq/observable/toasync.ts b/node_modules/rx/ts/core/linq/observable/toasync.ts new file mode 100644 index 0000000..667a83c --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/toasync.ts @@ -0,0 +1,59 @@ +/// +module Rx { + export interface ObservableStatic { + /** + * Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + * @param {Function} function Function to convert to an asynchronous function. + * @param {Scheduler} [scheduler] Scheduler to run the function on. If not specified, defaults to Scheduler.timeout. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @returns {Function} Asynchronous function. + */ + toAsync(func: () => TResult, context?: any, scheduler?: IScheduler): () => Observable; + /** + * Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + * @param {Function} function Function to convert to an asynchronous function. + * @param {Scheduler} [scheduler] Scheduler to run the function on. If not specified, defaults to Scheduler.timeout. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @returns {Function} Asynchronous function. + */ + toAsync(func: (arg1: T1) => TResult, context?: any, scheduler?: IScheduler): (arg1: T1) => Observable; + /** + * Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + * @param {Function} function Function to convert to an asynchronous function. + * @param {Scheduler} [scheduler] Scheduler to run the function on. If not specified, defaults to Scheduler.timeout. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @returns {Function} Asynchronous function. + */ + toAsync(func: (arg1: T1, arg2: T2) => TResult, context?: any, scheduler?: IScheduler): (arg1: T1, arg2: T2) => Observable; + /** + * Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + * @param {Function} function Function to convert to an asynchronous function. + * @param {Scheduler} [scheduler] Scheduler to run the function on. If not specified, defaults to Scheduler.timeout. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @returns {Function} Asynchronous function. + */ + toAsync(func: (arg1: T1, arg2: T2, arg3: T3) => TResult, context?: any, scheduler?: IScheduler): (arg1: T1, arg2: T2, arg3: T3) => Observable; + /** + * Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + * @param {Function} function Function to convert to an asynchronous function. + * @param {Scheduler} [scheduler] Scheduler to run the function on. If not specified, defaults to Scheduler.timeout. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @returns {Function} Asynchronous function. + */ + toAsync(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => TResult, context?: any, scheduler?: IScheduler): (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Observable; + } +} + + +(function() { + var o: () => Rx.Observable; + var o2: (a: any) => Rx.Observable; + var o3: (a: any, b: any) => Rx.Observable; + var o4: (a: any, b: any, c: any) => Rx.Observable; + o = Rx.Observable.toAsync(() => 'abc'); + o2 = Rx.Observable.toAsync((a) => 'abc'); + o3 = Rx.Observable.toAsync((a, b) => 'abc'); + o4 = Rx.Observable.toAsync((a, b, c) => 'abc'); + o = Rx.Observable.toAsync(() => 'abc', {}, Rx.Scheduler.async); + +}); diff --git a/node_modules/rx/ts/core/linq/observable/tomap.ts b/node_modules/rx/ts/core/linq/observable/tomap.ts new file mode 100644 index 0000000..cf0fbbb --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/tomap.ts @@ -0,0 +1,19 @@ +/// +module Rx { + export interface Observable { + /** + * Converts the observable sequence to a Map if it exists. + * @param {Function} keySelector A function which produces the key for the Map. + * @param {Function} [elementSelector] An optional function which produces the element for the Map. If not present, defaults to the value from the observable sequence. + * @returns {Observable} An observable sequence with a single value of a Map containing the values from the observable sequence. + */ + toMap(keySelector: (value: T) => TKey): Observable>; + /** + * Converts the observable sequence to a Map if it exists. + * @param {Function} keySelector A function which produces the key for the Map. + * @param {Function} [elementSelector] An optional function which produces the element for the Map. If not present, defaults to the value from the observable sequence. + * @returns {Observable} An observable sequence with a single value of a Map containing the values from the observable sequence. + */ + toMap(keySelector: (value: T) => TKey, elementSelector: (value: T) => TElement): Observable>; + } +} diff --git a/node_modules/rx/ts/core/linq/observable/topromise.ts b/node_modules/rx/ts/core/linq/observable/topromise.ts new file mode 100644 index 0000000..173cc05 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/topromise.ts @@ -0,0 +1,35 @@ +/// +module Rx { + export interface Observable { + /* + * Converts an existing observable sequence to an ES6 Compatible Promise + * @example + * var promise = Rx.Observable.return(42).toPromise(RSVP.Promise); + * + * // With config + * Rx.config.Promise = RSVP.Promise; + * var promise = Rx.Observable.return(42).toPromise(); + * @param {Function} [promiseCtor] The constructor of the promise. If not provided, it looks for it in Rx.config.Promise. + * @returns {Promise} An ES6 compatible promise with the last value from the observable sequence. + */ + toPromise(promiseCtor?: { new (resolver: (resolvePromise: (value: T) => void, rejectPromise: (reason: any) => void) => void): IPromise; }): IPromise; + /* + * Converts an existing observable sequence to an ES6 Compatible Promise + * @example + * var promise = Rx.Observable.return(42).toPromise(RSVP.Promise); + * + * // With config + * Rx.config.Promise = RSVP.Promise; + * var promise = Rx.Observable.return(42).toPromise(); + * @param {Function} [promiseCtor] The constructor of the promise. If not provided, it looks for it in Rx.config.Promise. + * @returns {Promise} An ES6 compatible promise with the last value from the observable sequence. + */ + toPromise>(promiseCtor: { new (resolver: (resolvePromise: (value: T) => void, rejectPromise: (reason: any) => void) => void): TPromise; }): TPromise; + } +} + +(function () { + var o : Rx.Observable; + var t : Rx.Promise; + t = o.toPromise(); +}); diff --git a/node_modules/rx/ts/core/linq/observable/toset.ts b/node_modules/rx/ts/core/linq/observable/toset.ts new file mode 100644 index 0000000..245ac61 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/toset.ts @@ -0,0 +1,10 @@ +/// +module Rx { + export interface Observable { + /** + * Converts the observable sequence to a Set if it exists. + * @returns {Observable} An observable sequence with a single value of a Set containing the values from the observable sequence. + */ + toSet() : Observable< Set>; + } +} diff --git a/node_modules/rx/ts/core/linq/observable/transduce.ts b/node_modules/rx/ts/core/linq/observable/transduce.ts new file mode 100644 index 0000000..112ad73 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/transduce.ts @@ -0,0 +1,12 @@ +/// +module Rx { + export interface Observable { + /** + * Executes a transducer to transform the observable sequence + * @param {Transducer} transducer A transducer to execute + * @returns {Observable} An Observable sequence containing the results from the transducer. + */ + transduce(transducer: any): any; + //TODO: Setup transducer + } +} diff --git a/node_modules/rx/ts/core/linq/observable/using.ts b/node_modules/rx/ts/core/linq/observable/using.ts new file mode 100644 index 0000000..fdbec8b --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/using.ts @@ -0,0 +1,18 @@ +/// +module Rx { + export interface ObservableStatic { + /** + * Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime. + * @param {Function} resourceFactory Factory function to obtain a resource object. + * @param {Function} observableFactory Factory function to obtain an observable sequence that depends on the obtained resource. + * @returns {Observable} An observable sequence whose lifetime controls the lifetime of the dependent resource object. + */ + using(resourceFactory: () => TResource, observableFactory: (resource: TResource) => Observable): Observable; + } +} + +(function () { + var s : Rx.Observable; + var r : Rx.Disposable; + s = Rx.Observable.using(() => r, () => s); +}); diff --git a/node_modules/rx/ts/core/linq/observable/when.ts b/node_modules/rx/ts/core/linq/observable/when.ts new file mode 100644 index 0000000..30f98a5 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/when.ts @@ -0,0 +1,13 @@ +/// +/// +module Rx { + export interface ObservableStatic { + /** + * Joins together the results from several patterns. + * + * @param plans A series of plans (specified as an Array of as a series of arguments) created by use of the Then operator on patterns. + * @returns {Observable} Observable sequence with the results form matching several patterns. + */ + when(plan: Plan): Observable; + } +} diff --git a/node_modules/rx/ts/core/linq/observable/while.ts b/node_modules/rx/ts/core/linq/observable/while.ts new file mode 100644 index 0000000..9b0c849 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/while.ts @@ -0,0 +1,29 @@ +/// +module Rx { + export interface ObservableStatic { + /** + * Repeats source as long as condition holds emulating a while loop. + * There is an alias for this method called 'whileDo' for browsers (condition: () => boolean, source: ObservableOrPromise): Observable; + /** + * Repeats source as long as condition holds emulating a while loop. + * There is an alias for this method called 'whileDo' for browsers (condition: () => boolean, source: ObservableOrPromise): Observable; + } +} + +(function () { + var o :Rx.Observable; + + o = Rx.Observable.while(() => true, Rx.Observable.just(1)); +}); diff --git a/node_modules/rx/ts/core/linq/observable/window.ts b/node_modules/rx/ts/core/linq/observable/window.ts new file mode 100644 index 0000000..6ba5595 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/window.ts @@ -0,0 +1,38 @@ +/// +module Rx { + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more windows. + * + * @param {Mixed} windowOpeningsOrClosingSelector Observable sequence whose elements denote the creation of new windows, or, a function invoked to define the boundaries of the produced windows (a new window is started when the previous one is closed, resulting in non-overlapping windows). + * @param {Function} [windowClosingSelector] A function invoked to define the closing of each produced window. If a closing selector function is specified for the first parameter, this parameter is ignored. + * @returns {Observable} An observable sequence of windows. + */ + window(windowOpenings: Observable): Observable>; + /** + * Projects each element of an observable sequence into zero or more windows. + * + * @param {Mixed} windowOpeningsOrClosingSelector Observable sequence whose elements denote the creation of new windows, or, a function invoked to define the boundaries of the produced windows (a new window is started when the previous one is closed, resulting in non-overlapping windows). + * @param {Function} [windowClosingSelector] A function invoked to define the closing of each produced window. If a closing selector function is specified for the first parameter, this parameter is ignored. + * @returns {Observable} An observable sequence of windows. + */ + window(windowClosingSelector: () => Observable): Observable>; + /** + * Projects each element of an observable sequence into zero or more windows. + * + * @param {Mixed} windowOpeningsOrClosingSelector Observable sequence whose elements denote the creation of new windows, or, a function invoked to define the boundaries of the produced windows (a new window is started when the previous one is closed, resulting in non-overlapping windows). + * @param {Function} [windowClosingSelector] A function invoked to define the closing of each produced window. If a closing selector function is specified for the first parameter, this parameter is ignored. + * @returns {Observable} An observable sequence of windows. + */ + window(windowOpenings: Observable, windowClosingSelector: () => Observable): Observable>; + } +} + +(function() { + var o : Rx.Observable; + var open : Rx.Observable; + + var so : Rx.Observable> = o.window(open); + so = o.window(() => Rx.Observable.timer(100)); + so = o.window(open, () => Rx.Observable.timer(100)); +}); diff --git a/node_modules/rx/ts/core/linq/observable/windowwithcount.ts b/node_modules/rx/ts/core/linq/observable/windowwithcount.ts new file mode 100644 index 0000000..59e74da --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/windowwithcount.ts @@ -0,0 +1,22 @@ +/// +module Rx { + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more windows which are produced based on element count information. + * + * var res = xs.windowWithCount(10); + * var res = xs.windowWithCount(10, 1); + * @param {Number} count Length of each window. + * @param {Number} [skip] Number of elements to skip between creation of consecutive windows. If not specified, defaults to the count. + * @returns {Observable} An observable sequence of windows. + */ + windowWithCount(count: number, skip?: number): Observable>; + } +} + +(function() { + var o : Rx.Observable; + + var so : Rx.Observable> = o.windowWithTime(100); + so = o.windowWithCount(100, 5); +}); diff --git a/node_modules/rx/ts/core/linq/observable/windowwithtime.ts b/node_modules/rx/ts/core/linq/observable/windowwithtime.ts new file mode 100644 index 0000000..5c6d166 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/windowwithtime.ts @@ -0,0 +1,31 @@ +/// +/// +module Rx { + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more windows which are produced based on timing information. + * @param {Number} timeSpan Length of each window (specified as an integer denoting milliseconds). + * @param {Mixed} [timeShiftOrScheduler] Interval between creation of consecutive windows (specified as an integer denoting milliseconds), or an optional scheduler parameter. If not specified, the time shift corresponds to the timeSpan parameter, resulting in non-overlapping adjacent windows. + * @param {Scheduler} [scheduler] Scheduler to run windowing timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence of windows. + */ + windowWithTime(timeSpan: number, timeShift: number, scheduler?: IScheduler): Observable>; + /** + * Projects each element of an observable sequence into zero or more windows which are produced based on timing information. + * @param {Number} timeSpan Length of each window (specified as an integer denoting milliseconds). + * @param {Mixed} [timeShiftOrScheduler] Interval between creation of consecutive windows (specified as an integer denoting milliseconds), or an optional scheduler parameter. If not specified, the time shift corresponds to the timeSpan parameter, resulting in non-overlapping adjacent windows. + * @param {Scheduler} [scheduler] Scheduler to run windowing timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence of windows. + */ + windowWithTime(timeSpan: number, scheduler?: IScheduler): Observable>; + } +} + +(function() { + var o: Rx.Observable; + + var so: Rx.Observable> = o.windowWithTime(100); + so = o.windowWithTime(100, 5); + var so: Rx.Observable> = o.windowWithTime(100, Rx.Scheduler.async); + so = o.windowWithTime(100, 5, Rx.Scheduler.async); +}); diff --git a/node_modules/rx/ts/core/linq/observable/windowwithtimeorcount.ts b/node_modules/rx/ts/core/linq/observable/windowwithtimeorcount.ts new file mode 100644 index 0000000..2e37555 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/windowwithtimeorcount.ts @@ -0,0 +1,20 @@ +/// +/// +module Rx { + export interface Observable { + /** + * Projects each element of an observable sequence into a window that is completed when either it's full or a given amount of time has elapsed. + * @param {Number} timeSpan Maximum time length of a window. + * @param {Number} count Maximum element count of a window. + * @param {Scheduler} [scheduler] Scheduler to run windowing timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence of windows. + */ + windowWithTimeOrCount(timeSpan: number, count: number, scheduler?: IScheduler): Observable>; + } +} + +(function() { + var o: Rx.Observable; + var so: Rx.Observable> = o.windowWithTimeOrCount(100, 200); + var so: Rx.Observable> = o.windowWithTimeOrCount(100, 200, Rx.Scheduler.default); +}); diff --git a/node_modules/rx/ts/core/linq/observable/withlatestfrom.ts b/node_modules/rx/ts/core/linq/observable/withlatestfrom.ts new file mode 100644 index 0000000..e60f6fc --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/withlatestfrom.ts @@ -0,0 +1,61 @@ +/// +module Rx { + export interface Observable { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, resultSelector: (v1: T, v2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, ninth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8, v9: T9) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(souces: ObservableOrPromise[], resultSelector: (firstValue: T, ...otherValues: TOther[]) => TResult): Observable; + } +} + +(function() { + var o: Rx.Observable; + var io: Rx.IObservable; + var so: Rx.Subject; + var p: Rx.Promise<{ a: string }>; + + var r: Rx.Observable<{ vo: boolean, vio: string, vp: { a: string }, vso: number }> = o.withLatestFrom(io, p, so, (vo, vio, vp, vso) => ({ vo, vio, vp, vso })); + + var rr : Rx.Observable = o.withLatestFrom([io, so, p], (v1, items) => 5); +}); diff --git a/node_modules/rx/ts/core/linq/observable/zip.ts b/node_modules/rx/ts/core/linq/observable/zip.ts new file mode 100644 index 0000000..47f7b88 --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/zip.ts @@ -0,0 +1,126 @@ +/// +module Rx { + export interface ObservableStatic { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(sources: ObservableOrPromise[], resultSelector?: (item1: T1, ...right: T2[]) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, ObservableOrPromise: Observable, resultSelector?: (item1: T1, item2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: Observable, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, source6: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, source6: ObservableOrPromise, source7: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, source6: ObservableOrPromise, source7: ObservableOrPromise, source8: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7, item8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, source6: ObservableOrPromise, source7: ObservableOrPromise, source8: ObservableOrPromise, source9: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7, item8: T8, item9: T9) => TResult): Observable; + } + + export interface Observable { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, resultSelector?: (v1: T, v2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, ninth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8, v9: T9) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(souces: ObservableOrPromise[], resultSelector?: (firstValue: T, ...otherValues: TOther[]) => TResult): Observable; + } +} + diff --git a/node_modules/rx/ts/core/linq/observable/zipiterable.ts b/node_modules/rx/ts/core/linq/observable/zipiterable.ts new file mode 100644 index 0000000..0f660be --- /dev/null +++ b/node_modules/rx/ts/core/linq/observable/zipiterable.ts @@ -0,0 +1,17 @@ +/// +module Rx { + export interface ObservableStatic { + /** + * Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + * @param arguments Observable sources. + * @returns {Observable} An observable sequence containing lists of elements at corresponding indexes. + */ + zipIterable(...sources: Observable[]): Observable; + /** + * Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + * @param arguments Observable sources. + * @returns {Observable} An observable sequence containing lists of elements at corresponding indexes. + */ + zipIterable(sources: Observable[]): Observable; + } +} diff --git a/node_modules/rx/ts/core/notification.ts b/node_modules/rx/ts/core/notification.ts new file mode 100644 index 0000000..d6ceff6 --- /dev/null +++ b/node_modules/rx/ts/core/notification.ts @@ -0,0 +1,86 @@ +/// +/// +/// +/// +module Rx { + /** + * Represents a notification to an observer. + */ + export interface Notification { + /** + * Invokes the delegate corresponding to the notification or the observer's method corresponding to the notification and returns the produced result. + * + * @memberOf Notification + * @param {Any} observerOrOnNext Delegate to invoke for an OnNext notification or Observer to invoke the notification on.. + * @param {Function} onError Delegate to invoke for an OnError notification. + * @param {Function} onCompleted Delegate to invoke for an OnCompleted notification. + * @returns {Any} Result produced by the observation. + */ + accept(observer: IObserver): void; + /** + * Invokes the delegate corresponding to the notification or the observer's method corresponding to the notification and returns the produced result. + * + * @memberOf Notification + * @param {Any} observerOrOnNext Delegate to invoke for an OnNext notification or Observer to invoke the notification on.. + * @param {Function} onError Delegate to invoke for an OnError notification. + * @param {Function} onCompleted Delegate to invoke for an OnCompleted notification. + * @returns {Any} Result produced by the observation. + */ + accept(onNext: (value: T) => TResult, onError: (exception: any) => TResult, onCompleted: () => TResult): TResult; + + /** + * Returns an observable sequence with a single notification. + * + * @memberOf Notifications + * @param {Scheduler} [scheduler] Scheduler to send out the notification calls on. + * @returns {Observable} The observable sequence that surfaces the behavior of the notification upon subscription. + */ + toObservable(scheduler?: IScheduler): Observable; + + hasValue: boolean; + equals(other: Notification): boolean; + kind: string; + value: T; + error: any; + } + + interface NotificationStatic { + new (kind: any, value: any, exception: any, accept: any, acceptObservable: any, toString: any) : Notification; + + /** + * Creates an object that represents an OnNext notification to an observer. + * @param {Any} value The value contained in the notification. + * @returns {Notification} The OnNext notification containing the value. + */ + createOnNext(value: T): Notification; + /** + * Creates an object that represents an OnError notification to an observer. + * @param {Any} error The exception contained in the notification. + * @returns {Notification} The OnError notification containing the exception. + */ + createOnError(exception: any): Notification; + /** + * Creates an object that represents an OnCompleted notification to an observer. + * @returns {Notification} The OnCompleted notification. + */ + createOnCompleted(): Notification; + } + + export var Notification : NotificationStatic; +} + + +(function() { + var notification: Rx.Notification = new Rx.Notification(undefined, undefined, undefined, undefined, undefined, undefined); + + var observer: Rx.IObserver; + notification.accept(observer); + notification.accept((n) => n.toString(), (e) => e, () => false.toString()); + + var observable: Rx.Observable = notification.toObservable(); + var observable: Rx.Observable = notification.toObservable(Rx.Scheduler.currentThread); + + Rx.Notification.createOnNext(() => true); + Rx.Notification.createOnError(new Error('a')); + Rx.Notification.createOnCompleted(); +}); diff --git a/node_modules/rx/ts/core/observable.ts b/node_modules/rx/ts/core/observable.ts new file mode 100644 index 0000000..8695bdb --- /dev/null +++ b/node_modules/rx/ts/core/observable.ts @@ -0,0 +1,149 @@ +/// +/// +/// +module Rx { + export module config { + export var Promise: { new (resolver: (resolvePromise: (value: T) => void, rejectPromise: (reason: any) => void) => void): IPromise; }; + } + + export module helpers { + export var noop: () => void; + export var notDefined: (value: any) => boolean; + export var identity: (value: T) => T; + export var defaultNow: () => number; + export var defaultComparer: (left: any, right: any) => boolean; + export var defaultSubComparer: (left: any, right: any) => number; + export var defaultKeySerializer: (key: any) => string; + export var defaultError: (err: any) => void; + export var isPromise: (p: any) => boolean; + export var asArray: (...args: T[]) => T[]; + export var not: (value: any) => boolean; + export var isFunction: (value: any) => boolean; + } + + export type _Selector = (value: T, index: number, observable: Observable) => TResult; + export type _ValueOrSelector = TResult | _Selector; + export type _Predicate = _Selector; + export type _Comparer = (value1: T, value2: T) => TResult; + export type _Accumulator = (acc: TAcc, value: T) => TAcc; + + export module special { + export type _FlatMapResultSelector = (value: T1, selectorValue: T2, index: number, selectorOther: number) => TResult; + } + + export interface IObservable { + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(observer: IObserver): IDisposable; + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): IDisposable; + } + + export interface Observable { + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(observer: IObserver): IDisposable; + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): IDisposable; + + /** + * Subscribes to the next value in the sequence with an optional "this" argument. + * @param {Function} onNext The function to invoke on each element in the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Disposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribeOnNext(onNext: (value: T) => void, thisArg?: any): IDisposable; + /** + * Subscribes to an exceptional condition in the sequence with an optional "this" argument. + * @param {Function} onError The function to invoke upon exceptional termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Disposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribeOnError(onError: (exception: any) => void, thisArg?: any): IDisposable; + /** + * Subscribes to the next value in the sequence with an optional "this" argument. + * @param {Function} onCompleted The function to invoke upon graceful termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Disposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribeOnCompleted(onCompleted: () => void, thisArg?: any): IDisposable; + + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + forEach(observer: IObserver): IDisposable; + + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + forEach(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): IDisposable; + } + + export interface ObservableStatic { + /** + * Determines whether the given object is an Observable + * @param {Any} An object to determine whether it is an Observable + * @returns {Boolean} true if an Observable, else false. + */ + isObservable(o: any): boolean; + } + + export var Observable: ObservableStatic; +} + + +(function() { + var observer: Rx.IObserver; + var observable: Rx.Observable; + + observable.subscribe(observer); + observable.subscribe((v) => {}); + observable.subscribe((v) => {}, (e) => {}); + observable.subscribe((v) => {}, (e) => {}, () => {}); + + observable.subscribeOnNext((v) => {}); + observable.subscribeOnNext((v) => {}, {}); + + observable.subscribeOnError((v) => {}); + observable.subscribeOnError((v) => {}, {}); + + observable.subscribeOnCompleted(() => {}); + observable.subscribeOnCompleted(() => {}, {}); + + observable.forEach(observer); + observable.forEach((v) => {}); + observable.forEach((v) => {}, (e) => {}); + observable.forEach((v) => {}, (e) => {}, () => {}); + + Rx.Observable.isObservable({}); +}); diff --git a/node_modules/rx/ts/core/observer-extras.ts b/node_modules/rx/ts/core/observer-extras.ts new file mode 100644 index 0000000..3584267 --- /dev/null +++ b/node_modules/rx/ts/core/observer-extras.ts @@ -0,0 +1,73 @@ +/// +/// +/// +module Rx { + export interface Observer { + /** + * Creates a notification callback from an observer. + * @returns The action that forwards its input notification to the underlying observer. + */ + toNotifier(): (notification: Notification) => void; + + /** + * Hides the identity of an observer. + * @returns An observer that hides the identity of the specified observer. + */ + asObserver(): Observer; + + /** + * Checks access to the observer for grammar violations. This includes checking for multiple OnError or OnCompleted calls, as well as reentrancy in any of the observer methods. + * If a violation is detected, an Error is thrown from the offending observer method call. + * @returns An observer that checks callbacks invocations against the observer grammar and, if the checks pass, forwards those to the specified observer. + */ + checked(): CheckedObserver; + + /** + * Schedules the invocation of observer methods on the given scheduler. + * @param {Scheduler} scheduler Scheduler to schedule observer messages on. + * @returns {Observer} Observer whose messages are scheduled on the given scheduler. + */ + notifyOn(scheduler: IScheduler): Observer; + } + + export interface ObserverStatic { + /** + * Creates an observer from a notification callback. + * + * @static + * @memberOf Observer + * @param {Function} handler Action that handles a notification. + * @returns The observer object that invokes the specified handler using a notification corresponding to each message it receives. + */ + fromNotifier(handler: (notification: Notification, thisArg?: any) => void): Observer; + } +} + + +(function() { + var observer: Rx.Observer; + var n: (notification: Rx.Notification) => void = observer.toNotifier(); + + var o: Rx.Observer = observer.asObserver(); + + var c: Rx.CheckedObserver = observer.checked(); + + o = observer.notifyOn(Rx.Scheduler.immediate); + + var so : Rx.Observer = Rx.Observer.fromNotifier((n) => { + // Handle next calls + if (n.kind === 'N') { + console.log('Next: ' + n.value); + } + + // Handle error calls + if (n.kind === 'E') { + console.log('Error: ' + n.exception); + } + + // Handle completed + if (n.kind === 'C') { + console.log('Completed') + } + }); +}); diff --git a/node_modules/rx/ts/core/observer-lite.ts b/node_modules/rx/ts/core/observer-lite.ts new file mode 100644 index 0000000..9751740 --- /dev/null +++ b/node_modules/rx/ts/core/observer-lite.ts @@ -0,0 +1,74 @@ +/// +/// +module Rx { + /** + * Supports push-style iteration over an observable sequence. + */ + export interface IObserver { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + } + + export interface Observer { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + } + + export interface ObserverStatic { + /** + * Creates an observer from the specified OnNext, along with optional OnError, and OnCompleted actions. + * @param {Function} [onNext] Observer's OnNext action implementation. + * @param {Function} [onError] Observer's OnError action implementation. + * @param {Function} [onCompleted] Observer's OnCompleted action implementation. + * @returns {Observer} The observer object implemented using the given actions. + */ + create(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): Observer; + } + + /** + * Supports push-style iteration over an observable sequence. + */ + export var Observer: ObserverStatic; +} + + +(function() { + var iobserver: Rx.IObserver; + var observer: Rx.Observer; + + iobserver.onNext(false); + iobserver.onError(new Error('a')); + iobserver.onCompleted(); + + observer.onNext(false); + observer.onError(new Error('a')); + observer.onCompleted(); + + var so: Rx.Observer = Rx.Observer.create((v) => 1); + so = Rx.Observer.create((v) => 1, (e) => { }); + so = Rx.Observer.create((v) => 1, (e) => { }, () => { }); +}); diff --git a/node_modules/rx/ts/core/observer.ts b/node_modules/rx/ts/core/observer.ts new file mode 100644 index 0000000..768a86b --- /dev/null +++ b/node_modules/rx/ts/core/observer.ts @@ -0,0 +1,11 @@ +/// +module Rx { + export interface Observer { + makeSafe(disposable: IDisposable): Observer; + } +} + +(function() { + var observer: Rx.Observer; + observer = observer.makeSafe(Rx.Disposable.create(() => {})); +}); diff --git a/node_modules/rx/ts/core/scheduledobserver.ts b/node_modules/rx/ts/core/scheduledobserver.ts new file mode 100644 index 0000000..08c8a53 --- /dev/null +++ b/node_modules/rx/ts/core/scheduledobserver.ts @@ -0,0 +1,13 @@ +/// +module Rx { + export module internals { + export interface ScheduledObserver extends Observer { + ensureActive(): void; + } + } +} + +(function() { + var observer: Rx.internals.ScheduledObserver; + observer.ensureActive(); +}); diff --git a/node_modules/rx/ts/core/subjects/anonymoussubject.ts b/node_modules/rx/ts/core/subjects/anonymoussubject.ts new file mode 100644 index 0000000..2bafabc --- /dev/null +++ b/node_modules/rx/ts/core/subjects/anonymoussubject.ts @@ -0,0 +1,22 @@ +/// +module Rx { + export interface AnonymousSubject extends Subject { } + + interface AnonymousSubjectStatic { + /** + * Creates a subject that can only receive one value and that value is cached for all future observations. + * @constructor + */ + new (): AnonymousSubject; + } + + /** + * Represents the result of an asynchronous operation. + * The last value before the OnCompleted notification, or the error received through OnError, is sent to all subscribed observers. + */ + export var AnonymousSubject: AnonymousSubjectStatic; +} + +(function() { + var s : Rx.AnonymousSubject = new Rx.AnonymousSubject(); +}); diff --git a/node_modules/rx/ts/core/subjects/asyncsubject.ts b/node_modules/rx/ts/core/subjects/asyncsubject.ts new file mode 100644 index 0000000..1448f2d --- /dev/null +++ b/node_modules/rx/ts/core/subjects/asyncsubject.ts @@ -0,0 +1,23 @@ +/// + +module Rx { + export interface AsyncSubject extends Subject { } + + interface AsyncSubjectStatic { + /** + * Creates a subject that can only receive one value and that value is cached for all future observations. + * @constructor + */ + new (): AsyncSubject; + } + + /** + * Represents the result of an asynchronous operation. + * The last value before the OnCompleted notification, or the error received through OnError, is sent to all subscribed observers. + */ + export var AsyncSubject: AsyncSubjectStatic; +} + +(function() { + var s : Rx.AsyncSubject = new Rx.AsyncSubject(); +}); diff --git a/node_modules/rx/ts/core/subjects/behaviorsubject.ts b/node_modules/rx/ts/core/subjects/behaviorsubject.ts new file mode 100644 index 0000000..ed092a7 --- /dev/null +++ b/node_modules/rx/ts/core/subjects/behaviorsubject.ts @@ -0,0 +1,33 @@ +/// + +module Rx { + export interface BehaviorSubject extends Subject { + /** + * Gets the current value or throws an exception. + * Value is frozen after onCompleted is called. + * After onError is called always throws the specified exception. + * An exception is always thrown after dispose is called. + * @returns {Mixed} The initial value passed to the constructor until onNext is called; after which, the last value passed to onNext. + */ + getValue(): T; + } + + interface BehaviorSubjectStatic { + /** + * Initializes a new instance of the BehaviorSubject class which creates a subject that caches its last value and starts with the specified value. + * @param {Mixed} value Initial value sent to observers when no other value has been received by the subject yet. + */ + new (initialValue: T): BehaviorSubject; + } + + /** + * Represents a value that changes over time. + * Observers can subscribe to the subject to receive the last (or initial) value and all subsequent notifications. + */ + export var BehaviorSubject: BehaviorSubjectStatic; +} + +(function() { + var s : Rx.BehaviorSubject = new Rx.BehaviorSubject(false); + var b : boolean = s.getValue(); +}); diff --git a/node_modules/rx/ts/core/subjects/replaysubject.ts b/node_modules/rx/ts/core/subjects/replaysubject.ts new file mode 100644 index 0000000..a298ac7 --- /dev/null +++ b/node_modules/rx/ts/core/subjects/replaysubject.ts @@ -0,0 +1,28 @@ +/// +/// +module Rx { + export interface ReplaySubject extends Subject { } + + interface ReplaySubjectStatic { + /** + * Initializes a new instance of the ReplaySubject class with the specified buffer size, window size and scheduler. + * @param {Number} [bufferSize] Maximum element count of the replay buffer. + * @param {Number} [windowSize] Maximum time length of the replay buffer. + * @param {Scheduler} [scheduler] Scheduler the observers are invoked on. + */ + new (bufferSize?: number, window?: number, scheduler?: IScheduler): ReplaySubject; + } + + /** + * Represents an object that is both an observable sequence as well as an observer. + * Each notification is broadcasted to all subscribed and future observers, subject to buffer trimming policies. + */ + export var ReplaySubject: ReplaySubjectStatic; +} + +(function() { + var s : Rx.ReplaySubject = new Rx.ReplaySubject(); + var s : Rx.ReplaySubject = new Rx.ReplaySubject(10); + var s : Rx.ReplaySubject = new Rx.ReplaySubject(10, 10); + var s : Rx.ReplaySubject = new Rx.ReplaySubject(10, 10, Rx.Scheduler.async); +}); diff --git a/node_modules/rx/ts/core/subjects/subject.ts b/node_modules/rx/ts/core/subjects/subject.ts new file mode 100644 index 0000000..222d4d9 --- /dev/null +++ b/node_modules/rx/ts/core/subjects/subject.ts @@ -0,0 +1,59 @@ +/// +/// +/// + +module Rx { + /** + * Represents an object that is both an observable sequence as well as an observer. + * Each notification is broadcasted to all subscribed observers. + */ + export interface ISubject extends IObservable, IObserver, IDisposable { + hasObservers(): boolean; + } + + export interface Subject extends Observable, Observer, IDisposable { + hasObservers(): boolean; + /** Is this value disposed. */ + isDisposed: boolean; + } + + interface SubjectStatic { + /** + * Creates a subject. + */ + new (): Subject; + + /** + * Creates a subject from the specified observer and observable. + * @param {Observer} observer The observer used to send messages to the subject. + * @param {Observable} observable The observable used to subscribe to messages sent from the subject. + * @returns {Subject} Subject implemented using the given observer and observable. + */ + create(observer?: IObserver, observable?: IObservable): Subject; + } + + /** + * Represents an object that is both an observable sequence as well as an observer. + * Each notification is broadcasted to all subscribed observers. + */ + export var Subject: SubjectStatic; +} + +(function() { + var is: Rx.ISubject = new Rx.Subject(); + var s : Rx.Subject = new Rx.Subject(); + + is.hasObservers(); + s.hasObservers(); + + s.isDisposed; + + var iob : Rx.IObserver = s; + var io : Rx.IObservable = s; + var ob : Rx.Observer = s; + var o : Rx.Observable = s; + var d : Rx.IDisposable = s; + + var ns : Rx.ISubject = Rx.Subject.create(iob, io); + var ns : Rx.ISubject = Rx.Subject.create(ob, o); +}); diff --git a/node_modules/rx/ts/core/testing/mockdisposable.ts b/node_modules/rx/ts/core/testing/mockdisposable.ts new file mode 100644 index 0000000..bdf8fd0 --- /dev/null +++ b/node_modules/rx/ts/core/testing/mockdisposable.ts @@ -0,0 +1,9 @@ + // var MockDisposable = Rx.MockDisposable = function (scheduler) { + // this.scheduler = scheduler; + // this.disposes = []; + // this.disposes.push(this.scheduler.clock); + // }; + // + // MockDisposable.prototype.dispose = function () { + // this.disposes.push(this.scheduler.clock); + // }; diff --git a/node_modules/rx/ts/core/testing/mockobserver.ts b/node_modules/rx/ts/core/testing/mockobserver.ts new file mode 100644 index 0000000..9d7edc0 --- /dev/null +++ b/node_modules/rx/ts/core/testing/mockobserver.ts @@ -0,0 +1,21 @@ +/// +/// +/// + +module Rx { + export interface MockObserver extends Observer { + messages: Recorded[]; + } + + interface MockObserverStatic extends ObserverStatic { + new (scheduler: IScheduler): MockObserver; + } + + export var MockObserver: MockObserverStatic; +} + +(function() { + var o : Rx.MockObserver; + var r: Rx.Recorded[] = o.messages; + var oo : Rx.IObserver = o; +}); diff --git a/node_modules/rx/ts/core/testing/reactivetest.ts b/node_modules/rx/ts/core/testing/reactivetest.ts new file mode 100644 index 0000000..6a311d3 --- /dev/null +++ b/node_modules/rx/ts/core/testing/reactivetest.ts @@ -0,0 +1,89 @@ +/// +/// + +module Rx { + export var ReactiveTest: { + /** Default virtual time used for creation of observable sequences in unit tests. */ + created: number; + /** Default virtual time used to subscribe to observable sequences in unit tests. */ + subscribed: number; + /** Default virtual time used to dispose subscriptions in unit tests. */ + disposed: number; + + /** + * Factory method for an OnNext notification record at a given time with a given value or a predicate function. + * + * 1 - ReactiveTest.onNext(200, 42); + * 2 - ReactiveTest.onNext(200, function (x) { return x.length == 2; }); + * + * @param ticks Recorded virtual time the OnNext notification occurs. + * @param value Recorded value stored in the OnNext notification or a predicate. + * @return Recorded OnNext notification. + */ + onNext(ticks: number, value: any): Recorded; + /** + * Factory method for an OnNext notification record at a given time with a given value or a predicate function. + * + * 1 - ReactiveTest.onNext(200, 42); + * 2 - ReactiveTest.onNext(200, function (x) { return x.length == 2; }); + * + * @param ticks Recorded virtual time the OnNext notification occurs. + * @param value Recorded value stored in the OnNext notification or a predicate. + * @return Recorded OnNext notification. + */ + onNext(ticks: number, predicate: (value: any) => boolean): Recorded; + /** + * Factory method for an OnError notification record at a given time with a given error. + * + * 1 - ReactiveTest.onNext(200, new Error('error')); + * 2 - ReactiveTest.onNext(200, function (e) { return e.message === 'error'; }); + * + * @param ticks Recorded virtual time the OnError notification occurs. + * @param exception Recorded exception stored in the OnError notification. + * @return Recorded OnError notification. + */ + onError(ticks: number, exception: any): Recorded; + /** + * Factory method for an OnError notification record at a given time with a given error. + * + * 1 - ReactiveTest.onNext(200, new Error('error')); + * 2 - ReactiveTest.onNext(200, function (e) { return e.message === 'error'; }); + * + * @param ticks Recorded virtual time the OnError notification occurs. + * @param exception Recorded exception stored in the OnError notification. + * @return Recorded OnError notification. + */ + onError(ticks: number, predicate: (exception: any) => boolean): Recorded; + /** + * Factory method for an OnCompleted notification record at a given time. + * + * @param ticks Recorded virtual time the OnCompleted notification occurs. + * @return Recorded OnCompleted notification. + */ + onCompleted(ticks: number): Recorded; + + /** + * Factory method for a subscription record based on a given subscription and disposal time. + * + * @param start Virtual time indicating when the subscription was created. + * @param end Virtual time indicating when the subscription was disposed. + * @return Subscription object. + */ + subscribe(subscribeAt: number, unsubscribeAt?: number): Subscription; + } +} + +(function() { + var n : number = Rx.ReactiveTest.created; + var n : number = Rx.ReactiveTest.subscribed; + var n : number = Rx.ReactiveTest.disposed; + + var r : Rx.Recorded = Rx.ReactiveTest.onNext(100, 'abc'); + var r : Rx.Recorded = Rx.ReactiveTest.onNext(100, (v: any) => false); + var r : Rx.Recorded = Rx.ReactiveTest.onError(100, new Error('abc')); + var r : Rx.Recorded = Rx.ReactiveTest.onError(100, (v: any) => true); + var r : Rx.Recorded = Rx.ReactiveTest.onCompleted(100); + + var s : Rx.Subscription = Rx.ReactiveTest.subscribe(100); + var s : Rx.Subscription = Rx.ReactiveTest.subscribe(100, 200); +}); diff --git a/node_modules/rx/ts/core/testing/recorded.ts b/node_modules/rx/ts/core/testing/recorded.ts new file mode 100644 index 0000000..135d6b7 --- /dev/null +++ b/node_modules/rx/ts/core/testing/recorded.ts @@ -0,0 +1,43 @@ +module Rx { + export interface Recorded { + /** + * Checks whether the given recorded object is equal to the current instance. + * + * @param {Recorded} other Recorded object to check for equality. + * @returns {Boolean} true if both objects are equal; false otherwise. + */ + equals(other: Recorded): boolean; + /** + * Returns a string representation of the current Recorded value. + * + * @returns {String} String representation of the current Recorded value. + */ + toString(): string; + time: number; + value: any; + } + + interface RecordedStatic { + /** + * Creates a new object recording the production of the specified value at the given virtual time. + * + * @constructor + * @param {Number} time Virtual time the value was produced on. + * @param {Mixed} value Value that was produced. + * @param {Function} comparer An optional comparer. + */ + new (time: number, value: any, equalityComparer?: _Comparer): Recorded; + } + + export var Recorded: RecordedStatic; +} + +(function() { + var r: Rx.Recorded = new Rx.Recorded(100, 'abc'); + var r: Rx.Recorded = new Rx.Recorded(100, 'abc', (x, y) => false); + + var b: boolean = r.equals(r); + var s: string = r.toString(); + var t: number = r.time; + var a: any = r.value; +}); diff --git a/node_modules/rx/ts/core/testing/subscription.ts b/node_modules/rx/ts/core/testing/subscription.ts new file mode 100644 index 0000000..fe28da9 --- /dev/null +++ b/node_modules/rx/ts/core/testing/subscription.ts @@ -0,0 +1,36 @@ +module Rx { + export interface Subscription { + /** + * Checks whether the given subscription is equal to the current instance. + * @param other Subscription object to check for equality. + * @returns {Boolean} true if both objects are equal; false otherwise. + */ + equals(other: Subscription): boolean; + /** + * Returns a string representation of the current Subscription value. + * @returns {String} String representation of the current Subscription value. + */ + toString(): string; + } + + interface SubscriptionStatic { + /** + * Creates a new subscription object with the given virtual subscription and unsubscription time. + * + * @constructor + * @param {Number} subscribe Virtual time at which the subscription occurred. + * @param {Number} unsubscribe Virtual time at which the unsubscription occurred. + */ + new (subscribeAt: number, unsubscribeAt?: number): Subscription; + } + + export var Subscription: SubscriptionStatic; +} + +(function() { + var s: Rx.Subscription = new Rx.Subscription(100); + var s: Rx.Subscription = new Rx.Subscription(100, 200); + + var b: boolean = s.equals(s); + var st: string = s.toString(); +}); diff --git a/node_modules/rx/ts/core/testing/testscheduler.ts b/node_modules/rx/ts/core/testing/testscheduler.ts new file mode 100644 index 0000000..3433377 --- /dev/null +++ b/node_modules/rx/ts/core/testing/testscheduler.ts @@ -0,0 +1,87 @@ +/// +/// +/// +/// +module Rx { + + export interface TestScheduler extends VirtualTimeScheduler { + /** + * Creates a cold observable using the specified timestamped notification messages either as an array or arguments. + * @param messages Notifications to surface through the created sequence at their specified virtual time offsets from the sequence subscription time. + * @return Cold observable sequence that can be used to assert the timing of subscriptions and notifications. + */ + createColdObservable(...records: Recorded[]): Observable; + /** + * Creates a hot observable using the specified timestamped notification messages either as an array or arguments. + * @param messages Notifications to surface through the created sequence at their specified absolute virtual times. + * @return Hot observable sequence that can be used to assert the timing of subscriptions and notifications. + */ + createHotObservable(...records: Recorded[]): Observable; + /** + * Creates an observer that records received notification messages and timestamps those. + * @return Observer that can be used to assert the timing of received notifications. + */ + createObserver(): MockObserver; + + /** + * Creates a resolved promise with the given value and ticks + * @param {Number} ticks The absolute time of the resolution. + * @param {Any} value The value to yield at the given tick. + * @returns {MockPromise} A mock Promise which fulfills with the given value. + */ + createResolvedPromise(ticks: number, value: T): IPromise; + /** + * Creates a rejected promise with the given reason and ticks + * @param {Number} ticks The absolute time of the resolution. + * @param {Any} reason The reason for rejection to yield at the given tick. + * @returns {MockPromise} A mock Promise which rejects with the given reason. + */ + createRejectedPromise(ticks: number, value: T): IPromise; + + /** + * Starts the test scheduler and uses the specified virtual times to invoke the factory function, subscribe to the resulting sequence, and dispose the subscription. + * + * @param create Factory method to create an observable sequence. + * @param created Virtual time at which to invoke the factory to create an observable sequence. + * @param subscribed Virtual time at which to subscribe to the created observable sequence. + * @param disposed Virtual time at which to dispose the subscription. + * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. + */ + startWithTiming(create: () => Observable, createdAt: number, subscribedAt: number, disposedAt: number): MockObserver; + /** + * Starts the test scheduler and uses the specified virtual time to dispose the subscription to the sequence obtained through the factory function. + * Default virtual times are used for factory invocation and sequence subscription. + * + * @param create Factory method to create an observable sequence. + * @param disposed Virtual time at which to dispose the subscription. + * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. + */ + startWithDispose(create: () => Observable, disposedAt: number): MockObserver; + /** + * Starts the test scheduler and uses default virtual times to invoke the factory function, to subscribe to the resulting sequence, and to dispose the subscription. + * + * @param create Factory method to create an observable sequence. + * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. + */ + startWithCreate(create: () => Observable): MockObserver; + } + + export var TestScheduler: { + new (): TestScheduler; + } +} + +(function() { + var ts : Rx.TestScheduler = new Rx.TestScheduler(); + + var o : Rx.Observable = ts.createColdObservable(new Rx.Recorded(100, '5')); + var o : Rx.Observable = ts.createHotObservable(new Rx.Recorded(100, '5')); + var ob : Rx.MockObserver = ts.createObserver(); + + var p : Rx.Promise = ts.createResolvedPromise(100, false); + var p : Rx.Promise = ts.createRejectedPromise(100, false); + + var ob = ts.startWithTiming(() => Rx.Observable.create(null), 100, 200, 300); + var ob = ts.startWithDispose(() => Rx.Observable.create(null), 300); + var ob = ts.startWithCreate(() => Rx.Observable.create(null)); +}); diff --git a/node_modules/rx/ts/es6-promise.es6.d.ts b/node_modules/rx/ts/es6-promise.es6.d.ts new file mode 100644 index 0000000..61c0cac --- /dev/null +++ b/node_modules/rx/ts/es6-promise.es6.d.ts @@ -0,0 +1,97 @@ + +interface PromiseLike { + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: (value: T) => TResult | PromiseLike, onrejected?: (reason: any) => TResult | PromiseLike): PromiseLike; + then(onfulfilled?: (value: T) => TResult | PromiseLike, onrejected?: (reason: any) => void): PromiseLike; +} + +/** + * Represents the completion of an asynchronous operation + */ +interface Promise { + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: (value: T) => TResult | PromiseLike, onrejected?: (reason: any) => TResult | PromiseLike): Promise; + then(onfulfilled?: (value: T) => TResult | PromiseLike, onrejected?: (reason: any) => void): Promise; + + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: (reason: any) => T | PromiseLike): Promise; + catch(onrejected?: (reason: any) => void): Promise; + + [Symbol.toStringTag]: string; +} + +interface PromiseConstructor { + /** + * A reference to the prototype. + */ + prototype: Promise; + + /** + * Creates a new Promise. + * @param executor A callback used to initialize the promise. This callback is passed two arguments: + * a resolve callback used resolve the promise with a value or the result of another promise, + * and a reject callback used to reject the promise with a provided reason or error. + */ + new (executor: (resolve: (value?: T | PromiseLike) => void, reject: (reason?: any) => void) => void): Promise; + + /** + * Creates a Promise that is resolved with an array of results when all of the provided Promises + * resolve, or rejected when any Promise is rejected. + * @param values An array of Promises. + * @returns A new Promise. + */ + all(values: Iterable>): Promise; + + /** + * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved + * or rejected. + * @param values An array of Promises. + * @returns A new Promise. + */ + race(values: Iterable>): Promise; + + /** + * Creates a new rejected promise for the provided reason. + * @param reason The reason the promise was rejected. + * @returns A new rejected Promise. + */ + reject(reason: any): Promise; + + /** + * Creates a new rejected promise for the provided reason. + * @param reason The reason the promise was rejected. + * @returns A new rejected Promise. + */ + reject(reason: any): Promise; + + /** + * Creates a new resolved promise for the provided value. + * @param value A promise. + * @returns A promise whose internal state matches the provided promise. + */ + resolve(value: T | PromiseLike): Promise; + + /** + * Creates a new resolved promise . + * @returns A resolved promise. + */ + resolve(): Promise; + + [Symbol.species]: Function; +} + +declare var Promise: PromiseConstructor; diff --git a/node_modules/rx/ts/iterable.es6.d.ts b/node_modules/rx/ts/iterable.es6.d.ts new file mode 100644 index 0000000..6a602a9 --- /dev/null +++ b/node_modules/rx/ts/iterable.es6.d.ts @@ -0,0 +1,197 @@ +interface Symbol { + /** Returns a string representation of an object. */ + toString(): string; + + /** Returns the primitive value of the specified object. */ + valueOf(): Object; + + [Symbol.toStringTag]: string; +} + +interface SymbolConstructor { + /** + * A reference to the prototype. + */ + prototype: Symbol; + + /** + * Returns a new unique Symbol value. + * @param description Description of the new Symbol object. + */ + (description?: string|number): symbol; + + /** + * Returns a Symbol object from the global symbol registry matching the given key if found. + * Otherwise, returns a new symbol with this key. + * @param key key to search for. + */ + for(key: string): symbol; + + /** + * Returns a key from the global symbol registry matching the given Symbol if found. + * Otherwise, returns a undefined. + * @param sym Symbol to find the key for. + */ + keyFor(sym: symbol): string; + + // Well-known Symbols + + /** + * A method that determines if a constructor object recognizes an object as one of the + * constructor’s instances. Called by the semantics of the instanceof operator. + */ + hasInstance: symbol; + + /** + * A Boolean value that if true indicates that an object should flatten to its array elements + * by Array.prototype.concat. + */ + isConcatSpreadable: symbol; + + /** + * A method that returns the default iterator for an object. Called by the semantics of the + * for-of statement. + */ + iterator: symbol; + + /** + * A regular expression method that matches the regular expression against a string. Called + * by the String.prototype.match method. + */ + match: symbol; + + /** + * A regular expression method that replaces matched substrings of a string. Called by the + * String.prototype.replace method. + */ + replace: symbol; + + /** + * A regular expression method that returns the index within a string that matches the + * regular expression. Called by the String.prototype.search method. + */ + search: symbol; + + /** + * A function valued property that is the constructor function that is used to create + * derived objects. + */ + species: symbol; + + /** + * A regular expression method that splits a string at the indices that match the regular + * expression. Called by the String.prototype.split method. + */ + split: symbol; + + /** + * A method that converts an object to a corresponding primitive value.Called by the ToPrimitive + * abstract operation. + */ + toPrimitive: symbol; + + /** + * A String value that is used in the creation of the default string description of an object. + * Called by the built-in method Object.prototype.toString. + */ + toStringTag: symbol; + + /** + * An Object whose own property names are property names that are excluded from the with + * environment bindings of the associated objects. + */ + unscopables: symbol; +} +declare var Symbol: SymbolConstructor; + +interface IteratorResult { + done: boolean; + value?: T; +} + +interface Iterator { + next(value?: any): IteratorResult; + return?(value?: any): IteratorResult; + throw?(e?: any): IteratorResult; +} + +interface Iterable { + [Symbol.iterator](): Iterator; +} + +interface IterableIterator extends Iterator { + [Symbol.iterator](): IterableIterator; +} + +interface WeakMap { + clear(): void; + delete(key: K): boolean; + get(key: K): V; + has(key: K): boolean; + set(key: K, value?: V): WeakMap; +} + +interface WeakMapConstructor { + new (): WeakMap; + prototype: WeakMap; +} + +declare var WeakMap: WeakMapConstructor; + +interface Map { + clear(): void; + delete(key: K): boolean; + entries(): IterableIterator<[K, V]>; + forEach(callbackfn: (value: V, index: K, map: Map) => void, thisArg?: any): void; + get(key: K): V; + has(key: K): boolean; + keys(): IterableIterator; + set(key: K, value?: V): Map; + size: number; + values(): IterableIterator; + [Symbol.iterator]():IterableIterator<[K,V]>; + [Symbol.toStringTag]: string; +} + +interface MapConstructor { + new (): Map; + new (iterable: Iterable<[K, V]>): Map; + prototype: Map; +} +declare var Map: MapConstructor; + +interface Set { + add(value: T): Set; + clear(): void; + delete(value: T): boolean; + entries(): IterableIterator<[T, T]>; + forEach(callbackfn: (value: T, index: T, set: Set) => void, thisArg?: any): void; + has(value: T): boolean; + keys(): IterableIterator; + size: number; + values(): IterableIterator; + [Symbol.iterator]():IterableIterator; + [Symbol.toStringTag]: string; +} + +interface SetConstructor { + new (): Set; + new (iterable: Iterable): Set; + prototype: Set; +} +declare var Set: SetConstructor; + +interface WeakSet { + add(value: T): WeakSet; + clear(): void; + delete(value: T): boolean; + has(value: T): boolean; + [Symbol.toStringTag]: string; +} + +interface WeakSetConstructor { + new (): WeakSet; + new (iterable: Iterable): WeakSet; + prototype: WeakSet; +} +declare var WeakSet: WeakSetConstructor; diff --git a/node_modules/rx/ts/rx.aggregates.d.ts b/node_modules/rx/ts/rx.aggregates.d.ts new file mode 100644 index 0000000..3f46d3e --- /dev/null +++ b/node_modules/rx/ts/rx.aggregates.d.ts @@ -0,0 +1,259 @@ +declare module Rx { + + export interface Observable { + /** + * Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. The specified seed value is used as the initial accumulator value. + * For aggregation behavior with incremental intermediate results, see Observable.scan. + * @param {Function} accumulator An accumulator function to be invoked on each element. + * @param {Any} [seed] The initial accumulator value. + * @returns {Observable} An observable sequence containing a single element with the final accumulator value. + */ + reduce(accumulator: _Accumulator, seed?: TAcc): Observable; + /** + * Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. The specified seed value is used as the initial accumulator value. + * For aggregation behavior with incremental intermediate results, see Observable.scan. + * @param {Function} accumulator An accumulator function to be invoked on each element. + * @param {Any} [seed] The initial accumulator value. + * @returns {Observable} An observable sequence containing a single element with the final accumulator value. + */ + reduce(accumulator: _Accumulator, seed?: T): Observable; + } + + export interface Observable { + /** + * Determines whether any element of an observable sequence satisfies a condition if present, else if any items are in the sequence. + * @param {Function} [predicate] A function to test each element for a condition. + * @returns {Observable} An observable sequence containing a single element determining whether any elements in the source sequence pass the test in the specified predicate if given, else if any items are in the sequence. + */ + some(predicate?: _Predicate, thisArg?: any): Observable; // alias for any + } + + export interface Observable { + /** + * Determines whether an observable sequence is empty. + * @returns {Observable} An observable sequence containing a single element determining whether the source sequence is empty. + */ + isEmpty(): Observable; + } + + export interface Observable { + /** + * Determines whether all elements of an observable sequence satisfy a condition. + * @param {Function} [predicate] A function to test each element for a condition. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence containing a single element determining whether all elements in the source sequence pass the test in the specified predicate. + */ + every(predicate?: _Predicate, thisArg?: any): Observable; // alias for all + } + + export interface Observable { + /** + * Determines whether an observable sequence includes a specified element with an optional equality comparer. + * @param searchElement The value to locate in the source sequence. + * @param {Number} [fromIndex] An equality comparer to compare elements. + * @returns {Observable} An observable sequence containing a single element determining whether the source sequence includes an element that has the specified value from the given index. + */ + includes(value: T, comparer?: _Comparer): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence containing a value that represents how many elements in the specified observable sequence satisfy a condition if provided, else the count of items. + * @example + * res = source.count(); + * res = source.count(function (x) { return x > 3; }); + * @param {Function} [predicate]A function to test each element for a condition. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence containing a single element with a number that represents how many elements in the input sequence satisfy the condition in the predicate function if provided, else the count of items in the sequence. + */ + count(predicate?: _Predicate, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Returns the first index at which a given element can be found in the observable sequence, or -1 if it is not present. + * @param {Any} searchElement Element to locate in the array. + * @param {Number} [fromIndex] The index to start the search. If not specified, defaults to 0. + * @returns {Observable} And observable sequence containing the first index at which a given element can be found in the observable sequence, or -1 if it is not present. + */ + indexOf(element: T, fromIndex?: number): Observable; + } + + export interface Observable { + /** + * Computes the sum of a sequence of values that are obtained by invoking an optional transform function on each element of the input sequence, else if not specified computes the sum on each item in the sequence. + * @param {Function} [selector] A transform function to apply to each element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence containing a single element with the sum of the values in the source sequence. + */ + sum(keySelector?: _Selector, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Returns the elements in an observable sequence with the minimum key value according to the specified comparer. + * @example + * var res = source.minBy(function (x) { return x.value; }); + * var res = source.minBy(function (x) { return x.value; }, function (x, y) { return x - y; }); + * @param {Function} keySelector Key selector function. + * @param {Function} [comparer] Comparer used to compare key values. + * @returns {Observable} An observable sequence containing a list of zero or more elements that have a minimum key value. + */ + minBy(keySelector: (item: T) => TKey, comparer: _Comparer): Observable; + /** + * Returns the elements in an observable sequence with the minimum key value according to the specified comparer. + * @example + * var res = source.minBy(function (x) { return x.value; }); + * var res = source.minBy(function (x) { return x.value; }, function (x, y) { return x - y; }); + * @param {Function} keySelector Key selector function. + * @param {Function} [comparer] Comparer used to compare key values. + * @returns {Observable} An observable sequence containing a list of zero or more elements that have a minimum key value. + */ + minBy(keySelector: (item: T) => number): Observable; + } + + export interface Observable { + /** + * Returns the minimum element in an observable sequence according to the optional comparer else a default greater than less than check. + * @example + * var res = source.min(); + * var res = source.min(function (x, y) { return x.value - y.value; }); + * @param {Function} [comparer] Comparer used to compare elements. + * @returns {Observable} An observable sequence containing a single element with the minimum element in the source sequence. + */ + min(comparer?: _Comparer): Observable; + } + + export interface Observable { + /** + * Returns the elements in an observable sequence with the maximum key value according to the specified comparer. + * @example + * var res = source.maxBy(function (x) { return x.value; }); + * var res = source.maxBy(function (x) { return x.value; }, function (x, y) { return x - y;; }); + * @param {Function} keySelector Key selector function. + * @param {Function} [comparer] Comparer used to compare key values. + * @returns {Observable} An observable sequence containing a list of zero or more elements that have a maximum key value. + */ + maxBy(keySelector: (item: T) => TKey, comparer: _Comparer): Observable; + /** + * Returns the elements in an observable sequence with the maximum key value according to the specified comparer. + * @example + * var res = source.maxBy(function (x) { return x.value; }); + * var res = source.maxBy(function (x) { return x.value; }, function (x, y) { return x - y;; }); + * @param {Function} keySelector Key selector function. + * @param {Function} [comparer] Comparer used to compare key values. + * @returns {Observable} An observable sequence containing a list of zero or more elements that have a maximum key value. + */ + maxBy(keySelector: (item: T) => number): Observable; + } + + export interface Observable { + /** + * Returns the maximum value in an observable sequence according to the specified comparer. + * @example + * var res = source.max(); + * var res = source.max(function (x, y) { return x.value - y.value; }); + * @param {Function} [comparer] Comparer used to compare elements. + * @returns {Observable} An observable sequence containing a single element with the maximum element in the source sequence. + */ + max(comparer?: _Comparer): Observable; + } + + export interface Observable { + /** + * Computes the average of an observable sequence of values that are in the sequence or obtained by invoking a transform function on each element of the input sequence if present. + * @param {Function} [selector] A transform function to apply to each element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence containing a single element with the average of the sequence of values. + */ + average(keySelector?: _Selector, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Determines whether two sequences are equal by comparing the elements pairwise using a specified equality comparer. + * + * @example + * var res = res = source.sequenceEqual([1,2,3]); + * var res = res = source.sequenceEqual([{ value: 42 }], function (x, y) { return x.value === y.value; }); + * 3 - res = source.sequenceEqual(Rx.Observable.returnValue(42)); + * 4 - res = source.sequenceEqual(Rx.Observable.returnValue({ value: 42 }), function (x, y) { return x.value === y.value; }); + * @param {Observable} second Second observable sequence or array to compare. + * @param {Function} [comparer] Comparer used to compare elements of both sequences. + * @returns {Observable} An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the specified equality comparer. + */ + sequenceEqual(second: ObservableOrPromise | ArrayOrIterable, comparer?: _Comparer): Observable; + /** + * Determines whether two sequences are equal by comparing the elements pairwise using a specified equality comparer. + * + * @example + * var res = res = source.sequenceEqual([1,2,3]); + * var res = res = source.sequenceEqual([{ value: 42 }], function (x, y) { return x.value === y.value; }); + * 3 - res = source.sequenceEqual(Rx.Observable.returnValue(42)); + * 4 - res = source.sequenceEqual(Rx.Observable.returnValue({ value: 42 }), function (x, y) { return x.value === y.value; }); + * @param {Observable} second Second observable sequence or array to compare. + * @param {Function} [comparer] Comparer used to compare elements of both sequences. + * @returns {Observable} An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the specified equality comparer. + */ + sequenceEqual(second: ObservableOrPromise | ArrayOrIterable, comparer: _Comparer): Observable; + } + + export interface Observable { + /** + * Returns the element at a specified index in a sequence or default value if not found. + * @param {Number} index The zero-based index of the element to retrieve. + * @param {Any} [defaultValue] The default value to use if elementAt does not find a value. + * @returns {Observable} An observable sequence that produces the element at the specified position in the source sequence. + */ + elementAt(index: number): Observable; + } + + export interface Observable { + /** + * Returns the only element of an observable sequence that satisfies the condition in the optional predicate, and reports an exception if there is not exactly one element in the observable sequence. + * @param {Function} [predicate] A predicate function to evaluate for elements in the source sequence. + * @param {Any} [thisArg] Object to use as `this` when executing the predicate. + * @returns {Observable} Sequence containing the single element in the observable sequence that satisfies the condition in the predicate. + */ + single(predicate?: _Predicate, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Returns the first element of an observable sequence that satisfies the condition in the predicate if present else the first item in the sequence. + * @returns {Observable} Sequence containing the first element in the observable sequence that satisfies the condition in the predicate if provided, else the first item in the sequence. + */ + first(predicate?: _Predicate, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Returns the last element of an observable sequence that satisfies the condition in the predicate if specified, else the last element. + * @returns {Observable} Sequence containing the last element in the observable sequence that satisfies the condition in the predicate. + */ + last(predicate?: _Predicate, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Searches for an element that matches the conditions defined by the specified predicate, and returns the first occurrence within the entire Observable sequence. + * @param {Function} predicate The predicate that defines the conditions of the element to search for. + * @param {Any} [thisArg] Object to use as `this` when executing the predicate. + * @returns {Observable} An Observable sequence with the first element that matches the conditions defined by the specified predicate, if found; otherwise, undefined. + */ + find(predicate: _Predicate, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Searches for an element that matches the conditions defined by the specified predicate, and returns + * an Observable sequence with the zero-based index of the first occurrence within the entire Observable sequence. + * @param {Function} predicate The predicate that defines the conditions of the element to search for. + * @param {Any} [thisArg] Object to use as `this` when executing the predicate. + * @returns {Observable} An Observable sequence with the zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + */ + findIndex(predicate: _Predicate, thisArg?: any): Observable; + } + +} +declare module "rx.aggregates" { export = Rx; } diff --git a/node_modules/rx/ts/rx.aggregates.es6.d.ts b/node_modules/rx/ts/rx.aggregates.es6.d.ts new file mode 100644 index 0000000..041aa86 --- /dev/null +++ b/node_modules/rx/ts/rx.aggregates.es6.d.ts @@ -0,0 +1,284 @@ +declare module Rx { + + export interface Observable { + /** + * Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. The specified seed value is used as the initial accumulator value. + * For aggregation behavior with incremental intermediate results, see Observable.scan. + * @param {Function} accumulator An accumulator function to be invoked on each element. + * @param {Any} [seed] The initial accumulator value. + * @returns {Observable} An observable sequence containing a single element with the final accumulator value. + */ + reduce(accumulator: _Accumulator, seed?: TAcc): Observable; + /** + * Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. The specified seed value is used as the initial accumulator value. + * For aggregation behavior with incremental intermediate results, see Observable.scan. + * @param {Function} accumulator An accumulator function to be invoked on each element. + * @param {Any} [seed] The initial accumulator value. + * @returns {Observable} An observable sequence containing a single element with the final accumulator value. + */ + reduce(accumulator: _Accumulator, seed?: T): Observable; + } + + export interface Observable { + /** + * Determines whether any element of an observable sequence satisfies a condition if present, else if any items are in the sequence. + * @param {Function} [predicate] A function to test each element for a condition. + * @returns {Observable} An observable sequence containing a single element determining whether any elements in the source sequence pass the test in the specified predicate if given, else if any items are in the sequence. + */ + some(predicate?: _Predicate, thisArg?: any): Observable; // alias for any + } + + export interface Observable { + /** + * Determines whether an observable sequence is empty. + * @returns {Observable} An observable sequence containing a single element determining whether the source sequence is empty. + */ + isEmpty(): Observable; + } + + export interface Observable { + /** + * Determines whether all elements of an observable sequence satisfy a condition. + * @param {Function} [predicate] A function to test each element for a condition. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence containing a single element determining whether all elements in the source sequence pass the test in the specified predicate. + */ + every(predicate?: _Predicate, thisArg?: any): Observable; // alias for all + } + + export interface Observable { + /** + * Determines whether an observable sequence includes a specified element with an optional equality comparer. + * @param searchElement The value to locate in the source sequence. + * @param {Number} [fromIndex] An equality comparer to compare elements. + * @returns {Observable} An observable sequence containing a single element determining whether the source sequence includes an element that has the specified value from the given index. + */ + includes(value: T, comparer?: _Comparer): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence containing a value that represents how many elements in the specified observable sequence satisfy a condition if provided, else the count of items. + * @example + * res = source.count(); + * res = source.count(function (x) { return x > 3; }); + * @param {Function} [predicate]A function to test each element for a condition. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence containing a single element with a number that represents how many elements in the input sequence satisfy the condition in the predicate function if provided, else the count of items in the sequence. + */ + count(predicate?: _Predicate, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Returns the first index at which a given element can be found in the observable sequence, or -1 if it is not present. + * @param {Any} searchElement Element to locate in the array. + * @param {Number} [fromIndex] The index to start the search. If not specified, defaults to 0. + * @returns {Observable} And observable sequence containing the first index at which a given element can be found in the observable sequence, or -1 if it is not present. + */ + indexOf(element: T, fromIndex?: number): Observable; + } + + export interface Observable { + /** + * Computes the sum of a sequence of values that are obtained by invoking an optional transform function on each element of the input sequence, else if not specified computes the sum on each item in the sequence. + * @param {Function} [selector] A transform function to apply to each element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence containing a single element with the sum of the values in the source sequence. + */ + sum(keySelector?: _Selector, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Returns the elements in an observable sequence with the minimum key value according to the specified comparer. + * @example + * var res = source.minBy(function (x) { return x.value; }); + * var res = source.minBy(function (x) { return x.value; }, function (x, y) { return x - y; }); + * @param {Function} keySelector Key selector function. + * @param {Function} [comparer] Comparer used to compare key values. + * @returns {Observable} An observable sequence containing a list of zero or more elements that have a minimum key value. + */ + minBy(keySelector: (item: T) => TKey, comparer: _Comparer): Observable; + /** + * Returns the elements in an observable sequence with the minimum key value according to the specified comparer. + * @example + * var res = source.minBy(function (x) { return x.value; }); + * var res = source.minBy(function (x) { return x.value; }, function (x, y) { return x - y; }); + * @param {Function} keySelector Key selector function. + * @param {Function} [comparer] Comparer used to compare key values. + * @returns {Observable} An observable sequence containing a list of zero or more elements that have a minimum key value. + */ + minBy(keySelector: (item: T) => number): Observable; + } + + export interface Observable { + /** + * Returns the minimum element in an observable sequence according to the optional comparer else a default greater than less than check. + * @example + * var res = source.min(); + * var res = source.min(function (x, y) { return x.value - y.value; }); + * @param {Function} [comparer] Comparer used to compare elements. + * @returns {Observable} An observable sequence containing a single element with the minimum element in the source sequence. + */ + min(comparer?: _Comparer): Observable; + } + + export interface Observable { + /** + * Returns the elements in an observable sequence with the maximum key value according to the specified comparer. + * @example + * var res = source.maxBy(function (x) { return x.value; }); + * var res = source.maxBy(function (x) { return x.value; }, function (x, y) { return x - y;; }); + * @param {Function} keySelector Key selector function. + * @param {Function} [comparer] Comparer used to compare key values. + * @returns {Observable} An observable sequence containing a list of zero or more elements that have a maximum key value. + */ + maxBy(keySelector: (item: T) => TKey, comparer: _Comparer): Observable; + /** + * Returns the elements in an observable sequence with the maximum key value according to the specified comparer. + * @example + * var res = source.maxBy(function (x) { return x.value; }); + * var res = source.maxBy(function (x) { return x.value; }, function (x, y) { return x - y;; }); + * @param {Function} keySelector Key selector function. + * @param {Function} [comparer] Comparer used to compare key values. + * @returns {Observable} An observable sequence containing a list of zero or more elements that have a maximum key value. + */ + maxBy(keySelector: (item: T) => number): Observable; + } + + export interface Observable { + /** + * Returns the maximum value in an observable sequence according to the specified comparer. + * @example + * var res = source.max(); + * var res = source.max(function (x, y) { return x.value - y.value; }); + * @param {Function} [comparer] Comparer used to compare elements. + * @returns {Observable} An observable sequence containing a single element with the maximum element in the source sequence. + */ + max(comparer?: _Comparer): Observable; + } + + export interface Observable { + /** + * Computes the average of an observable sequence of values that are in the sequence or obtained by invoking a transform function on each element of the input sequence if present. + * @param {Function} [selector] A transform function to apply to each element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence containing a single element with the average of the sequence of values. + */ + average(keySelector?: _Selector, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Determines whether two sequences are equal by comparing the elements pairwise using a specified equality comparer. + * + * @example + * var res = res = source.sequenceEqual([1,2,3]); + * var res = res = source.sequenceEqual([{ value: 42 }], function (x, y) { return x.value === y.value; }); + * 3 - res = source.sequenceEqual(Rx.Observable.returnValue(42)); + * 4 - res = source.sequenceEqual(Rx.Observable.returnValue({ value: 42 }), function (x, y) { return x.value === y.value; }); + * @param {Observable} second Second observable sequence or array to compare. + * @param {Function} [comparer] Comparer used to compare elements of both sequences. + * @returns {Observable} An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the specified equality comparer. + */ + sequenceEqual(second: ObservableOrPromise | ArrayOrIterable, comparer?: _Comparer): Observable; + /** + * Determines whether two sequences are equal by comparing the elements pairwise using a specified equality comparer. + * + * @example + * var res = res = source.sequenceEqual([1,2,3]); + * var res = res = source.sequenceEqual([{ value: 42 }], function (x, y) { return x.value === y.value; }); + * 3 - res = source.sequenceEqual(Rx.Observable.returnValue(42)); + * 4 - res = source.sequenceEqual(Rx.Observable.returnValue({ value: 42 }), function (x, y) { return x.value === y.value; }); + * @param {Observable} second Second observable sequence or array to compare. + * @param {Function} [comparer] Comparer used to compare elements of both sequences. + * @returns {Observable} An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the specified equality comparer. + */ + sequenceEqual(second: ObservableOrPromise | ArrayOrIterable, comparer: _Comparer): Observable; + } + + export interface Observable { + /** + * Returns the element at a specified index in a sequence or default value if not found. + * @param {Number} index The zero-based index of the element to retrieve. + * @param {Any} [defaultValue] The default value to use if elementAt does not find a value. + * @returns {Observable} An observable sequence that produces the element at the specified position in the source sequence. + */ + elementAt(index: number): Observable; + } + + export interface Observable { + /** + * Returns the only element of an observable sequence that satisfies the condition in the optional predicate, and reports an exception if there is not exactly one element in the observable sequence. + * @param {Function} [predicate] A predicate function to evaluate for elements in the source sequence. + * @param {Any} [thisArg] Object to use as `this` when executing the predicate. + * @returns {Observable} Sequence containing the single element in the observable sequence that satisfies the condition in the predicate. + */ + single(predicate?: _Predicate, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Returns the first element of an observable sequence that satisfies the condition in the predicate if present else the first item in the sequence. + * @returns {Observable} Sequence containing the first element in the observable sequence that satisfies the condition in the predicate if provided, else the first item in the sequence. + */ + first(predicate?: _Predicate, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Returns the last element of an observable sequence that satisfies the condition in the predicate if specified, else the last element. + * @returns {Observable} Sequence containing the last element in the observable sequence that satisfies the condition in the predicate. + */ + last(predicate?: _Predicate, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Searches for an element that matches the conditions defined by the specified predicate, and returns the first occurrence within the entire Observable sequence. + * @param {Function} predicate The predicate that defines the conditions of the element to search for. + * @param {Any} [thisArg] Object to use as `this` when executing the predicate. + * @returns {Observable} An Observable sequence with the first element that matches the conditions defined by the specified predicate, if found; otherwise, undefined. + */ + find(predicate: _Predicate, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Searches for an element that matches the conditions defined by the specified predicate, and returns + * an Observable sequence with the zero-based index of the first occurrence within the entire Observable sequence. + * @param {Function} predicate The predicate that defines the conditions of the element to search for. + * @param {Any} [thisArg] Object to use as `this` when executing the predicate. + * @returns {Observable} An Observable sequence with the zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + */ + findIndex(predicate: _Predicate, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Converts the observable sequence to a Set if it exists. + * @returns {Observable} An observable sequence with a single value of a Set containing the values from the observable sequence. + */ + toSet() : Observable< Set>; + } + + export interface Observable { + /** + * Converts the observable sequence to a Map if it exists. + * @param {Function} keySelector A function which produces the key for the Map. + * @param {Function} [elementSelector] An optional function which produces the element for the Map. If not present, defaults to the value from the observable sequence. + * @returns {Observable} An observable sequence with a single value of a Map containing the values from the observable sequence. + */ + toMap(keySelector: (value: T) => TKey): Observable>; + /** + * Converts the observable sequence to a Map if it exists. + * @param {Function} keySelector A function which produces the key for the Map. + * @param {Function} [elementSelector] An optional function which produces the element for the Map. If not present, defaults to the value from the observable sequence. + * @returns {Observable} An observable sequence with a single value of a Map containing the values from the observable sequence. + */ + toMap(keySelector: (value: T) => TKey, elementSelector: (value: T) => TElement): Observable>; + } + +} +declare module "rx.aggregates" { export = Rx; } diff --git a/node_modules/rx/ts/rx.all.d.ts b/node_modules/rx/ts/rx.all.d.ts new file mode 100644 index 0000000..5368748 --- /dev/null +++ b/node_modules/rx/ts/rx.all.d.ts @@ -0,0 +1,4975 @@ +declare module Rx { + + // Type alias for observables and promises + export type ObservableOrPromise = IObservable | Observable | Promise; + + export type ArrayLike = Array | { length: number;[index: number]: T; }; + + // Type alias for arrays and array like objects + export type ArrayOrIterable = ArrayLike; + + /** + * Promise A+ + */ + export interface Promise { + then(onFulfilled: (value: T) => R|Promise, onRejected: (error: any) => Promise): Promise; + then(onFulfilled: (value: T) => R|Promise, onRejected?: (error: any) => R): Promise; + } + + /** + * Promise A+ + */ + export interface IPromise extends Promise { } + + /** + * Represents a push-style collection. + */ + export interface IObservable { } + + /** + * Represents a push-style collection. + */ + export interface Observable extends IObservable { } + + export module internals { + export interface EmptyError extends Error { message: string; } + export interface EmptyErrorStatic { new (): EmptyError; } + + export interface ObjectDisposedError extends Error { message: string; } + export interface ObjectDisposedErrorStatic { new (): ObjectDisposedError; } + + export interface ArgumentOutOfRangeError extends Error { message: string; } + export interface ArgumentOutOfRangeErrorStatic { new (): ArgumentOutOfRangeError; } + + export interface NotSupportedError extends Error { message: string; } + export interface NotSupportedErrorStatic { new (): NotSupportedError; } + + export interface NotImplementedError extends Error { message: string; } + export interface NotImplementedErrorStatic { new (): NotImplementedError; } + } + + export module helpers { + export var notImplemented: () => internals.NotImplementedError; + export var notSupported: () => internals.NotSupportedError; + } + + export module internals { + export var bindCallback: (func: Function, thisArg: any, argCount: number) => Function; + } + + export module internals { + export var isEqual : (left: any, right: any) => boolean; + } + + export interface IDisposable { + dispose(): void; + } + + export interface Disposable extends IDisposable { + /** Is this value disposed. */ + isDisposed?: boolean; + } + + interface DisposableStatic { + /** + * Provides a set of static methods for creating Disposables. + * @param {Function} dispose Action to run during the first call to dispose. The action is guaranteed to be run at most once. + */ + new (action: () => void): Disposable; + + /** + * Creates a disposable object that invokes the specified action when disposed. + * @param {Function} dispose Action to run during the first call to dispose. The action is guaranteed to be run at most once. + * @return {Disposable} The disposable object that runs the given action upon disposal. + */ + create(action: () => void): Disposable; + + /** + * Gets the disposable that does nothing when disposed. + */ + empty: IDisposable; + + /** + * Validates whether the given object is a disposable + * @param {Object} Object to test whether it has a dispose method + * @returns {Boolean} true if a disposable object, else false. + */ + isDisposable(d: any): boolean; + } + + /** + * Provides a set of static methods for creating Disposables. + * @param {Function} dispose Action to run during the first call to dispose. The action is guaranteed to be run at most once. + */ + export var Disposable: DisposableStatic; + + export module config { + export var Promise: { new (resolver: (resolvePromise: (value: T) => void, rejectPromise: (reason: any) => void) => void): IPromise; }; + } + + export module helpers { + export var noop: () => void; + export var notDefined: (value: any) => boolean; + export var identity: (value: T) => T; + export var defaultNow: () => number; + export var defaultComparer: (left: any, right: any) => boolean; + export var defaultSubComparer: (left: any, right: any) => number; + export var defaultKeySerializer: (key: any) => string; + export var defaultError: (err: any) => void; + export var isPromise: (p: any) => boolean; + export var asArray: (...args: T[]) => T[]; + export var not: (value: any) => boolean; + export var isFunction: (value: any) => boolean; + } + + export type _Selector = (value: T, index: number, observable: Observable) => TResult; + export type _ValueOrSelector = TResult | _Selector; + export type _Predicate = _Selector; + export type _Comparer = (value1: T, value2: T) => TResult; + export type _Accumulator = (acc: TAcc, value: T) => TAcc; + + export module special { + export type _FlatMapResultSelector = (value: T1, selectorValue: T2, index: number, selectorOther: number) => TResult; + } + + export interface IObservable { + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(observer: IObserver): IDisposable; + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): IDisposable; + } + + export interface Observable { + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(observer: IObserver): IDisposable; + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): IDisposable; + + /** + * Subscribes to the next value in the sequence with an optional "this" argument. + * @param {Function} onNext The function to invoke on each element in the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Disposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribeOnNext(onNext: (value: T) => void, thisArg?: any): IDisposable; + /** + * Subscribes to an exceptional condition in the sequence with an optional "this" argument. + * @param {Function} onError The function to invoke upon exceptional termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Disposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribeOnError(onError: (exception: any) => void, thisArg?: any): IDisposable; + /** + * Subscribes to the next value in the sequence with an optional "this" argument. + * @param {Function} onCompleted The function to invoke upon graceful termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Disposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribeOnCompleted(onCompleted: () => void, thisArg?: any): IDisposable; + + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + forEach(observer: IObserver): IDisposable; + + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + forEach(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): IDisposable; + } + + export interface ObservableStatic { + /** + * Determines whether the given object is an Observable + * @param {Any} An object to determine whether it is an Observable + * @returns {Boolean} true if an Observable, else false. + */ + isObservable(o: any): boolean; + } + + export var Observable: ObservableStatic; + + export module internals { + export var inherits: (child: any, parent: any) => void; + export var addProperties: (obj: any, ...sources: any[]) => void; + export var addRef: (xs: Observable, r: { getDisposable(): IDisposable; }) => Observable; + } + + export module internals { + export interface ScheduledItem { + scheduler: IScheduler; + state: TTime; + action: (scheduler: IScheduler, state: any) => IDisposable; + dueTime: TTime; + comparer: (x: TTime, y: TTime) => number; + disposable: SingleAssignmentDisposable; + + invoke(): void; + compareTo(other: ScheduledItem): number; + isCancelled(): boolean; + invokeCore(): IDisposable; + } + + interface ScheduledItemStatic { + new (scheduler: IScheduler, state: any, action: (scheduler: IScheduler, state: any) => IDisposable, dueTime: TTime, comparer?: _Comparer):ScheduledItem; + } + + export var ScheduledItem: ScheduledItemStatic + } + + export module internals { + // Priority Queue for Scheduling + export interface PriorityQueue { + length: number; + + isHigherPriority(left: number, right: number): boolean; + percolate(index: number): void; + heapify(index: number): void; + peek(): ScheduledItem; + removeAt(index: number): void; + dequeue(): ScheduledItem; + enqueue(item: ScheduledItem): void; + remove(item: ScheduledItem): boolean; + } + + interface PriorityQueueStatic { + new (capacity: number) : PriorityQueue; + count: number; + } + + export var PriorityQueue : PriorityQueueStatic; + } + + /** + * Represents a group of disposable resources that are disposed together. + * @constructor + */ + export interface CompositeDisposable extends Disposable { + /** + * Adds a disposable to the CompositeDisposable or disposes the disposable if the CompositeDisposable is disposed. + * @param {Mixed} item Disposable to add. + */ + add(item: IDisposable): void; + + /** + * Removes and disposes the first occurrence of a disposable from the CompositeDisposable. + * @param {Mixed} item Disposable to remove. + * @returns {Boolean} true if found; false otherwise. + */ + remove(item: IDisposable): void; + } + + interface CompositeDisposableStatic { + /** + * Represents a group of disposable resources that are disposed together. + * @constructor + */ + new (...disposables: Rx.IDisposable[]): CompositeDisposable; + /** + * Represents a group of disposable resources that are disposed together. + * @constructor + */ + new(disposables: Rx.IDisposable[]): CompositeDisposable; + } + + export var CompositeDisposable: CompositeDisposableStatic; + + export interface SingleAssignmentDisposable { + /** Performs the task of cleaning up resources. */ + dispose(): void; + + /** Is this value disposed. */ + isDisposed: boolean; + + getDisposable(): IDisposable; + + setDisposable(value: IDisposable): void; + } + + interface SingleAssignmentDisposableStatic { + new() : SingleAssignmentDisposable; + } + + export var SingleAssignmentDisposable : SingleAssignmentDisposableStatic; + + export interface SerialDisposable { + /** Performs the task of cleaning up resources. */ + dispose(): void; + + /** Is this value disposed. */ + isDisposed: boolean; + + getDisposable(): IDisposable; + + setDisposable(value: IDisposable): void; + } + + interface SerialDisposableStatic { + new() : SerialDisposable; + } + + export var SerialDisposable : SerialDisposableStatic; + + /** + * Represents a disposable resource that only disposes its underlying disposable resource when all dependent disposable objects have been disposed. + */ + export interface RefCountDisposable extends Disposable { + + /** Performs the task of cleaning up resources. */ + dispose(): void; + + /** Is this value disposed. */ + isDisposed: boolean; + + /** + * Returns a dependent disposable that when disposed decreases the refcount on the underlying disposable. + * @returns {Disposable} A dependent disposable contributing to the reference count that manages the underlying disposable's lifetime. + */ + getDisposable(): IDisposable; + } + + interface RefCountDisposableStatic { + /** + * Initializes a new instance of the RefCountDisposable with the specified disposable. + * @constructor + * @param {Disposable} disposable Underlying disposable. + */ + new(disposable: IDisposable): RefCountDisposable; + } + + export var RefCountDisposable : RefCountDisposableStatic; + + export interface IScheduler { + /** Gets the current time according to the local machine's system clock. */ + now(): number; + + /** + * Schedules an action to be executed. + * @param state State passed to the action to be executed. + * @param {Function} action Action to be executed. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + schedule(state: TState, action: (scheduler: IScheduler, state: TState) => IDisposable): IDisposable; + + /** + * Schedules an action to be executed after dueTime. + * @param state State passed to the action to be executed. + * @param {Function} action Action to be executed. + * @param {Number} dueTime Relative time after which to execute the action. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + scheduleFuture(state: TState, dueTime: number | Date, action: (scheduler: IScheduler, state: TState) => IDisposable): IDisposable; + } + + export interface SchedulerStatic { + /** Gets the current time according to the local machine's system clock. */ + now(): number; + + /** + * Normalizes the specified TimeSpan value to a positive value. + * @param {Number} timeSpan The time span value to normalize. + * @returns {Number} The specified TimeSpan value if it is zero or positive; otherwise, 0 + */ + normalize(timeSpan: number): number; + + /** Determines whether the given object is a scheduler */ + isScheduler(s: any): boolean; + } + + /** Provides a set of static properties to access commonly used schedulers. */ + export var Scheduler: SchedulerStatic; + + export interface IScheduler { + /** + * Schedules an action to be executed recursively. + * @param {Mixed} state State passed to the action to be executed. + * @param {Function} action Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in recursive invocation state. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + scheduleRecursive(state: TState, action: (state: TState, action: (state: TState) => void) => void): IDisposable; + + /** + * Schedules an action to be executed recursively after a specified relative due time. + * @param {Mixed} state State passed to the action to be executed. + * @param {Function} action Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in the recursive due time and invocation state. + * @param {Number}dueTime Relative time after which to execute the action for the first time. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + scheduleRecursiveFuture(state: TState, dueTime: TTime, action: (state: TState, action: (state: TState, dueTime: TTime) => void) => void): IDisposable; + } + + export interface IScheduler { + /** + * Schedules a periodic piece of work by dynamically discovering the scheduler's capabilities. The periodic task will be scheduled using window.setInterval for the base implementation. + * @param {Mixed} state Initial state passed to the action upon the first iteration. + * @param {Number} period Period for running the work periodically. + * @param {Function} action Action to be executed, potentially updating the state. + * @returns {Disposable} The disposable object used to cancel the scheduled recurring action (best effort). + */ + schedulePeriodic(state: TState, period: number, action: (state: TState) => TState): IDisposable; + } + + export interface IScheduler { + /** + * Returns a scheduler that wraps the original scheduler, adding exception handling for scheduled actions. + * @param {Function} handler Handler that's run if an exception is caught. The exception will be rethrown if the handler returns false. + * @returns {Scheduler} Wrapper around the original scheduler, enforcing exception handling. + */ + catch(handler: Function): IScheduler; + } + + export module internals { + export interface SchedulePeriodicRecursive { + start(): IDisposable; + } + + interface SchedulePeriodicRecursiveStatic { + new (scheduler: any, state: any, period: any, action: any) : SchedulePeriodicRecursive; + } + + export var SchedulePeriodicRecursive: SchedulePeriodicRecursiveStatic; + } + + export interface SchedulerStatic { + immediate: IScheduler; + } + + export interface ICurrentThreadScheduler extends IScheduler { + scheduleRequired(): boolean; + } + + export interface SchedulerStatic { + currentThread: ICurrentThreadScheduler; + } + + export interface SchedulerStatic { + default: IScheduler; + async: IScheduler; + } + + /** + * Supports push-style iteration over an observable sequence. + */ + export interface IObserver { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + } + + export interface Observer { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + } + + export interface ObserverStatic { + /** + * Creates an observer from the specified OnNext, along with optional OnError, and OnCompleted actions. + * @param {Function} [onNext] Observer's OnNext action implementation. + * @param {Function} [onError] Observer's OnError action implementation. + * @param {Function} [onCompleted] Observer's OnCompleted action implementation. + * @returns {Observer} The observer object implemented using the given actions. + */ + create(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): Observer; + } + + /** + * Supports push-style iteration over an observable sequence. + */ + export var Observer: ObserverStatic; + + /** + * Represents a notification to an observer. + */ + export interface Notification { + /** + * Invokes the delegate corresponding to the notification or the observer's method corresponding to the notification and returns the produced result. + * + * @memberOf Notification + * @param {Any} observerOrOnNext Delegate to invoke for an OnNext notification or Observer to invoke the notification on.. + * @param {Function} onError Delegate to invoke for an OnError notification. + * @param {Function} onCompleted Delegate to invoke for an OnCompleted notification. + * @returns {Any} Result produced by the observation. + */ + accept(observer: IObserver): void; + /** + * Invokes the delegate corresponding to the notification or the observer's method corresponding to the notification and returns the produced result. + * + * @memberOf Notification + * @param {Any} observerOrOnNext Delegate to invoke for an OnNext notification or Observer to invoke the notification on.. + * @param {Function} onError Delegate to invoke for an OnError notification. + * @param {Function} onCompleted Delegate to invoke for an OnCompleted notification. + * @returns {Any} Result produced by the observation. + */ + accept(onNext: (value: T) => TResult, onError: (exception: any) => TResult, onCompleted: () => TResult): TResult; + + /** + * Returns an observable sequence with a single notification. + * + * @memberOf Notifications + * @param {Scheduler} [scheduler] Scheduler to send out the notification calls on. + * @returns {Observable} The observable sequence that surfaces the behavior of the notification upon subscription. + */ + toObservable(scheduler?: IScheduler): Observable; + + hasValue: boolean; + equals(other: Notification): boolean; + kind: string; + value: T; + error: any; + } + + interface NotificationStatic { + new (kind: any, value: any, exception: any, accept: any, acceptObservable: any, toString: any) : Notification; + + /** + * Creates an object that represents an OnNext notification to an observer. + * @param {Any} value The value contained in the notification. + * @returns {Notification} The OnNext notification containing the value. + */ + createOnNext(value: T): Notification; + /** + * Creates an object that represents an OnError notification to an observer. + * @param {Any} error The exception contained in the notification. + * @returns {Notification} The OnError notification containing the exception. + */ + createOnError(exception: any): Notification; + /** + * Creates an object that represents an OnCompleted notification to an observer. + * @returns {Notification} The OnCompleted notification. + */ + createOnCompleted(): Notification; + } + + export var Notification : NotificationStatic; + + export interface Observer { + makeSafe(disposable: IDisposable): Observer; + } + + export module internals { + /** + * Abstract base class for implementations of the Observer class. + * This base class enforces the grammar of observers where OnError and OnCompleted are terminal messages. + */ + export interface AbstractObserver extends Rx.IObserver, Rx.IDisposable { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + + isStopped: boolean; + + /** + * Disposes the observer, causing it to transition to the stopped state. + */ + dispose(): void; + + fail(e: any): boolean; + + // Must be implemented by other observers + next(value: T): void; + error(error: any): void; + completed(): void; + } + + interface AbstractObserverStatic { + new (): AbstractObserver; + } + + export var AbstractObserver: AbstractObserverStatic + } + + /** + * Class to create an Observer instance from delegate-based implementations of the on* methods. + */ + export interface AnonymousObserver extends Observer { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + } + + interface AnonymousObserverStatic { + /** + * Creates an observer from the specified OnNext, OnError, and OnCompleted actions. + * @param {Any} onNext Observer's OnNext action implementation. + * @param {Any} onError Observer's OnError action implementation. + * @param {Any} onCompleted Observer's OnCompleted action implementation. + */ + new (onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): AnonymousObserver; + } + + export var AnonymousObserver : AnonymousObserverStatic; + + export interface CheckedObserver extends Observer { + checkAccess(): void; + } + + export module internals { + export interface ScheduledObserver extends Observer { + ensureActive(): void; + } + } + + export interface Observable { + /** + * Wraps the source sequence in order to run its observer callbacks on the specified scheduler. + * + * This only invokes observer callbacks on a scheduler. In case the subscription and/or unsubscription actions have side-effects + * that require to be run on a scheduler, use subscribeOn. + * + * @param {Scheduler} scheduler Scheduler to notify observers on. + * @returns {Observable} The source sequence whose observations happen on the specified scheduler. + */ + observeOn(scheduler: IScheduler): Observable; + } + + export interface Observable { + /** + * Wraps the source sequence in order to run its subscription and unsubscription logic on the specified scheduler. This operation is not commonly used; + * see the remarks section for more information on the distinction between subscribeOn and observeOn. + + * This only performs the side-effects of subscription and unsubscription on the specified scheduler. In order to invoke observer + * callbacks on a scheduler, use observeOn. + + * @param {Scheduler} scheduler Scheduler to perform subscription and unsubscription actions on. + * @returns {Observable} The source sequence whose subscriptions and unsubscriptions happen on the specified scheduler. + */ + subscribeOn(scheduler: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Converts a Promise to an Observable sequence + * @param {Promise} An ES6 Compliant promise. + * @returns {Observable} An Observable sequence which wraps the existing promise success and failure. + */ + fromPromise(promise: Promise): Observable; + } + + export interface Observable { + /* + * Converts an existing observable sequence to an ES6 Compatible Promise + * @example + * var promise = Rx.Observable.return(42).toPromise(RSVP.Promise); + * + * // With config + * Rx.config.Promise = RSVP.Promise; + * var promise = Rx.Observable.return(42).toPromise(); + * @param {Function} [promiseCtor] The constructor of the promise. If not provided, it looks for it in Rx.config.Promise. + * @returns {Promise} An ES6 compatible promise with the last value from the observable sequence. + */ + toPromise(promiseCtor?: { new (resolver: (resolvePromise: (value: T) => void, rejectPromise: (reason: any) => void) => void): IPromise; }): IPromise; + /* + * Converts an existing observable sequence to an ES6 Compatible Promise + * @example + * var promise = Rx.Observable.return(42).toPromise(RSVP.Promise); + * + * // With config + * Rx.config.Promise = RSVP.Promise; + * var promise = Rx.Observable.return(42).toPromise(); + * @param {Function} [promiseCtor] The constructor of the promise. If not provided, it looks for it in Rx.config.Promise. + * @returns {Promise} An ES6 compatible promise with the last value from the observable sequence. + */ + toPromise>(promiseCtor: { new (resolver: (resolvePromise: (value: T) => void, rejectPromise: (reason: any) => void) => void): TPromise; }): TPromise; + } + + export interface Observable { + /** + * Creates an array from an observable sequence. + * @returns {Observable} An observable sequence containing a single element with a list containing all the elements of the source sequence. + */ + toArray(): Observable; + } + + export interface ObservableStatic { + /** + * Creates an observable sequence from a specified subscribe method implementation. + * @example + * var res = Rx.Observable.create(function (observer) { return function () { } ); + * var res = Rx.Observable.create(function (observer) { return Rx.Disposable.empty; } ); + * var res = Rx.Observable.create(function (observer) { } ); + * @param {Function} subscribe Implementation of the resulting observable sequence's subscribe method, returning a function that will be wrapped in a Disposable. + * @returns {Observable} The observable sequence with the specified implementation for the Subscribe method. + */ + create(subscribe: (observer: Observer) => IDisposable | Function | void): Observable; + } + + export interface ObservableStatic { + /** + * Returns an observable sequence that invokes the specified factory function whenever a new observer subscribes. + * + * @example + * var res = Rx.Observable.defer(function () { return Rx.Observable.fromArray([1,2,3]); }); + * @param {Function} observableFactory Observable factory function to invoke for each observer that subscribes to the resulting sequence or Promise. + * @returns {Observable} An observable sequence whose observers trigger an invocation of the given observable factory function. + */ + defer(observableFactory: () => ObservableOrPromise): Observable; + } + + export interface ObservableStatic { + /** + * Returns an empty observable sequence, using the specified scheduler to send out the single OnCompleted message. + * + * @example + * var res = Rx.Observable.empty(); + * var res = Rx.Observable.empty(Rx.Scheduler.timeout); + * @param {Scheduler} [scheduler] Scheduler to send the termination call on. + * @returns {Observable} An observable sequence with no elements. + */ + empty(scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * This method creates a new Observable sequence from an array-like or iterable object. + * @param {Any} arrayLike An array-like or iterable object to convert to an Observable sequence. + * @param {Function} [mapFn] Map function to call on every element of the array. + * @param {Any} [thisArg] The context to use calling the mapFn if provided. + * @param {Scheduler} [scheduler] Optional scheduler to use for scheduling. If not provided, defaults to Scheduler.currentThread. + */ + from(array: ArrayOrIterable): Observable; + /** + * This method creates a new Observable sequence from an array-like or iterable object. + * @param {Any} arrayLike An array-like or iterable object to convert to an Observable sequence. + * @param {Function} [mapFn] Map function to call on every element of the array. + * @param {Any} [thisArg] The context to use calling the mapFn if provided. + * @param {Scheduler} [scheduler] Optional scheduler to use for scheduling. If not provided, defaults to Scheduler.currentThread. + */ + from(array: ArrayOrIterable, mapFn: (value: T, index: number) => TResult, thisArg?: any, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Converts an array to an observable sequence, using an optional scheduler to enumerate the array. + * @deprecated use Observable.from or Observable.of + * @param {Scheduler} [scheduler] Scheduler to run the enumeration of the input sequence on. + * @returns {Observable} The observable sequence whose elements are pulled from the given enumerable sequence. + */ + fromArray(array: ArrayLike, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Generates an observable sequence by running a state-driven loop producing the sequence's elements, using the specified scheduler to send out observer messages. + * + * @example + * var res = Rx.Observable.generate(0, function (x) { return x < 10; }, function (x) { return x + 1; }, function (x) { return x; }); + * var res = Rx.Observable.generate(0, function (x) { return x < 10; }, function (x) { return x + 1; }, function (x) { return x; }, Rx.Scheduler.timeout); + * @param {Mixed} initialState Initial state. + * @param {Function} condition Condition to terminate generation (upon returning false). + * @param {Function} iterate Iteration step function. + * @param {Function} resultSelector Selector function for results produced in the sequence. + * @param {Scheduler} [scheduler] Scheduler on which to run the generator loop. If not provided, defaults to Scheduler.currentThread. + * @returns {Observable} The generated sequence. + */ + generate(initialState: TState, condition: (state: TState) => boolean, iterate: (state: TState) => TState, resultSelector: (state: TState) => TResult, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * This method creates a new Observable instance with a variable number of arguments, regardless of number or type of the arguments. + * @returns {Observable} The observable sequence whose elements are pulled from the given arguments. + */ + of(...values: T[]): Observable; + + /** + * This method creates a new Observable instance with a variable number of arguments, regardless of number or type of the arguments. + * @param {Scheduler} scheduler A scheduler to use for scheduling the arguments. + * @returns {Observable} The observable sequence whose elements are pulled from the given arguments. + */ + ofWithScheduler(scheduler?: IScheduler, ...values: T[]): Observable; + } + + export interface ArrayObserveChange { + type: string; + object: T[]; + name?: string; + oldValue?: T; + index?: number; + removed?: T[]; + added?: number; + } + + export interface ObservableStatic { + /** + * Creates an Observable sequence from changes to an array using Array.observe. + * @param {Array} array An array to observe changes. + * @returns {Observable} An observable sequence containing changes to an array from Array.observe. + */ + ofArrayChanges(obj: T[]): Observable>; + } + + export interface ObjectObserveChange { + type: string; + object: T; + name: string; + oldValue?: any; + } + + export interface ObservableStatic { + /** + * Creates an Observable sequence from changes to an object using Object.observe. + * @param {Object} obj An object to observe changes. + * @returns {Observable} An observable sequence containing changes to an object from Object.observe. + */ + ofObjectChanges(obj: T): Observable>; + } + + export interface ObservableStatic { + /** + * Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins). + * @returns {Observable} An observable sequence whose observers will never get called. + */ + never(): Observable; + } + + export interface ObservableStatic { + /** + * Convert an object into an observable sequence of [key, value] pairs. + * @param {Object} obj The object to inspect. + * @param {Scheduler} [scheduler] Scheduler to run the enumeration of the input sequence on. + * @returns {Observable} An observable sequence of [key, value] pairs from the object. + */ + pairs(obj: { [key: string]: T }, scheduler?: IScheduler): Observable<[string, T]>; + /** + * Convert an object into an observable sequence of [key, value] pairs. + * @param {Object} obj The object to inspect. + * @param {Scheduler} [scheduler] Scheduler to run the enumeration of the input sequence on. + * @returns {Observable} An observable sequence of [key, value] pairs from the object. + */ + pairs(obj: { [key: number]: T }, scheduler?: IScheduler): Observable<[number, T]>; + } + + export interface ObservableStatic { + /** + * Generates an observable sequence of integral numbers within a specified range, using the specified scheduler to send out observer messages. + * + * @example + * var res = Rx.Observable.range(0, 10); + * var res = Rx.Observable.range(0, 10, Rx.Scheduler.timeout); + * @param {Number} start The value of the first integer in the sequence. + * @param {Number} count The number of sequential integers to generate. + * @param {Scheduler} [scheduler] Scheduler to run the generator loop on. If not specified, defaults to Scheduler.currentThread. + * @returns {Observable} An observable sequence that contains a range of sequential integral numbers. + */ + range(start: number, count: number, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Generates an observable sequence that repeats the given element the specified number of times, using the specified scheduler to send out observer messages. + * + * @example + * var res = Rx.Observable.repeat(42); + * var res = Rx.Observable.repeat(42, 4); + * 3 - res = Rx.Observable.repeat(42, 4, Rx.Scheduler.timeout); + * 4 - res = Rx.Observable.repeat(42, null, Rx.Scheduler.timeout); + * @param {Mixed} value Element to repeat. + * @param {Number} repeatCount [Optiona] Number of times to repeat the element. If not specified, repeats indefinitely. + * @param {Scheduler} scheduler Scheduler to run the producer loop on. If not specified, defaults to Scheduler.immediate. + * @returns {Observable} An observable sequence that repeats the given element the specified number of times. + */ + repeat(value: T, repeatCount?: number | void, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages. + * There is an alias called 'just' or browsers (value: T, scheduler?: IScheduler): Observable; + /** + * Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages. + * There is an alias called 'just' or browsers (value: T, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single onError message. + * @param {Mixed} error An object used for the sequence's termination. + * @param {Scheduler} scheduler Scheduler to send the exceptional termination call on. If not specified, defaults to Scheduler.immediate. + * @returns {Observable} The observable sequence that terminates exceptionally with the specified exception object. + */ + throw(exception: Error, scheduler?: IScheduler): Observable; + /** + * Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single onError message. + * @param {Mixed} error An object used for the sequence's termination. + * @param {Scheduler} scheduler Scheduler to send the exceptional termination call on. If not specified, defaults to Scheduler.immediate. + * @returns {Observable} The observable sequence that terminates exceptionally with the specified exception object. + */ + throw(exception: any, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime. + * @param {Function} resourceFactory Factory function to obtain a resource object. + * @param {Function} observableFactory Factory function to obtain an observable sequence that depends on the obtained resource. + * @returns {Observable} An observable sequence whose lifetime controls the lifetime of the dependent resource object. + */ + using(resourceFactory: () => TResource, observableFactory: (resource: TResource) => Observable): Observable; + } + + export interface Observable { + /** + * Propagates the observable sequence or Promise that reacts first. + * @param {Observable} rightSource Second observable sequence or Promise. + * @returns {Observable} {Observable} An observable sequence that surfaces either of the given sequences, whichever reacted first. + */ + amb(observable: ObservableOrPromise): Observable; + } + + export interface ObservableStatic { + /** + * Propagates the observable sequence or Promise that reacts first. + * @returns {Observable} An observable sequence that surfaces any of the given sequences, whichever reacted first. + */ + amb(observables: ObservableOrPromise[]): Observable; + /** + * Propagates the observable sequence or Promise that reacts first. + * @returns {Observable} An observable sequence that surfaces any of the given sequences, whichever reacted first. + */ + amb(...observables: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Continues an observable sequence that is terminated by an exception with the next observable sequence. + * @param {Mixed} handlerOrSecond Exception handler function that returns an observable sequence given the error that occurred in the first sequence, or a second observable sequence used to produce results when an error occurred in the first sequence. + * @returns {Observable} An observable sequence containing the first sequence's elements, followed by the elements of the handler sequence in case an exception occurred. + */ + catch(handler: (exception: any) => ObservableOrPromise): Observable; + /** + * Continues an observable sequence that is terminated by an exception with the next observable sequence. + * @param {Mixed} handlerOrSecond Exception handler function that returns an observable sequence given the error that occurred in the first sequence, or a second observable sequence used to produce results when an error occurred in the first sequence. + * @returns {Observable} An observable sequence containing the first sequence's elements, followed by the elements of the handler sequence in case an exception occurred. + */ + catch(second: ObservableOrPromise): Observable; + } + + export interface ObservableStatic { + /** + * Continues an observable sequence that is terminated by an exception with the next observable sequence. + * @param {Array | Arguments} args Arguments or an array to use as the next sequence if an error occurs. + * @returns {Observable} An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + */ + catch(sources: ObservableOrPromise[]): Observable; + /** + * Continues an observable sequence that is terminated by an exception with the next observable sequence. + * @param {Array | Arguments} args Arguments or an array to use as the next sequence if an error occurs. + * @returns {Observable} An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + */ + catch(...sources: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, resultSelector: (v1: T, v2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, ninth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8, v9: T9) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(souces: ObservableOrPromise[], resultSelector: (firstValue: T, ...otherValues: TOther[]) => TResult): Observable; + } + + export interface ObservableStatic { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, resultSelector: (v1: T, v2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, eventh: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, ninth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8, v9: T9) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(souces: ObservableOrPromise[], resultSelector: (...otherValues: TOther[]) => TResult): Observable; + } + + export interface Observable { + /** + * Concatenates all the observable sequences. This takes in either an array or variable arguments to concatenate. + * @returns {Observable} An observable sequence that contains the elements of each given sequence, in sequential order. + */ + concat(...sources: ObservableOrPromise[]): Observable; + } + + export interface ObservableStatic { + /** + * Concatenates all the observable sequences. + * @param {Array | Arguments} args Arguments or an array to concat to the observable sequence. + * @returns {Observable} An observable sequence that contains the elements of each given sequence, in sequential order. + */ + concat(...sources: ObservableOrPromise[]): Observable; + /** + * Concatenates all the observable sequences. + * @param {Array | Arguments} args Arguments or an array to concat to the observable sequence. + * @returns {Observable} An observable sequence that contains the elements of each given sequence, in sequential order. + */ + concat(sources: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Concatenates an observable sequence of observable sequences. + * @returns {Observable} An observable sequence that contains the elements of each observed inner sequence, in sequential order. + */ + concatAll(): T; + } + + export interface Observable { + /** + * Merges an observable sequence of observable sequences into an observable sequence, limiting the number of concurrent subscriptions to inner sequences. + * Or merges two observable sequences into a single observable sequence. + * + * @example + * 1 - merged = sources.merge(1); + * 2 - merged = source.merge(otherSource); + * @param {Mixed} [maxConcurrentOrOther] Maximum number of inner observable sequences being subscribed to concurrently or the second observable sequence. + * @returns {Observable} The observable sequence that merges the elements of the inner sequences. + */ + merge(maxConcurrent: number): T; + /** + * Merges an observable sequence of observable sequences into an observable sequence, limiting the number of concurrent subscriptions to inner sequences. + * Or merges two observable sequences into a single observable sequence. + * + * @example + * 1 - merged = sources.merge(1); + * 2 - merged = source.merge(otherSource); + * @param {Mixed} [maxConcurrentOrOther] Maximum number of inner observable sequences being subscribed to concurrently or the second observable sequence. + * @returns {Observable} The observable sequence that merges the elements of the inner sequences. + */ + merge(other: ObservableOrPromise): Observable; + } + + export interface ObservableStatic { + /** + * Merges all the observable sequences into a single observable sequence. + * The scheduler is optional and if not specified, the immediate scheduler is used. + * @returns {Observable} The observable sequence that merges the elements of the observable sequences. + */ + merge(...sources: ObservableOrPromise[]): Observable; + /** + * Merges all the observable sequences into a single observable sequence. + * The scheduler is optional and if not specified, the immediate scheduler is used. + * @returns {Observable} The observable sequence that merges the elements of the observable sequences. + */ + merge(sources: ObservableOrPromise[]): Observable; + /** + * Merges all the observable sequences into a single observable sequence. + * The scheduler is optional and if not specified, the immediate scheduler is used. + * @returns {Observable} The observable sequence that merges the elements of the observable sequences. + */ + merge(scheduler: IScheduler, ...sources: ObservableOrPromise[]): Observable; + /** + * Merges all the observable sequences into a single observable sequence. + * The scheduler is optional and if not specified, the immediate scheduler is used. + * @returns {Observable} The observable sequence that merges the elements of the observable sequences. + */ + merge(scheduler: IScheduler, sources: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Merges an observable sequence of observable sequences into an observable sequence. + * @returns {Observable} The observable sequence that merges the elements of the inner sequences. + */ + mergeAll(): T; + } + + export interface ObservableStatic { + /** + * Flattens an Observable that emits Observables into one Observable, in a way that allows an Observer to + * receive all successfully emitted items from all of the source Observables without being interrupted by + * an error notification from one of them. + * + * This behaves like Observable.prototype.mergeAll except that if any of the merged Observables notify of an + * error via the Observer's onError, mergeDelayError will refrain from propagating that + * error notification until all of the merged Observables have finished emitting items. + * @param {Array | Arguments} args Arguments or an array to merge. + * @returns {Observable} an Observable that emits all of the items emitted by the Observables emitted by the Observable + */ + mergeDelayError(...sources: ObservableOrPromise[]): Observable; + /** + * Flattens an Observable that emits Observables into one Observable, in a way that allows an Observer to + * receive all successfully emitted items from all of the source Observables without being interrupted by + * an error notification from one of them. + * + * This behaves like Observable.prototype.mergeAll except that if any of the merged Observables notify of an + * error via the Observer's onError, mergeDelayError will refrain from propagating that + * error notification until all of the merged Observables have finished emitting items. + * @param {Array | Arguments} args Arguments or an array to merge. + * @returns {Observable} an Observable that emits all of the items emitted by the Observables emitted by the Observable + */ + mergeDelayError(sources: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Continues an observable sequence that is terminated normally or by an exception with the next observable sequence. + * @param {Observable} second Second observable sequence used to produce results after the first sequence terminates. + * @returns {Observable} An observable sequence that concatenates the first and second sequence, even if the first sequence terminates exceptionally. + */ + onErrorResumeNext(second: ObservableOrPromise): Observable; + } + + export interface ObservableStatic { + /** + * Continues an observable sequence that is terminated normally or by an exception with the next observable sequence. + * + * @example + * 1 - res = Rx.Observable.onErrorResumeNext(xs, ys, zs); + * 1 - res = Rx.Observable.onErrorResumeNext([xs, ys, zs]); + * @returns {Observable} An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + */ + onErrorResumeNext(...sources: ObservableOrPromise[]): Observable; + /** + * Continues an observable sequence that is terminated normally or by an exception with the next observable sequence. + * + * @example + * 1 - res = Rx.Observable.onErrorResumeNext(xs, ys, zs); + * 1 - res = Rx.Observable.onErrorResumeNext([xs, ys, zs]); + * @returns {Observable} An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + */ + onErrorResumeNext(sources: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Returns the values from the source observable sequence only after the other observable sequence produces a value. + * @param {Observable | Promise} other The observable sequence or Promise that triggers propagation of elements of the source sequence. + * @returns {Observable} An observable sequence containing the elements of the source sequence starting from the point the other sequence triggered propagation. + */ + skipUntil(other: ObservableOrPromise): Observable; + } + + export interface Observable { + /** + * Transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @returns {Observable} The observable sequence that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + switch(): T; + /** + * Transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @returns {Observable} The observable sequence that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + switchLatest(): T; + } + + export interface Observable { + /** + * Returns the values from the source observable sequence until the other observable sequence produces a value. + * @param {Observable | Promise} other Observable sequence or Promise that terminates propagation of elements of the source sequence. + * @returns {Observable} An observable sequence containing the elements of the source sequence up to the point the other sequence interrupted further propagation. + */ + takeUntil(other: ObservableOrPromise): Observable; + } + + export interface Observable { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, resultSelector: (v1: T, v2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, ninth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8, v9: T9) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(souces: ObservableOrPromise[], resultSelector: (firstValue: T, ...otherValues: TOther[]) => TResult): Observable; + } + + export interface ObservableStatic { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(sources: ObservableOrPromise[], resultSelector?: (item1: T1, ...right: T2[]) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, ObservableOrPromise: Observable, resultSelector?: (item1: T1, item2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: Observable, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, source6: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, source6: ObservableOrPromise, source7: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, source6: ObservableOrPromise, source7: ObservableOrPromise, source8: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7, item8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, source6: ObservableOrPromise, source7: ObservableOrPromise, source8: ObservableOrPromise, source9: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7, item8: T8, item9: T9) => TResult): Observable; + } + + export interface Observable { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, resultSelector?: (v1: T, v2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, ninth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8, v9: T9) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(souces: ObservableOrPromise[], resultSelector?: (firstValue: T, ...otherValues: TOther[]) => TResult): Observable; + } + + export interface ObservableStatic { + /** + * Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + * @param arguments Observable sources. + * @returns {Observable} An observable sequence containing lists of elements at corresponding indexes. + */ + zipIterable(...sources: Observable[]): Observable; + /** + * Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + * @param arguments Observable sources. + * @returns {Observable} An observable sequence containing lists of elements at corresponding indexes. + */ + zipIterable(sources: Observable[]): Observable; + } + + export interface Observable { + /** + * Hides the identity of an observable sequence. + * @returns {Observable} An observable sequence that hides the identity of the source sequence. + */ + asObservable(): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more buffers which are produced based on element count information. + * @param {Number} count Length of each buffer. + * @param {Number} [skip] Number of elements to skip between creation of consecutive buffers. If not provided, defaults to the count. + * @returns {Observable} An observable sequence of buffers. + */ + bufferWithCount(count: number, skip?: number): Observable; + } + + export interface Observable { + /** + * Dematerializes the explicit notification values of an observable sequence as implicit notifications. + * @returns {Observable} An observable sequence exhibiting the behavior corresponding to the source sequence's notification values. + */ + dematerialize(): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that contains only distinct contiguous elements according to the keySelector and the comparer. + * + * var obs = observable.distinctUntilChanged(); + * var obs = observable.distinctUntilChanged(function (x) { return x.id; }); + * var obs = observable.distinctUntilChanged(function (x) { return x.id; }, function (x, y) { return x === y; }); + * + * @param {Function} [keySelector] A function to compute the comparison key for each element. If not provided, it projects the value. + * @param {Function} [comparer] Equality comparer for computed key values. If not provided, defaults to an equality comparer function. + * @returns {Observable} An observable sequence only containing the distinct contiguous elements, based on a computed key value, from the source sequence. + */ + distinctUntilChanged(keySelector?: (value: T) => TValue, comparer?: _Comparer): Observable; + } + + export interface Observable { + /** + * Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function | Observer} observerOrOnNext Action to invoke for each element in the observable sequence or an observer. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + do(observer: Observer): Observable; + /** + * Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function | Observer} observerOrOnNext Action to invoke for each element in the observable sequence or an observer. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tap(observer: Observer): Observable; + + /** + * Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function | Observer} observerOrOnNext Action to invoke for each element in the observable sequence or an observer. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + do(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): Observable; + /** + * Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function | Observer} observerOrOnNext Action to invoke for each element in the observable sequence or an observer. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tap(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): Observable; + + /** + * Invokes an action for each element in the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onNext Action to invoke for each element in the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + doOnNext(onNext: (value: T) => void, thisArg?: any): Observable; + /** + * Invokes an action upon exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onError Action to invoke upon exceptional termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + doOnError(onError: (exception: any) => void, thisArg?: any): Observable; + /** + * Invokes an action upon graceful termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onCompleted Action to invoke upon graceful termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + doOnCompleted(onCompleted: () => void, thisArg?: any): Observable; + + /** + * Invokes an action for each element in the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onNext Action to invoke for each element in the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tapOnNext(onNext: (value: T) => void, thisArg?: any): Observable; + /** + * Invokes an action upon exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onError Action to invoke upon exceptional termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tapOnError(onError: (exception: any) => void, thisArg?: any): Observable; + /** + * Invokes an action upon graceful termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onCompleted Action to invoke upon graceful termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tapOnCompleted(onCompleted: () => void, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Invokes a specified action after the source observable sequence terminates gracefully or exceptionally. + * @param {Function} finallyAction Action to invoke after the source observable sequence terminates. + * @returns {Observable} Source sequence with the action-invoking termination behavior applied. + */ + finally(action: () => void): Observable; + + /** + * Invokes a specified action after the source observable sequence terminates gracefully or exceptionally. + * @param {Function} finallyAction Action to invoke after the source observable sequence terminates. + * @returns {Observable} Source sequence with the action-invoking termination behavior applied. + */ + ensure(action: () => void): Observable; + } + + export interface Observable { + /** + * Ignores all elements in an observable sequence leaving only the termination messages. + * @returns {Observable} An empty observable sequence that signals termination, successful or exceptional, of the source sequence. + */ + ignoreElements(): Observable; + } + + export interface Observable { + /** + * Materializes the implicit notifications of an observable sequence as explicit notification values. + * @returns {Observable} An observable sequence containing the materialized notification values from the source sequence. + */ + materialize(): Observable; + } + + export interface Observable { + /** + * Repeats the observable sequence a specified number of times. If the repeat count is not specified, the sequence repeats indefinitely. + * @param {Number} [repeatCount] Number of times to repeat the sequence. If not provided, repeats the sequence indefinitely. + * @returns {Observable} The observable sequence producing the elements of the given sequence repeatedly. + */ + repeat(repeatCount?: number): Observable; + } + + export interface Observable { + /** + * Repeats the source observable sequence the specified number of times or until it successfully terminates. If the retry count is not specified, it retries indefinitely. + * Note if you encounter an error and want it to retry once, then you must use .retry(2); + * + * @example + * var res = retried = retry.repeat(); + * var res = retried = retry.repeat(2); + * @param {Number} [retryCount] Number of times to retry the sequence. If not provided, retry the sequence indefinitely. + * @returns {Observable} An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + */ + retry(retryCount?: number): Observable; + } + + export interface Observable { + /** + * Repeats the source observable sequence upon error each time the notifier emits or until it successfully terminates. + * if the notifier completes, the observable sequence completes. + * + * @example + * var timer = Observable.timer(500); + * var source = observable.retryWhen(timer); + * @param {Observable} [notifier] An observable that triggers the retries or completes the observable with onNext or onCompleted respectively. + * @returns {Observable} An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + */ + retryWhen(notifier: (errors: Observable) => Observable): Observable; + } + + export interface Observable { + /** + * Applies an accumulator function over an observable sequence and returns each intermediate result. The optional seed value is used as the initial accumulator value. + * For aggregation behavior with no intermediate results, see Observable.aggregate. + * @example + * var res = source.scan(function (acc, x) { return acc + x; }); + * var res = source.scan(function (acc, x) { return acc + x; }, 0); + * @param {Function} accumulator An accumulator function to be invoked on each element. + * @param {Mixed} [seed] The initial accumulator value. + * @returns {Observable} An observable sequence containing the accumulated values. + */ + scan(accumulator: _Accumulator, seed?: TAcc): Observable; + /** + * Applies an accumulator function over an observable sequence and returns each intermediate result. The optional seed value is used as the initial accumulator value. + * For aggregation behavior with no intermediate results, see Observable.aggregate. + * @example + * var res = source.scan(function (acc, x) { return acc + x; }); + * var res = source.scan(function (acc, x) { return acc + x; }, 0); + * @param {Function} accumulator An accumulator function to be invoked on each element. + * @param {Mixed} [seed] The initial accumulator value. + * @returns {Observable} An observable sequence containing the accumulated values. + */ + scan(accumulator: _Accumulator, seed?: T): Observable; + } + + export interface Observable { + /** + * Bypasses a specified number of elements at the end of an observable sequence. + * @description + * This operator accumulates a queue with a length enough to store the first `count` elements. As more elements are + * received, elements are taken from the front of the queue and produced on the result sequence. This causes elements to be delayed. + * @param count Number of elements to bypass at the end of the source sequence. + * @returns {Observable} An observable sequence containing the source sequence elements except for the bypassed ones at the end. + */ + skipLast(count: number): Observable; + } + + export interface Observable { + /** + * Prepends a sequence of values to an observable sequence with an optional scheduler and an argument list of values to prepend. + * @example + * var res = source.startWith(1, 2, 3); + * var res = source.startWith(Rx.Scheduler.timeout, 1, 2, 3); + * @param {Arguments} args The specified values to prepend to the observable sequence + * @returns {Observable} The source sequence prepended with the specified values. + */ + startWith(...values: T[]): Observable; + /** + * Prepends a sequence of values to an observable sequence with an optional scheduler and an argument list of values to prepend. + * @example + * var res = source.startWith(1, 2, 3); + * var res = source.startWith(Rx.Scheduler.timeout, 1, 2, 3); + * @param {Arguments} args The specified values to prepend to the observable sequence + * @returns {Observable} The source sequence prepended with the specified values. + */ + startWith(scheduler: IScheduler, ...values: T[]): Observable; + } + + export interface Observable { + /** + * Returns a specified number of contiguous elements from the end of an observable sequence. + * @description + * This operator accumulates a buffer with a length enough to store elements count elements. Upon completion of + * the source sequence, this buffer is drained on the result sequence. This causes the elements to be delayed. + * @param {Number} count Number of elements to take from the end of the source sequence. + * @returns {Observable} An observable sequence containing the specified number of elements from the end of the source sequence. + */ + takeLast(count: number): Observable; + } + + export interface Observable { + /** + * Returns an array with the specified number of contiguous elements from the end of an observable sequence. + * + * @description + * This operator accumulates a buffer with a length enough to store count elements. Upon completion of the + * source sequence, this buffer is produced on the result sequence. + * @param {Number} count Number of elements to take from the end of the source sequence. + * @returns {Observable} An observable sequence containing a single array with the specified number of elements from the end of the source sequence. + */ + takeLastBuffer(count: number): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more windows which are produced based on element count information. + * + * var res = xs.windowWithCount(10); + * var res = xs.windowWithCount(10, 1); + * @param {Number} count Length of each window. + * @param {Number} [skip] Number of elements to skip between creation of consecutive windows. If not specified, defaults to the count. + * @returns {Observable} An observable sequence of windows. + */ + windowWithCount(count: number, skip?: number): Observable>; + } + + export interface Observable { + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + concatMap(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + concatMap(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + concatMap(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + concatMap(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectConcat(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectConcat(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectConcat(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectConcat(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Projects each notification of an observable sequence to an observable sequence and concats the resulting observable sequences into one observable sequence. + * @param {Function} onNext A transform function to apply to each element; the second parameter of the function represents the index of the source element. + * @param {Function} onError A transform function to apply when an error occurs in the source sequence. + * @param {Function} onCompleted A transform function to apply when the end of the source sequence is reached. + * @param {Any} [thisArg] An optional "this" to use to invoke each transform. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + */ + concatMapObserver(onNext: (value: T, i: number) => ObservableOrPromise, onError: (error: any) => ObservableOrPromise, onCompleted: () => ObservableOrPromise, thisArg?: any): Observable; + /** + * Projects each notification of an observable sequence to an observable sequence and concats the resulting observable sequences into one observable sequence. + * @param {Function} onNext A transform function to apply to each element; the second parameter of the function represents the index of the source element. + * @param {Function} onError A transform function to apply when an error occurs in the source sequence. + * @param {Function} onCompleted A transform function to apply when the end of the source sequence is reached. + * @param {Any} [thisArg] An optional "this" to use to invoke each transform. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + */ + selectConcatObserver(onNext: (value: T, i: number) => ObservableOrPromise, onError: (error: any) => ObservableOrPromise, onCompleted: () => ObservableOrPromise, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Returns the elements of the specified sequence or the specified value in a singleton sequence if the sequence is empty. + * + * var res = obs = xs.defaultIfEmpty(); + * 2 - obs = xs.defaultIfEmpty(false); + * + * @memberOf Observable# + * @param defaultValue The value to return if the sequence is empty. If not provided, this defaults to null. + * @returns {Observable} An observable sequence that contains the specified default value if the source is empty; otherwise, the elements of the source itself. + */ + defaultIfEmpty(defaultValue?: T): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that contains only distinct elements according to the keySelector and the comparer. + * Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + * + * @example + * var res = obs = xs.distinct(); + * 2 - obs = xs.distinct(function (x) { return x.id; }); + * 2 - obs = xs.distinct(function (x) { return x.id; }, function (a,b) { return a === b; }); + * @param {Function} [keySelector] A function to compute the comparison key for each element. + * @param {Function} [comparer] Used to compare items in the collection. + * @returns {Observable} An observable sequence only containing the distinct elements, based on a computed key value, from the source sequence. + */ + distinct(keySelector?: (value: T) => TKey, keySerializer?: (key: TKey) => string): Observable; + } + + export interface Observable { + /** + * Groups the elements of an observable sequence according to a specified key selector function. + * A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + * key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + * + * @example + * var res = observable.groupByUntil(function (x) { return x.id; }, null, function () { return Rx.Observable.never(); }); + * 2 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }, function () { return Rx.Observable.never(); }); + * 3 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }, function () { return Rx.Observable.never(); }, function (x) { return x.toString(); }); + * @param {Function} keySelector A function to extract the key for each element. + * @param {Function} durationSelector A function to signal the expiration of a group. + * @returns {Observable} + * A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + * If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encoutered. + * + */ + groupByUntil(keySelector: (value: T) => TKey, skipElementSelector: boolean, durationSelector: (group: GroupedObservable) => Observable, keySerializer?: (key: TKey) => string): Observable>; + + /** + * Groups the elements of an observable sequence according to a specified key selector function. + * A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + * key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + * + * @example + * var res = observable.groupByUntil(function (x) { return x.id; }, null, function () { return Rx.Observable.never(); }); + * 2 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }, function () { return Rx.Observable.never(); }); + * 3 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }, function () { return Rx.Observable.never(); }, function (x) { return x.toString(); }); + * @param {Function} keySelector A function to extract the key for each element. + * @param {Function} durationSelector A function to signal the expiration of a group. + * @returns {Observable} + * A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + * If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encoutered. + * + */ + groupByUntil(keySelector: (value: T) => TKey, elementSelector: (value: T) => TElement, durationSelector: (group: GroupedObservable) => Observable, keySerializer?: (key: TKey) => string): Observable>; + } + + export interface Observable { + /** + * Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + * + * @example + * var res = observable.groupBy(function (x) { return x.id; }); + * 2 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }); + * 3 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }, function (x) { return x.toString(); }); + * @param {Function} keySelector A function to extract the key for each element. + * @param {Function} [elementSelector] A function to map each source element to an element in an observable group. + * @returns {Observable} A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + */ + groupBy(keySelector: (value: T) => TKey, skipElementSelector?: boolean, keySerializer?: (key: TKey) => string): Observable>; + /** + * Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + * + * @example + * var res = observable.groupBy(function (x) { return x.id; }); + * 2 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }); + * 3 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }, function (x) { return x.toString(); }); + * @param {Function} keySelector A function to extract the key for each element. + * @param {Function} [elementSelector] A function to map each source element to an element in an observable group. + * @returns {Observable} A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + */ + groupBy(keySelector: (value: T) => TKey, elementSelector: (value: T) => TElement, keySerializer?: (key: TKey) => string): Observable>; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into a new form by incorporating the element's index. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source. + */ + select(selector: _Selector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new form by incorporating the element's index. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source. + */ + map(selector: _Selector, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Retrieves the value of a specified nested property from all elements in + * the Observable sequence. + * @param {Arguments} arguments The nested properties to pluck. + * @returns {Observable} Returns a new Observable sequence of property values. + */ + pluck(prop: string): Observable; + } + + + export interface Observable { + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMap(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMap(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMap(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMap(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectMany(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectMany(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectMany(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectMany(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Projects each notification of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * @param {Function} onNext A transform function to apply to each element; the second parameter of the function represents the index of the source element. + * @param {Function} onError A transform function to apply when an error occurs in the source sequence. + * @param {Function} onCompleted A transform function to apply when the end of the source sequence is reached. + * @param {Any} [thisArg] An optional "this" to use to invoke each transform. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + */ + selectManyObserver(onNext: (value: T, index: number) => Observable, onError: (exception: any) => Observable, onCompleted: () => Observable, thisArg?: any): Observable; + /** + * Projects each notification of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * @param {Function} onNext A transform function to apply to each element; the second parameter of the function represents the index of the source element. + * @param {Function} onError A transform function to apply when an error occurs in the source sequence. + * @param {Function} onCompleted A transform function to apply when the end of the source sequence is reached. + * @param {Any} [thisArg] An optional "this" to use to invoke each transform. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + */ + flatMapObserver(onNext: (value: T, index: number) => Observable, onError: (exception: any) => Observable, onCompleted: () => Observable, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + selectSwitch(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + selectSwitch(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + selectSwitch(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + selectSwitch(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + flatMapLatest(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + flatMapLatest(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + flatMapLatest(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + flatMapLatest(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Bypasses a specified number of elements in an observable sequence and then returns the remaining elements. + * @param {Number} count The number of elements to skip before returning the remaining elements. + * @returns {Observable} An observable sequence that contains the elements that occur after the specified index in the input sequence. + */ + skip(count: number): Observable; + } + + export interface Observable { + /** + * Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. + * The element's index is used in the logic of the predicate function. + * + * var res = source.skipWhile(function (value) { return value < 10; }); + * var res = source.skipWhile(function (value, index) { return value < 10 || index < 10; }); + * @param {Function} predicate A function to test each element for a condition; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. + */ + skipWhile(predicate: _Predicate, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Returns a specified number of contiguous elements from the start of an observable sequence, using the specified scheduler for the edge case of take(0). + * + * var res = source.take(5); + * var res = source.take(0, Rx.Scheduler.timeout); + * @param {Number} count The number of elements to return. + * @param {Scheduler} [scheduler] Scheduler used to produce an OnCompleted message in case | (() => ISubject)): ConnectableObservable; + /** + * Multicasts the source sequence notifications through an instantiated subject into all uses of the sequence within a selector function. Each + * subscription to the resulting sequence causes a separate multicast invocation, exposing the sequence resulting from the selector function's + * invocation. For specializations with fixed subject types, see Publish, PublishLast, and Replay. + * + * @example + * 1 - res = source.multicast(observable); + * 2 - res = source.multicast(function () { return new Subject(); }, function (x) { return x; }); + * + * @param {Function|Subject} subjectOrSubjectSelector + * 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 which can use the multicasted source sequence subject to the policies enforced by the created subject. Specified only if (subjectSelector: ISubject | (() => ISubject), selector: (source: ConnectableObservable) => Observable): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence. + * This operator is a specialization of Multicast using a regular Subject. + * + * @example + * var resres = source.publish(); + * var res = source.publish(function (x) { return x; }); + * + * @param {Function} [selector] 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. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publish(): ConnectableObservable; + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence. + * This operator is a specialization of Multicast using a regular Subject. + * + * @example + * var resres = source.publish(); + * var res = source.publish(function (x) { return x; }); + * + * @param {Function} [selector] 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. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publish(selector: (source: ConnectableObservable) => Observable): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence. + * This operator is a specialization of publish which creates a subscription when the number of observers goes from zero to one, then shares that subscription with all subsequent observers until the number of observers returns to zero, at which point the subscription is disposed. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence. + */ + share(): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + * This operator is a specialization of Multicast using a AsyncSubject. + * + * @example + * var res = source.publishLast(); + * var res = source.publishLast(function (x) { return x; }); + * + * @param 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 only receive the last notification of the source. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishLast(): ConnectableObservable; + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + * This operator is a specialization of Multicast using a AsyncSubject. + * + * @example + * var res = source.publishLast(); + * var res = source.publishLast(function (x) { return x; }); + * + * @param 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 only receive the last notification of the source. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishLast(selector: (source: ConnectableObservable) => Observable): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + * This operator is a specialization of Multicast using a BehaviorSubject. + * + * @example + * var res = source.publishValue(42); + * var res = source.publishValue(function (x) { return x.select(function (y) { return y * y; }) }, 42); + * + * @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 immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + * @param {Mixed} initialValue Initial value received by observers upon subscription. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishValue(initialValue: T): ConnectableObservable; + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + * This operator is a specialization of Multicast using a BehaviorSubject. + * + * @example + * var res = source.publishValue(42); + * var res = source.publishValue(function (x) { return x.select(function (y) { return y * y; }) }, 42); + * + * @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 immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + * @param {Mixed} initialValue Initial value received by observers upon subscription. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishValue(selector: (source: ConnectableObservable) => Observable, initialValue: T): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence and starts with an initialValue. + * This operator is a specialization of publishValue which creates a subscription when the number of observers goes from zero to one, then shares that subscription with all subsequent observers until the number of observers returns to zero, at which point the subscription is disposed. + * @param {Mixed} initialValue Initial value received by observers upon subscription. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence. + */ + shareValue(initialValue: T): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + * This operator is a specialization of Multicast using a ReplaySubject. + * + * @example + * var res = source.replay(null, 3); + * var res = source.replay(null, 3, 500); + * var res = source.replay(null, 3, 500, scheduler); + * var res = source.replay(function (x) { return x.take(6).repeat(); }, 3, 500, scheduler); + * + * @param 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 the notifications of the source subject to the specified replay buffer trimming policy. + * @param bufferSize [Optional] Maximum element count of the replay buffer. + * @param windowSize [Optional] Maximum time length of the replay buffer. + * @param scheduler [Optional] Scheduler where connected observers within the selector function will be invoked on. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + replay(selector?: void, bufferSize?: number, window?: number, scheduler?: IScheduler): ConnectableObservable; // hack to catch first omitted parameter + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + * This operator is a specialization of Multicast using a ReplaySubject. + * + * @example + * var res = source.replay(null, 3); + * var res = source.replay(null, 3, 500); + * var res = source.replay(null, 3, 500, scheduler); + * var res = source.replay(function (x) { return x.take(6).repeat(); }, 3, 500, scheduler); + * + * @param 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 the notifications of the source subject to the specified replay buffer trimming policy. + * @param bufferSize [Optional] Maximum element count of the replay buffer. + * @param windowSize [Optional] Maximum time length of the replay buffer. + * @param scheduler [Optional] Scheduler where connected observers within the selector function will be invoked on. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + replay(selector: (source: ConnectableObservable) => Observable, bufferSize?: number, window?: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + * This operator is a specialization of replay which creates a subscription when the number of observers goes from zero to one, then shares that subscription with all subsequent observers until the number of observers returns to zero, at which point the subscription is disposed. + * + * @example + * var res = source.shareReplay(3); + * var res = source.shareReplay(3, 500); + * var res = source.shareReplay(3, 500, scheduler); + * + + * @param bufferSize [Optional] Maximum element count of the replay buffer. + * @param window [Optional] Maximum time length of the replay buffer. + * @param scheduler [Optional] Scheduler where connected observers within the selector function will be invoked on. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence. + */ + shareReplay(bufferSize?: number, window?: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence. This observable sequence + * can be resubscribed to, even if all prior subscriptions have ended. (unlike `.publish().refCount()`) + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source. + */ + singleInstance(): Observable; + } + + export interface Observable { + /** + * Correlates the elements of two sequences based on overlapping durations. + * + * @param {Observable} right The right observable sequence to join elements for. + * @param {Function} leftDurationSelector A function to select the duration (expressed as an observable sequence) of each element of the left observable sequence, used to determine overlap. + * @param {Function} rightDurationSelector A function to select the duration (expressed as an observable sequence) of each element of the right observable sequence, used to determine overlap. + * @param {Function} resultSelector A function invoked to compute a result element for any two overlapping elements of the left and right observable sequences. The parameters passed to the function correspond with the elements from the left and right source sequences for which overlap occurs. + * @returns {Observable} An observable sequence that contains result elements computed from source elements that have an overlapping duration. + */ + join( + right: Observable, + leftDurationSelector: (leftItem: T) => Observable, + rightDurationSelector: (rightItem: TRight) => Observable, + resultSelector: (leftItem: T, rightItem: TRight) => TResult): Observable; + } + + export interface Observable { + /** + * Correlates the elements of two sequences based on overlapping durations, and groups the results. + * + * @param {Observable} right The right observable sequence to join elements for. + * @param {Function} leftDurationSelector A function to select the duration (expressed as an observable sequence) of each element of the left observable sequence, used to determine overlap. + * @param {Function} rightDurationSelector A function to select the duration (expressed as an observable sequence) of each element of the right observable sequence, used to determine overlap. + * @param {Function} resultSelector A function invoked to compute a result element for any element of the left sequence with overlapping elements from the right observable sequence. The first parameter passed to the function is an element of the left sequence. The second parameter passed to the function is an observable sequence with elements from the right sequence that overlap with the left sequence's element. + * @returns {Observable} An observable sequence that contains result elements computed from source elements that have an overlapping duration. + */ + groupJoin( + right: Observable, + leftDurationSelector: (leftItem: T) => Observable, + rightDurationSelector: (rightItem: TRight) => Observable, + resultSelector: (leftItem: T, rightItem: Observable) => TResult): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more buffers. + * @param {Mixed} bufferOpeningsOrClosingSelector Observable sequence whose elements denote the creation of new windows, or, a function invoked to define the boundaries of the produced windows (a new window is started when the previous one is closed, resulting in non-overlapping windows). + * @param {Function} [bufferClosingSelector] A function invoked to define the closing of each produced window. If a closing selector function is specified for the first parameter, this parameter is ignored. + * @returns {Observable} An observable sequence of windows. + */ + buffer(bufferOpenings: Observable): Observable; + /** + * Projects each element of an observable sequence into zero or more buffers. + * @param {Mixed} bufferOpeningsOrClosingSelector Observable sequence whose elements denote the creation of new windows, or, a function invoked to define the boundaries of the produced windows (a new window is started when the previous one is closed, resulting in non-overlapping windows). + * @param {Function} [bufferClosingSelector] A function invoked to define the closing of each produced window. If a closing selector function is specified for the first parameter, this parameter is ignored. + * @returns {Observable} An observable sequence of windows. + */ + buffer(bufferClosingSelector: () => Observable): Observable; + /** + * Projects each element of an observable sequence into zero or more buffers. + * @param {Mixed} bufferOpeningsOrClosingSelector Observable sequence whose elements denote the creation of new windows, or, a function invoked to define the boundaries of the produced windows (a new window is started when the previous one is closed, resulting in non-overlapping windows). + * @param {Function} [bufferClosingSelector] A function invoked to define the closing of each produced window. If a closing selector function is specified for the first parameter, this parameter is ignored. + * @returns {Observable} An observable sequence of windows. + */ + buffer(bufferOpenings: Observable, bufferClosingSelector: () => Observable): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more windows. + * + * @param {Mixed} windowOpeningsOrClosingSelector Observable sequence whose elements denote the creation of new windows, or, a function invoked to define the boundaries of the produced windows (a new window is started when the previous one is closed, resulting in non-overlapping windows). + * @param {Function} [windowClosingSelector] A function invoked to define the closing of each produced window. If a closing selector function is specified for the first parameter, this parameter is ignored. + * @returns {Observable} An observable sequence of windows. + */ + window(windowOpenings: Observable): Observable>; + /** + * Projects each element of an observable sequence into zero or more windows. + * + * @param {Mixed} windowOpeningsOrClosingSelector Observable sequence whose elements denote the creation of new windows, or, a function invoked to define the boundaries of the produced windows (a new window is started when the previous one is closed, resulting in non-overlapping windows). + * @param {Function} [windowClosingSelector] A function invoked to define the closing of each produced window. If a closing selector function is specified for the first parameter, this parameter is ignored. + * @returns {Observable} An observable sequence of windows. + */ + window(windowClosingSelector: () => Observable): Observable>; + /** + * Projects each element of an observable sequence into zero or more windows. + * + * @param {Mixed} windowOpeningsOrClosingSelector Observable sequence whose elements denote the creation of new windows, or, a function invoked to define the boundaries of the produced windows (a new window is started when the previous one is closed, resulting in non-overlapping windows). + * @param {Function} [windowClosingSelector] A function invoked to define the closing of each produced window. If a closing selector function is specified for the first parameter, this parameter is ignored. + * @returns {Observable} An observable sequence of windows. + */ + window(windowOpenings: Observable, windowClosingSelector: () => Observable): Observable>; + } + + export interface Observable { + /** + * Returns a new observable that triggers on the second and subsequent triggerings of the input observable. + * The Nth triggering of the input observable passes the arguments from the N-1th and Nth triggering as a pair. + * The argument passed to the N-1th triggering is held in hidden internal state until the Nth triggering occurs. + * @returns {Observable} An observable that triggers on successive pairs of observations from the input observable as an array. + */ + pairwise(): Observable<[T, T]>; + } + + export interface Observable { + /** + * Returns two observables which partition the observations of the source by the given function. + * The first will trigger observations for those values for which the predicate returns true. + * The second will trigger observations for those values where the predicate returns false. + * The predicate is executed once for each subscribed observer. + * Both also propagate all error observations arising from the source and each completes + * when the source completes. + * @param {Function} predicate + * The function to determine which output Observable will trigger a particular observation. + * @returns {Array} + * An array of observables. The first triggers when the predicate returns true, + * and the second triggers when the predicate returns false. + */ + partition(predicate: _Predicate, thisArg?: any): [Observable, Observable]; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on the source sequence, without sharing subscriptions. + * This operator allows for a fluent style of writing queries that use the same sequence multiple times. + * + * @param {Function} selector Selector function which can use the source sequence as many times as needed, without sharing subscriptions to the source sequence. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + let(selector: (source: Observable) => Observable): Observable; + } + + export interface ObservableStatic { + /** + * Determines whether an observable collection contains values. + * + * @example + * 1 - res = Rx.Observable.if(condition, obs1); + * 2 - res = Rx.Observable.if(condition, obs1, obs2); + * 3 - res = Rx.Observable.if(condition, obs1, scheduler); + * @param {Function} condition The condition which determines if the thenSource or elseSource will be run. + * @param {Observable} thenSource The observable sequence or Promise that will be run if the condition function returns true. + * @param {Observable} [elseSource] The observable sequence or Promise that will be run if the condition function returns false. If this is not provided, it defaults to Rx.Observabe.Empty with the specified scheduler. + * @returns {Observable} An observable sequence which is either the thenSource or elseSource. + */ + if(condition: () => boolean, thenSource: ObservableOrPromise, elseSourceOrScheduler?: ObservableOrPromise | IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Concatenates the observable sequences obtained by running the specified result selector for each element in source. + * There is an alias for this method called 'forIn' for browsers (sources: T[], resultSelector: _Selector, thisArg?: any): Observable; + /** + * Concatenates the observable sequences obtained by running the specified result selector for each element in source. + * There is an alias for this method called 'forIn' for browsers (sources: T[], resultSelector: _Selector, thisArg?: any): Observable; + } + + export interface ObservableStatic { + /** + * Repeats source as long as condition holds emulating a while loop. + * There is an alias for this method called 'whileDo' for browsers (condition: () => boolean, source: ObservableOrPromise): Observable; + /** + * Repeats source as long as condition holds emulating a while loop. + * There is an alias for this method called 'whileDo' for browsers (condition: () => boolean, source: ObservableOrPromise): Observable; + } + + export interface Observable { + /** + * Repeats source as long as condition holds emulating a do while loop. + * + * @param {Function} condition The condition which determines if the source will be repeated. + * @param {Observable} source The observable sequence that will be run if the condition function returns true. + * @returns {Observable} An observable sequence which is repeated as long as the condition holds. + */ + doWhile(condition: () => boolean): Observable; + } + + export interface ObservableStatic { + /** + * Uses selector to determine which source in sources to use. + * @param {Function} selector The function which extracts the value for to test in a case statement. + * @param {Array} sources A object which has keys which correspond to the case statement labels. + * @param {Observable} [elseSource] The observable sequence or Promise that will be run if the sources are not matched. If this is not provided, it defaults to Rx.Observabe.empty with the specified scheduler. + * + * @returns {Observable} An observable sequence which is determined by a case statement. + */ + case(selector: () => string, sources: { [key: string]: ObservableOrPromise; }, schedulerOrElseSource?: IScheduler | ObservableOrPromise): Observable; + /** + * Uses selector to determine which source in sources to use. + * @param {Function} selector The function which extracts the value for to test in a case statement. + * @param {Array} sources A object which has keys which correspond to the case statement labels. + * @param {Observable} [elseSource] The observable sequence or Promise that will be run if the sources are not matched. If this is not provided, it defaults to Rx.Observabe.empty with the specified scheduler. + * + * @returns {Observable} An observable sequence which is determined by a case statement. + */ + case(selector: () => number, sources: { [key: number]: ObservableOrPromise; }, schedulerOrElseSource?: IScheduler | ObservableOrPromise): Observable; + } + + export interface Observable { + /** + * Expands an observable sequence by recursively invoking selector. + * + * @param {Function} selector Selector function to invoke for each produced element, resulting in another sequence to which the selector will be invoked recursively again. + * @param {Scheduler} [scheduler] Scheduler on which to perform the expansion. If not provided, this defaults to the current thread scheduler. + * @returns {Observable} An observable sequence containing all the elements produced by the recursive expansion. + */ + expand(selector: (item: T) => Observable, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Runs all observable sequences in parallel and collect their last elements. + * + * @example + * 1 - res = Rx.Observable.forkJoin([obs1, obs2]); + * 1 - res = Rx.Observable.forkJoin(obs1, obs2, ...); + * @returns {Observable} An observable sequence with an array collecting the last elements of all the input sequences. + */ + forkJoin(sources: ObservableOrPromise[]): Observable; + + /** + * Runs all observable sequences in parallel and collect their last elements. + * + * @example + * 1 - res = Rx.Observable.forkJoin([obs1, obs2]); + * 1 - res = Rx.Observable.forkJoin(obs1, obs2, ...); + * @returns {Observable} An observable sequence with an array collecting the last elements of all the input sequences. + */ + forkJoin(...args: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Runs two observable sequences in parallel and combines their last elemenets. + * + * @param {Observable} second Second observable sequence. + * @param {Function} resultSelector Result selector function to invoke with the last elements of both sequences. + * @returns {Observable} An observable sequence with the result of calling the selector function with the last elements of both input sequences. + */ + forkJoin(second: ObservableOrPromise, resultSelector: (left: T, right: TSecond) => TResult): Observable; + } + + export interface Observable { + /** + * Comonadic bind operator. + * @param {Function} selector A transform function to apply to each element. + * @param {Object} scheduler Scheduler used to execute the operation. If not specified, defaults to the ImmediateScheduler. + * @returns {Observable} An observable sequence which results from the comonadic bind operation. + */ + manySelect(selector: _Selector, TResult>, scheduler?: IScheduler): Observable; + /** + * Comonadic bind operator. + * @param {Function} selector A transform function to apply to each element. + * @param {Object} scheduler Scheduler used to execute the operation. If not specified, defaults to the ImmediateScheduler. + * @returns {Observable} An observable sequence which results from the comonadic bind operation. + */ + extend(selector: _Selector, TResult>, scheduler?: IScheduler): Observable; + } + + export class Plan { } + + export interface Pattern2 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern3; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2) => TR): Plan; + } + interface Pattern3 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern4; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3) => TR): Plan; + } + interface Pattern4 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern5; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3, item4: T4) => TR): Plan; + } + interface Pattern5 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern6; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5) => TR): Plan; + } + interface Pattern6 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern7; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6) => TR): Plan; + } + interface Pattern7 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern8; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7) => TR): Plan; + } + interface Pattern8 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern9; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7, item8: T8) => TR): Plan; + } + interface Pattern9 { + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7, item8: T8, item9: T9) => TR): Plan; + } + + export interface Observable { + /** + * Creates a pattern that matches when both observable sequences have an available value. + * + * @param right Observable sequence to match with the current sequence. + * @return {Pattern} Pattern object that matches when both observable sequences have an available value. + */ + and(right: Observable): Pattern2; + } + + export interface Observable { + /** + * Matches when the observable sequence has an available value and projects the value. + * + * @param {Function} selector Selector that will be invoked for values in the source sequence. + * @returns {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T) => TR): Plan; + } + + export interface ObservableStatic { + /** + * Joins together the results from several patterns. + * + * @param plans A series of plans (specified as an Array of as a series of arguments) created by use of the Then operator on patterns. + * @returns {Observable} Observable sequence with the results form matching several patterns. + */ + when(plan: Plan): Observable; + } + + export interface ObservableStatic { + /** + * Returns an observable sequence that produces a value after each period. + * + * @example + * 1 - res = Rx.Observable.interval(1000); + * 2 - res = Rx.Observable.interval(1000, Rx.Scheduler.timeout); + * + * @param {Number} period Period for producing the values in the resulting sequence (specified as an integer denoting milliseconds). + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, Rx.Scheduler.timeout is used. + * @returns {Observable} An observable sequence that produces a value after each period. + */ + interval(period: number, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Returns an observable sequence that produces a value after dueTime has elapsed and then after each period. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) at which to produce the first value. + * @param {Mixed} [periodOrScheduler] Period to produce subsequent values (specified as an integer denoting milliseconds), or the scheduler to run the timer on. If not specified, the resulting timer is not recurring. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence that produces a value after due time has elapsed and then each period. + */ + timer(dueTime: number, period: number, scheduler?: IScheduler): Observable; + /** + * Returns an observable sequence that produces a value after dueTime has elapsed and then after each period. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) at which to produce the first value. + * @param {Mixed} [periodOrScheduler] Period to produce subsequent values (specified as an integer denoting milliseconds), or the scheduler to run the timer on. If not specified, the resulting timer is not recurring. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence that produces a value after due time has elapsed and then each period. + */ + timer(dueTime: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Time shifts the observable sequence by dueTime. The relative time intervals between the values are preserved. + * + * @example + * 1 - res = Rx.Observable.delay(new Date()); + * 2 - res = Rx.Observable.delay(new Date(), Rx.Scheduler.timeout); + * + * 3 - res = Rx.Observable.delay(5000); + * 4 - res = Rx.Observable.delay(5000, 1000, Rx.Scheduler.timeout); + * @memberOf Observable# + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) by which to shift the observable sequence. + * @param {Scheduler} [scheduler] Scheduler to run the delay timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} Time-shifted sequence. + */ + delay(dueTime: Date, scheduler?: IScheduler): Observable; + /** + * Time shifts the observable sequence by dueTime. The relative time intervals between the values are preserved. + * + * @example + * 1 - res = Rx.Observable.delay(new Date()); + * 2 - res = Rx.Observable.delay(new Date(), Rx.Scheduler.timeout); + * + * 3 - res = Rx.Observable.delay(5000); + * 4 - res = Rx.Observable.delay(5000, 1000, Rx.Scheduler.timeout); + * @memberOf Observable# + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) by which to shift the observable sequence. + * @param {Scheduler} [scheduler] Scheduler to run the delay timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} Time-shifted sequence. + */ + delay(dueTime: number, scheduler?: IScheduler): Observable; + + /** + * Time shifts the observable sequence based on a subscription delay and a delay selector function for each element. + * + * @example + * 1 - res = source.delayWithSelector(function (x) { return Rx.Scheduler.timer(5000); }); // with selector only + * 1 - res = source.delayWithSelector(Rx.Observable.timer(2000), function (x) { return Rx.Observable.timer(x); }); // with delay and selector + * + * @param {Observable} [subscriptionDelay] Sequence indicating the delay for the subscription to the source. + * @param {Function} delayDurationSelector Selector function to retrieve a sequence indicating the delay for each given element. + * @returns {Observable} Time-shifted sequence. + */ + delay(delayDurationSelector: (item: T) => ObservableOrPromise): Observable; + + /** + * Time shifts the observable sequence based on a subscription delay and a delay selector function for each element. + * + * @example + * 1 - res = source.delayWithSelector(function (x) { return Rx.Scheduler.timer(5000); }); // with selector only + * 1 - res = source.delayWithSelector(Rx.Observable.timer(2000), function (x) { return Rx.Observable.timer(x); }); // with delay and selector + * + * @param {Observable} [subscriptionDelay] Sequence indicating the delay for the subscription to the source. + * @param {Function} delayDurationSelector Selector function to retrieve a sequence indicating the delay for each given element. + * @returns {Observable} Time-shifted sequence. + */ + delay(subscriptionDelay: Observable, delayDurationSelector: (item: T) => ObservableOrPromise): Observable; + } + + export interface Observable { + /** + * Ignores values from an observable sequence which are followed by another value before dueTime. + * @param {Number} dueTime Duration of the debounce period for each value (specified as an integer denoting milliseconds). + * @param {Scheduler} [scheduler] Scheduler to run the debounce timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The debounced sequence. + */ + debounce(dueTime: number, scheduler?: IScheduler): Observable; + + /** + * Ignores values from an observable sequence which are followed by another value within a computed throttle duration. + * @param {Function} durationSelector Selector function to retrieve a sequence indicating the throttle duration for each given element. + * @returns {Observable} The debounced sequence. + */ + debounce(debounceDurationSelector: (item: T) => ObservableOrPromise): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more windows which are produced based on timing information. + * @param {Number} timeSpan Length of each window (specified as an integer denoting milliseconds). + * @param {Mixed} [timeShiftOrScheduler] Interval between creation of consecutive windows (specified as an integer denoting milliseconds), or an optional scheduler parameter. If not specified, the time shift corresponds to the timeSpan parameter, resulting in non-overlapping adjacent windows. + * @param {Scheduler} [scheduler] Scheduler to run windowing timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence of windows. + */ + windowWithTime(timeSpan: number, timeShift: number, scheduler?: IScheduler): Observable>; + /** + * Projects each element of an observable sequence into zero or more windows which are produced based on timing information. + * @param {Number} timeSpan Length of each window (specified as an integer denoting milliseconds). + * @param {Mixed} [timeShiftOrScheduler] Interval between creation of consecutive windows (specified as an integer denoting milliseconds), or an optional scheduler parameter. If not specified, the time shift corresponds to the timeSpan parameter, resulting in non-overlapping adjacent windows. + * @param {Scheduler} [scheduler] Scheduler to run windowing timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence of windows. + */ + windowWithTime(timeSpan: number, scheduler?: IScheduler): Observable>; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into a window that is completed when either it's full or a given amount of time has elapsed. + * @param {Number} timeSpan Maximum time length of a window. + * @param {Number} count Maximum element count of a window. + * @param {Scheduler} [scheduler] Scheduler to run windowing timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence of windows. + */ + windowWithTimeOrCount(timeSpan: number, count: number, scheduler?: IScheduler): Observable>; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more buffers which are produced based on timing information. + * @param {Number} timeSpan Length of each buffer (specified as an integer denoting milliseconds). + * @param {Mixed} [timeShiftOrScheduler] Interval between creation of consecutive buffers (specified as an integer denoting milliseconds), or an optional scheduler parameter. If not specified, the time shift corresponds to the timeSpan parameter, resulting in non-overlapping adjacent buffers. + * @param {Scheduler} [scheduler] Scheduler to run buffer timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence of buffers. + */ + bufferWithTime(timeSpan: number, timeShift: number, scheduler?: IScheduler): Observable; + /** + * Projects each element of an observable sequence into zero or more buffers which are produced based on timing information. + * @param {Number} timeSpan Length of each buffer (specified as an integer denoting milliseconds). + * @param {Mixed} [timeShiftOrScheduler] Interval between creation of consecutive buffers (specified as an integer denoting milliseconds), or an optional scheduler parameter. If not specified, the time shift corresponds to the timeSpan parameter, resulting in non-overlapping adjacent buffers. + * @param {Scheduler} [scheduler] Scheduler to run buffer timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence of buffers. + */ + bufferWithTime(timeSpan: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into a buffer that is completed when either it's full or a given amount of time has elapsed. + * @param {Number} timeSpan Maximum time length of a buffer. + * @param {Number} count Maximum element count of a buffer. + * @param {Scheduler} [scheduler] Scheduler to run bufferin timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence of buffers. + */ + bufferWithTimeOrCount(timeSpan: number, count: number, scheduler?: IScheduler): Observable; + } + + export interface TimeInterval { + value: T; + interval: number; + } + + export interface Observable { + /** + * Records the time interval between consecutive values in an observable sequence. + * + * @example + * 1 - res = source.timeInterval(); + * 2 - res = source.timeInterval(Rx.Scheduler.timeout); + * + * @param [scheduler] Scheduler used to compute time intervals. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence with time interval information on values. + */ + timeInterval(scheduler?: IScheduler): Observable>; + } + + export interface Timestamp { + value: T; + timestamp: number; + } + + export interface Observable { + /** + * Records the timestamp for each value in an observable sequence. + * + * @example + * 1 - res = source.timestamp(); // produces { value: x, timestamp: ts } + * 2 - res = source.timestamp(Rx.Scheduler.default); + * + * @param {Scheduler} [scheduler] Scheduler used to compute timestamps. If not specified, the default scheduler is used. + * @returns {Observable} An observable sequence with timestamp information on values. + */ + timestamp(scheduler?: IScheduler): Observable>; + } + + export interface Observable { + /** + * Samples the observable sequence at each interval. + * + * @example + * 1 - res = source.sample(sampleObservable); // Sampler tick sequence + * 2 - res = source.sample(5000); // 5 seconds + * 2 - res = source.sample(5000, Rx.Scheduler.timeout); // 5 seconds + * + * @param {Mixed} intervalOrSampler Interval at which to sample (specified as an integer denoting milliseconds) or Sampler Observable. + * @param {Scheduler} [scheduler] Scheduler to run the sampling timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Sampled observable sequence. + */ + sample(intervalOrSampler: number, scheduler?: IScheduler): Observable; + /** + * Samples the observable sequence at each interval. + * + * @example + * 1 - res = source.sample(sampleObservable); // Sampler tick sequence + * 2 - res = source.sample(5000); // 5 seconds + * 2 - res = source.sample(5000, Rx.Scheduler.timeout); // 5 seconds + * + * @param {Mixed} intervalOrSampler Interval at which to sample (specified as an integer denoting milliseconds) or Sampler Observable. + * @param {Scheduler} [scheduler] Scheduler to run the sampling timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Sampled observable sequence. + */ + sample(sampler: Observable, scheduler?: IScheduler): Observable; + /** + * Samples the observable sequence at each interval. + * + * @example + * 1 - res = source.sample(sampleObservable); // Sampler tick sequence + * 2 - res = source.sample(5000); // 5 seconds + * 2 - res = source.sample(5000, Rx.Scheduler.timeout); // 5 seconds + * + * @param {Mixed} intervalOrSampler Interval at which to sample (specified as an integer denoting milliseconds) or Sampler Observable. + * @param {Scheduler} [scheduler] Scheduler to run the sampling timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Sampled observable sequence. + */ + throttleLatest(interval: number, scheduler?: IScheduler): Observable; + /** + * Samples the observable sequence at each interval. + * + * @example + * 1 - res = source.sample(sampleObservable); // Sampler tick sequence + * 2 - res = source.sample(5000); // 5 seconds + * 2 - res = source.sample(5000, Rx.Scheduler.timeout); // 5 seconds + * + * @param {Mixed} intervalOrSampler Interval at which to sample (specified as an integer denoting milliseconds) or Sampler Observable. + * @param {Scheduler} [scheduler] Scheduler to run the sampling timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Sampled observable sequence. + */ + throttleLatest(sampler: Observable, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Returns the source observable sequence or the other observable sequence if dueTime elapses. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) when a timeout occurs. + * @param {Scheduler} [scheduler] Scheduler to run the timeout timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(dueTime: Date, scheduler?: IScheduler): Observable; + + /** + * Returns the source observable sequence or the other observable sequence if dueTime elapses. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) when a timeout occurs. + * @param {Observable} [other] Sequence to return in case of a timeout. If not specified, a timeout error throwing sequence will be used. + * @param {Scheduler} [scheduler] Scheduler to run the timeout timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(dueTime: Date, other?: Observable, scheduler?: IScheduler): Observable; + /** + * Returns the source observable sequence or the other observable sequence if dueTime elapses. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) when a timeout occurs. + * @param {Observable} [other] Sequence to return in case of a timeout. If not specified, a timeout error throwing sequence will be used. + * @param {Scheduler} [scheduler] Scheduler to run the timeout timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(dueTime: number, scheduler?: IScheduler): Observable; + /** + * Returns the source observable sequence or the other observable sequence if dueTime elapses. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) when a timeout occurs. + * @param {Observable} [other] Sequence to return in case of a timeout. If not specified, a timeout error throwing sequence will be used. + * @param {Scheduler} [scheduler] Scheduler to run the timeout timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(dueTime: number, other?: Observable, scheduler?: IScheduler): Observable; + + /** + * Returns the source observable sequence, switching to the other observable sequence if a timeout is signaled. + * @param {Function} timeoutDurationSelector Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(timeoutdurationSelector: (item: T) => Observable): Observable; + + /** + * Returns the source observable sequence, switching to the other observable sequence if a timeout is signaled. + * @param {Function} timeoutDurationSelector Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + * @param {Observable} other Sequence to return in case of a timeout. If not provided, this is set to Observable.throwException(). + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(timeoutdurationSelector: (item: T) => Observable, other: Observable): Observable; + + /** + * Returns the source observable sequence, switching to the other observable sequence if a timeout is signaled. + * @param {Observable} [firstTimeout] Observable sequence that represents the timeout for the first element. If not provided, this defaults to Observable.never(). + * @param {Function} timeoutDurationSelector Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + * @param {Observable} [other] Sequence to return in case of a timeout. If not provided, this is set to Observable.throwException(). + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(firstTimeout: Observable, timeoutdurationSelector: (item: T) => Observable, other?: Observable): Observable; + } + + export interface ObservableStatic { + /** + * Generates an observable sequence by iterating a state from an initial state until the condition fails. + * + * @example + * res = source.generateWithAbsoluteTime(0, + * function (x) { return return true; }, + * function (x) { return x + 1; }, + * function (x) { return x; }, + * function (x) { return new Date(); } + * }); + * + * @param {Mixed} initialState Initial state. + * @param {Function} condition Condition to terminate generation (upon returning false). + * @param {Function} iterate Iteration step function. + * @param {Function} resultSelector Selector function for results produced in the sequence. + * @param {Function} timeSelector Time selector function to control the speed of values being produced each iteration, returning Date values. + * @param {Scheduler} [scheduler] Scheduler on which to run the generator loop. If not specified, the timeout scheduler is used. + * @returns {Observable} The generated sequence. + */ + generateWithAbsoluteTime( + initialState: TState, + condition: (state: TState) => boolean, + iterate: (state: TState) => TState, + resultSelector: (state: TState) => TResult, + timeSelector: (state: TState) => Date, + scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Generates an observable sequence by iterating a state from an initial state until the condition fails. + * + * @example + * res = source.generateWithRelativeTime(0, + * function (x) { return return true; }, + * function (x) { return x + 1; }, + * function (x) { return x; }, + * function (x) { return 500; } + * ); + * + * @param {Mixed} initialState Initial state. + * @param {Function} condition Condition to terminate generation (upon returning false). + * @param {Function} iterate Iteration step function. + * @param {Function} resultSelector Selector function for results produced in the sequence. + * @param {Function} timeSelector Time selector function to control the speed of values being produced each iteration, returning integer values denoting milliseconds. + * @param {Scheduler} [scheduler] Scheduler on which to run the generator loop. If not specified, the timeout scheduler is used. + * @returns {Observable} The generated sequence. + */ + generateWithRelativeTime( + initialState: TState, + condition: (state: TState) => boolean, + iterate: (state: TState) => TState, + resultSelector: (state: TState) => TResult, + timeSelector: (state: TState) => number, + scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Time shifts the observable sequence by delaying the subscription with the specified relative time duration, using the specified scheduler to run timers. + * + * @example + * 1 - res = source.delaySubscription(5000); // 5s + * 2 - res = source.delaySubscription(5000, Rx.Scheduler.default); // 5 seconds + * + * @param {Number} dueTime Relative or absolute time shift of the subscription. + * @param {Scheduler} [scheduler] Scheduler to run the subscription delay timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Time-shifted sequence. + */ + delaySubscription(dueTime: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Skips elements for the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + * + * 1 - res = source.skipLastWithTime(5000); + * 2 - res = source.skipLastWithTime(5000, scheduler); + * + * @description + * This operator accumulates a queue with a length enough to store elements received during the initial duration window. + * As more elements are received, elements older than the specified duration are taken from the queue and produced on the + * result sequence. This causes elements to be delayed with duration. + * @param {Number} duration Duration for skipping elements from the end of the sequence. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout + * @returns {Observable} An observable sequence with the elements skipped during the specified duration from the end of the source sequence. + */ + skipLastWithTime(duration: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Returns elements within the specified duration from the end of the observable source sequence, using the specified schedulers to run timers and to drain the collected elements. + * @description + * This operator accumulates a queue with a length enough to store elements received during the initial duration window. + * As more elements are received, elements older than the specified duration are taken from the queue and produced on the + * result sequence. This causes elements to be delayed with duration. + * @param {Number} duration Duration for taking elements from the end of the sequence. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout. + * @returns {Observable} An observable sequence with the elements taken during the specified duration from the end of the source sequence. + */ + takeLastWithTime(duration: number, timerScheduler?: IScheduler, loopScheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Returns an array with the elements within the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + * @description + * This operator accumulates a queue with a length enough to store elements received during the initial duration window. + * As more elements are received, elements older than the specified duration are taken from the queue and produced on the + * result sequence. This causes elements to be delayed with duration. + * @param {Number} duration Duration for taking elements from the end of the sequence. + * @param {Scheduler} scheduler Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout. + * @returns {Observable} An observable sequence containing a single array with the elements taken during the specified duration from the end of the source sequence. + */ + takeLastBufferWithTime(duration: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Takes elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + * + * @example + * 1 - res = source.takeWithTime(5000, [optional scheduler]); + * @description + * This operator accumulates a queue with a length enough to store elements received during the initial duration window. + * As more elements are received, elements older than the specified duration are taken from the queue and produced on the + * result sequence. This causes elements to be delayed with duration. + * @param {Number} duration Duration for taking elements from the start of the sequence. + * @param {Scheduler} scheduler Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout. + * @returns {Observable} An observable sequence with the elements taken during the specified duration from the start of the source sequence. + */ + takeWithTime(duration: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Skips elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + * + * @example + * 1 - res = source.skipWithTime(5000, [optional scheduler]); + * + * @description + * Specifying a zero value for duration doesn't guarantee no elements will be dropped from the start of the source sequence. + * This is a side-effect of the asynchrony introduced by the scheduler, where the action that causes callbacks from the source sequence to be forwarded + * may not execute immediately, despite the zero due time. + * + * Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the duration. + * @param {Number} duration Duration for skipping elements from the start of the sequence. + * @param {Scheduler} scheduler Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout. + * @returns {Observable} An observable sequence with the elements skipped during the specified duration from the start of the source sequence. + */ + skipWithTime(duration: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Skips elements from the observable source sequence until the specified start time, using the specified scheduler to run timers. + * Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the start time. + * + * @examples + * 1 - res = source.skipUntilWithTime(new Date(), [scheduler]); + * 2 - res = source.skipUntilWithTime(5000, [scheduler]); + * @param {Date|Number} startTime Time to start taking elements from the source sequence. If this value is less than or equal to Date(), no elements will be skipped. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout. + * @returns {Observable} An observable sequence with the elements skipped until the specified start time. + */ + skipUntilWithTime(startTime: Date, scheduler?: IScheduler): Observable; + /** + * Skips elements from the observable source sequence until the specified start time, using the specified scheduler to run timers. + * Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the start time. + * + * @examples + * 1 - res = source.skipUntilWithTime(new Date(), [scheduler]); + * 2 - res = source.skipUntilWithTime(5000, [scheduler]); + * @param {Date|Number} startTime Time to start taking elements from the source sequence. If this value is less than or equal to Date(), no elements will be skipped. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout. + * @returns {Observable} An observable sequence with the elements skipped until the specified start time. + */ + skipUntilWithTime(duration: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Takes elements for the specified duration until the specified end time, using the specified scheduler to run timers. + * @param {Number | Date} endTime Time to stop taking elements from the source sequence. If this value is less than or equal to new Date(), the result stream will complete immediately. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. + * @returns {Observable} An observable sequence with the elements taken until the specified end time. + */ + takeUntilWithTime(endTime: Date, scheduler?: IScheduler): Observable; + /** + * Takes elements for the specified duration until the specified end time, using the specified scheduler to run timers. + * @param {Number | Date} endTime Time to stop taking elements from the source sequence. If this value is less than or equal to new Date(), the result stream will complete immediately. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. + * @returns {Observable} An observable sequence with the elements taken until the specified end time. + */ + takeUntilWithTime(duration: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Returns an Observable that emits only the first item emitted by the source Observable during sequential time windows of a specified duration. + * @param {Number} windowDuration time to wait before emitting another item after emitting the last item + * @param {Scheduler} [scheduler] the Scheduler to use internally to manage the timers that handle timeout for each item. If not provided, defaults to Scheduler.timeout. + * @returns {Observable} An Observable that performs the throttle operation. + */ + throttle(windowDuration: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Executes a transducer to transform the observable sequence + * @param {Transducer} transducer A transducer to execute + * @returns {Observable} An Observable sequence containing the results from the transducer. + */ + transduce(transducer: any): any; + //TODO: Setup transducer + } + + export interface Observable { + /** + * Performs a exclusive waiting for the first to finish before subscribing to another observable. + * Observables that come in between subscriptions will be dropped on the floor. + * @returns {Observable} A exclusive observable with only the results that happen when subscribed. + */ + switchFirst(): T; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + selectSwitchFirst(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + selectSwitchFirst(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + selectSwitchFirst(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + selectSwitchFirst(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + flatMapFirst(selector: _ValueOrSelector>): Observable; + + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + flatMapFirst(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + flatMapFirst(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + flatMapFirst(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + } + + export interface Observable { + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectManyWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectManyWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectManyWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectManyWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMapWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>): Observable; + + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMapWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMapWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMapWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + } + + export interface VirtualTimeScheduler extends IScheduler { + /** + * Adds a relative time value to an absolute time value. + * @param {Number} absolute Absolute virtual time value. + * @param {Number} relative Relative virtual time value to add. + * @return {Number} Resulting absolute virtual time sum value. + */ + add(from: TAbsolute, by: TRelative): TAbsolute; + + /** + * Converts an absolute time to a number + * @param {Any} The absolute time. + * @returns {Number} The absolute time in ms + */ + toAbsoluteTime(duetime: TAbsolute): number; + + /** + * Converts the TimeSpan value to a relative virtual time value. + * @param {Number} timeSpan TimeSpan value to convert. + * @return {Number} Corresponding relative virtual time value. + */ + toRelativeTime(duetime: number): TRelative; + + /** + * Starts the virtual time scheduler. + */ + start(): IDisposable; + + /** + * Stops the virtual time scheduler. + */ + stop(): void; + + /** + * Advances the scheduler's clock to the specified time, running all work till that point. + * @param {Number} time Absolute time to advance the scheduler's clock to. + */ + advanceTo(time: TAbsolute): void; + + /** + * Advances the scheduler's clock by the specified relative time, running all work scheduled for that timespan. + * @param {Number} time Relative time to advance the scheduler's clock by. + */ + advanceBy(time: TRelative): void; + + /** + * Advances the scheduler's clock by the specified relative time. + * @param {Number} time Relative time to advance the scheduler's clock by. + */ + sleep(time: TRelative): void; + + isEnabled: boolean; + + /** + * Gets the next scheduled item to be executed. + * @returns {ScheduledItem} The next scheduled item. + */ + getNext(): internals.ScheduledItem; + } + + export interface HistoricalScheduler extends VirtualTimeScheduler { + } + + export var HistoricalScheduler: { + /** + * Creates a new historical scheduler with the specified initial clock value. + * @constructor + * @param {Number} initialClock Initial value for the clock. + * @param {Function} comparer Comparer to determine causality of events based on absolute time. + */ + new (initialClock: number, comparer: _Comparer): HistoricalScheduler; + }; + + export interface Subscription { + /** + * Checks whether the given subscription is equal to the current instance. + * @param other Subscription object to check for equality. + * @returns {Boolean} true if both objects are equal; false otherwise. + */ + equals(other: Subscription): boolean; + /** + * Returns a string representation of the current Subscription value. + * @returns {String} String representation of the current Subscription value. + */ + toString(): string; + } + + interface SubscriptionStatic { + /** + * Creates a new subscription object with the given virtual subscription and unsubscription time. + * + * @constructor + * @param {Number} subscribe Virtual time at which the subscription occurred. + * @param {Number} unsubscribe Virtual time at which the unsubscription occurred. + */ + new (subscribeAt: number, unsubscribeAt?: number): Subscription; + } + + export var Subscription: SubscriptionStatic; + + export interface Recorded { + /** + * Checks whether the given recorded object is equal to the current instance. + * + * @param {Recorded} other Recorded object to check for equality. + * @returns {Boolean} true if both objects are equal; false otherwise. + */ + equals(other: Recorded): boolean; + /** + * Returns a string representation of the current Recorded value. + * + * @returns {String} String representation of the current Recorded value. + */ + toString(): string; + time: number; + value: any; + } + + interface RecordedStatic { + /** + * Creates a new object recording the production of the specified value at the given virtual time. + * + * @constructor + * @param {Number} time Virtual time the value was produced on. + * @param {Mixed} value Value that was produced. + * @param {Function} comparer An optional comparer. + */ + new (time: number, value: any, equalityComparer?: _Comparer): Recorded; + } + + export var Recorded: RecordedStatic; + + export var ReactiveTest: { + /** Default virtual time used for creation of observable sequences in unit tests. */ + created: number; + /** Default virtual time used to subscribe to observable sequences in unit tests. */ + subscribed: number; + /** Default virtual time used to dispose subscriptions in unit tests. */ + disposed: number; + + /** + * Factory method for an OnNext notification record at a given time with a given value or a predicate function. + * + * 1 - ReactiveTest.onNext(200, 42); + * 2 - ReactiveTest.onNext(200, function (x) { return x.length == 2; }); + * + * @param ticks Recorded virtual time the OnNext notification occurs. + * @param value Recorded value stored in the OnNext notification or a predicate. + * @return Recorded OnNext notification. + */ + onNext(ticks: number, value: any): Recorded; + /** + * Factory method for an OnNext notification record at a given time with a given value or a predicate function. + * + * 1 - ReactiveTest.onNext(200, 42); + * 2 - ReactiveTest.onNext(200, function (x) { return x.length == 2; }); + * + * @param ticks Recorded virtual time the OnNext notification occurs. + * @param value Recorded value stored in the OnNext notification or a predicate. + * @return Recorded OnNext notification. + */ + onNext(ticks: number, predicate: (value: any) => boolean): Recorded; + /** + * Factory method for an OnError notification record at a given time with a given error. + * + * 1 - ReactiveTest.onNext(200, new Error('error')); + * 2 - ReactiveTest.onNext(200, function (e) { return e.message === 'error'; }); + * + * @param ticks Recorded virtual time the OnError notification occurs. + * @param exception Recorded exception stored in the OnError notification. + * @return Recorded OnError notification. + */ + onError(ticks: number, exception: any): Recorded; + /** + * Factory method for an OnError notification record at a given time with a given error. + * + * 1 - ReactiveTest.onNext(200, new Error('error')); + * 2 - ReactiveTest.onNext(200, function (e) { return e.message === 'error'; }); + * + * @param ticks Recorded virtual time the OnError notification occurs. + * @param exception Recorded exception stored in the OnError notification. + * @return Recorded OnError notification. + */ + onError(ticks: number, predicate: (exception: any) => boolean): Recorded; + /** + * Factory method for an OnCompleted notification record at a given time. + * + * @param ticks Recorded virtual time the OnCompleted notification occurs. + * @return Recorded OnCompleted notification. + */ + onCompleted(ticks: number): Recorded; + + /** + * Factory method for a subscription record based on a given subscription and disposal time. + * + * @param start Virtual time indicating when the subscription was created. + * @param end Virtual time indicating when the subscription was disposed. + * @return Subscription object. + */ + subscribe(subscribeAt: number, unsubscribeAt?: number): Subscription; + } + + export interface MockObserver extends Observer { + messages: Recorded[]; + } + + interface MockObserverStatic extends ObserverStatic { + new (scheduler: IScheduler): MockObserver; + } + + export var MockObserver: MockObserverStatic; + + + export interface TestScheduler extends VirtualTimeScheduler { + /** + * Creates a cold observable using the specified timestamped notification messages either as an array or arguments. + * @param messages Notifications to surface through the created sequence at their specified virtual time offsets from the sequence subscription time. + * @return Cold observable sequence that can be used to assert the timing of subscriptions and notifications. + */ + createColdObservable(...records: Recorded[]): Observable; + /** + * Creates a hot observable using the specified timestamped notification messages either as an array or arguments. + * @param messages Notifications to surface through the created sequence at their specified absolute virtual times. + * @return Hot observable sequence that can be used to assert the timing of subscriptions and notifications. + */ + createHotObservable(...records: Recorded[]): Observable; + /** + * Creates an observer that records received notification messages and timestamps those. + * @return Observer that can be used to assert the timing of received notifications. + */ + createObserver(): MockObserver; + + /** + * Creates a resolved promise with the given value and ticks + * @param {Number} ticks The absolute time of the resolution. + * @param {Any} value The value to yield at the given tick. + * @returns {MockPromise} A mock Promise which fulfills with the given value. + */ + createResolvedPromise(ticks: number, value: T): IPromise; + /** + * Creates a rejected promise with the given reason and ticks + * @param {Number} ticks The absolute time of the resolution. + * @param {Any} reason The reason for rejection to yield at the given tick. + * @returns {MockPromise} A mock Promise which rejects with the given reason. + */ + createRejectedPromise(ticks: number, value: T): IPromise; + + /** + * Starts the test scheduler and uses the specified virtual times to invoke the factory function, subscribe to the resulting sequence, and dispose the subscription. + * + * @param create Factory method to create an observable sequence. + * @param created Virtual time at which to invoke the factory to create an observable sequence. + * @param subscribed Virtual time at which to subscribe to the created observable sequence. + * @param disposed Virtual time at which to dispose the subscription. + * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. + */ + startWithTiming(create: () => Observable, createdAt: number, subscribedAt: number, disposedAt: number): MockObserver; + /** + * Starts the test scheduler and uses the specified virtual time to dispose the subscription to the sequence obtained through the factory function. + * Default virtual times are used for factory invocation and sequence subscription. + * + * @param create Factory method to create an observable sequence. + * @param disposed Virtual time at which to dispose the subscription. + * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. + */ + startWithDispose(create: () => Observable, disposedAt: number): MockObserver; + /** + * Starts the test scheduler and uses default virtual times to invoke the factory function, to subscribe to the resulting sequence, and to dispose the subscription. + * + * @param create Factory method to create an observable sequence. + * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. + */ + startWithCreate(create: () => Observable): MockObserver; + } + + export var TestScheduler: { + new (): TestScheduler; + } + + export interface AnonymousObservable extends Observable { } + + export interface GroupedObservable extends Observable { + key: TKey; + underlyingObservable: Observable; + } + + export interface AsyncSubject extends Subject { } + + interface AsyncSubjectStatic { + /** + * Creates a subject that can only receive one value and that value is cached for all future observations. + * @constructor + */ + new (): AsyncSubject; + } + + /** + * Represents the result of an asynchronous operation. + * The last value before the OnCompleted notification, or the error received through OnError, is sent to all subscribed observers. + */ + export var AsyncSubject: AsyncSubjectStatic; + + export interface BehaviorSubject extends Subject { + /** + * Gets the current value or throws an exception. + * Value is frozen after onCompleted is called. + * After onError is called always throws the specified exception. + * An exception is always thrown after dispose is called. + * @returns {Mixed} The initial value passed to the constructor until onNext is called; after which, the last value passed to onNext. + */ + getValue(): T; + } + + interface BehaviorSubjectStatic { + /** + * Initializes a new instance of the BehaviorSubject class which creates a subject that caches its last value and starts with the specified value. + * @param {Mixed} value Initial value sent to observers when no other value has been received by the subject yet. + */ + new (initialValue: T): BehaviorSubject; + } + + /** + * Represents a value that changes over time. + * Observers can subscribe to the subject to receive the last (or initial) value and all subsequent notifications. + */ + export var BehaviorSubject: BehaviorSubjectStatic; + + export interface ReplaySubject extends Subject { } + + interface ReplaySubjectStatic { + /** + * Initializes a new instance of the ReplaySubject class with the specified buffer size, window size and scheduler. + * @param {Number} [bufferSize] Maximum element count of the replay buffer. + * @param {Number} [windowSize] Maximum time length of the replay buffer. + * @param {Scheduler} [scheduler] Scheduler the observers are invoked on. + */ + new (bufferSize?: number, window?: number, scheduler?: IScheduler): ReplaySubject; + } + + /** + * Represents an object that is both an observable sequence as well as an observer. + * Each notification is broadcasted to all subscribed and future observers, subject to buffer trimming policies. + */ + export var ReplaySubject: ReplaySubjectStatic; + + export interface AnonymousSubject extends Subject { } + + interface AnonymousSubjectStatic { + /** + * Creates a subject that can only receive one value and that value is cached for all future observations. + * @constructor + */ + new (): AnonymousSubject; + } + + /** + * Represents the result of an asynchronous operation. + * The last value before the OnCompleted notification, or the error received through OnError, is sent to all subscribed observers. + */ + export var AnonymousSubject: AnonymousSubjectStatic; + + /** + * Used to pause and resume streams. + */ + export interface Pauser { + /** + * Pauses the underlying sequence. + */ + pause(): void; + + /** + * Resumes the underlying sequence. + */ + resume(): void; + } + +} + +declare module "rx" { export = Rx; } +declare module "rx.all" { export = Rx; } diff --git a/node_modules/rx/ts/rx.all.es6.d.ts b/node_modules/rx/ts/rx.all.es6.d.ts new file mode 100644 index 0000000..15df514 --- /dev/null +++ b/node_modules/rx/ts/rx.all.es6.d.ts @@ -0,0 +1,4997 @@ +declare module Rx { + + // Type alias for observables and promises + export type ObservableOrPromise = IObservable | Observable | Promise; + + export type ArrayLike = Array | { length: number;[index: number]: T; }; + + // Type alias for arrays and array like objects + export type ArrayOrIterable = ArrayLike | Iterable; + + /** + * Promise A+ + */ + export interface Promise extends PromiseLike { } + + /** + * Promise A+ + */ + export interface IPromise extends PromiseLike { } + + /** + * Represents a push-style collection. + */ + export interface IObservable { } + + /** + * Represents a push-style collection. + */ + export interface Observable extends IObservable { } + + export module internals { + export interface EmptyError extends Error { message: string; } + export interface EmptyErrorStatic { new (): EmptyError; } + + export interface ObjectDisposedError extends Error { message: string; } + export interface ObjectDisposedErrorStatic { new (): ObjectDisposedError; } + + export interface ArgumentOutOfRangeError extends Error { message: string; } + export interface ArgumentOutOfRangeErrorStatic { new (): ArgumentOutOfRangeError; } + + export interface NotSupportedError extends Error { message: string; } + export interface NotSupportedErrorStatic { new (): NotSupportedError; } + + export interface NotImplementedError extends Error { message: string; } + export interface NotImplementedErrorStatic { new (): NotImplementedError; } + } + + export module helpers { + export var notImplemented: () => internals.NotImplementedError; + export var notSupported: () => internals.NotSupportedError; + } + + export module internals { + export var bindCallback: (func: Function, thisArg: any, argCount: number) => Function; + } + + export module internals { + export var isEqual : (left: any, right: any) => boolean; + } + + export interface IDisposable { + dispose(): void; + } + + export interface Disposable extends IDisposable { + /** Is this value disposed. */ + isDisposed?: boolean; + } + + interface DisposableStatic { + /** + * Provides a set of static methods for creating Disposables. + * @param {Function} dispose Action to run during the first call to dispose. The action is guaranteed to be run at most once. + */ + new (action: () => void): Disposable; + + /** + * Creates a disposable object that invokes the specified action when disposed. + * @param {Function} dispose Action to run during the first call to dispose. The action is guaranteed to be run at most once. + * @return {Disposable} The disposable object that runs the given action upon disposal. + */ + create(action: () => void): Disposable; + + /** + * Gets the disposable that does nothing when disposed. + */ + empty: IDisposable; + + /** + * Validates whether the given object is a disposable + * @param {Object} Object to test whether it has a dispose method + * @returns {Boolean} true if a disposable object, else false. + */ + isDisposable(d: any): boolean; + } + + /** + * Provides a set of static methods for creating Disposables. + * @param {Function} dispose Action to run during the first call to dispose. The action is guaranteed to be run at most once. + */ + export var Disposable: DisposableStatic; + + export module config { + export var Promise: { new (resolver: (resolvePromise: (value: T) => void, rejectPromise: (reason: any) => void) => void): IPromise; }; + } + + export module helpers { + export var noop: () => void; + export var notDefined: (value: any) => boolean; + export var identity: (value: T) => T; + export var defaultNow: () => number; + export var defaultComparer: (left: any, right: any) => boolean; + export var defaultSubComparer: (left: any, right: any) => number; + export var defaultKeySerializer: (key: any) => string; + export var defaultError: (err: any) => void; + export var isPromise: (p: any) => boolean; + export var asArray: (...args: T[]) => T[]; + export var not: (value: any) => boolean; + export var isFunction: (value: any) => boolean; + } + + export type _Selector = (value: T, index: number, observable: Observable) => TResult; + export type _ValueOrSelector = TResult | _Selector; + export type _Predicate = _Selector; + export type _Comparer = (value1: T, value2: T) => TResult; + export type _Accumulator = (acc: TAcc, value: T) => TAcc; + + export module special { + export type _FlatMapResultSelector = (value: T1, selectorValue: T2, index: number, selectorOther: number) => TResult; + } + + export interface IObservable { + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(observer: IObserver): IDisposable; + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): IDisposable; + } + + export interface Observable { + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(observer: IObserver): IDisposable; + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): IDisposable; + + /** + * Subscribes to the next value in the sequence with an optional "this" argument. + * @param {Function} onNext The function to invoke on each element in the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Disposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribeOnNext(onNext: (value: T) => void, thisArg?: any): IDisposable; + /** + * Subscribes to an exceptional condition in the sequence with an optional "this" argument. + * @param {Function} onError The function to invoke upon exceptional termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Disposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribeOnError(onError: (exception: any) => void, thisArg?: any): IDisposable; + /** + * Subscribes to the next value in the sequence with an optional "this" argument. + * @param {Function} onCompleted The function to invoke upon graceful termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Disposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribeOnCompleted(onCompleted: () => void, thisArg?: any): IDisposable; + + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + forEach(observer: IObserver): IDisposable; + + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + forEach(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): IDisposable; + } + + export interface ObservableStatic { + /** + * Determines whether the given object is an Observable + * @param {Any} An object to determine whether it is an Observable + * @returns {Boolean} true if an Observable, else false. + */ + isObservable(o: any): boolean; + } + + export var Observable: ObservableStatic; + + export module internals { + export var inherits: (child: any, parent: any) => void; + export var addProperties: (obj: any, ...sources: any[]) => void; + export var addRef: (xs: Observable, r: { getDisposable(): IDisposable; }) => Observable; + } + + export module internals { + export interface ScheduledItem { + scheduler: IScheduler; + state: TTime; + action: (scheduler: IScheduler, state: any) => IDisposable; + dueTime: TTime; + comparer: (x: TTime, y: TTime) => number; + disposable: SingleAssignmentDisposable; + + invoke(): void; + compareTo(other: ScheduledItem): number; + isCancelled(): boolean; + invokeCore(): IDisposable; + } + + interface ScheduledItemStatic { + new (scheduler: IScheduler, state: any, action: (scheduler: IScheduler, state: any) => IDisposable, dueTime: TTime, comparer?: _Comparer):ScheduledItem; + } + + export var ScheduledItem: ScheduledItemStatic + } + + export module internals { + // Priority Queue for Scheduling + export interface PriorityQueue { + length: number; + + isHigherPriority(left: number, right: number): boolean; + percolate(index: number): void; + heapify(index: number): void; + peek(): ScheduledItem; + removeAt(index: number): void; + dequeue(): ScheduledItem; + enqueue(item: ScheduledItem): void; + remove(item: ScheduledItem): boolean; + } + + interface PriorityQueueStatic { + new (capacity: number) : PriorityQueue; + count: number; + } + + export var PriorityQueue : PriorityQueueStatic; + } + + /** + * Represents a group of disposable resources that are disposed together. + * @constructor + */ + export interface CompositeDisposable extends Disposable { + /** + * Adds a disposable to the CompositeDisposable or disposes the disposable if the CompositeDisposable is disposed. + * @param {Mixed} item Disposable to add. + */ + add(item: IDisposable): void; + + /** + * Removes and disposes the first occurrence of a disposable from the CompositeDisposable. + * @param {Mixed} item Disposable to remove. + * @returns {Boolean} true if found; false otherwise. + */ + remove(item: IDisposable): void; + } + + interface CompositeDisposableStatic { + /** + * Represents a group of disposable resources that are disposed together. + * @constructor + */ + new (...disposables: Rx.IDisposable[]): CompositeDisposable; + /** + * Represents a group of disposable resources that are disposed together. + * @constructor + */ + new(disposables: Rx.IDisposable[]): CompositeDisposable; + } + + export var CompositeDisposable: CompositeDisposableStatic; + + export interface SingleAssignmentDisposable { + /** Performs the task of cleaning up resources. */ + dispose(): void; + + /** Is this value disposed. */ + isDisposed: boolean; + + getDisposable(): IDisposable; + + setDisposable(value: IDisposable): void; + } + + interface SingleAssignmentDisposableStatic { + new() : SingleAssignmentDisposable; + } + + export var SingleAssignmentDisposable : SingleAssignmentDisposableStatic; + + export interface SerialDisposable { + /** Performs the task of cleaning up resources. */ + dispose(): void; + + /** Is this value disposed. */ + isDisposed: boolean; + + getDisposable(): IDisposable; + + setDisposable(value: IDisposable): void; + } + + interface SerialDisposableStatic { + new() : SerialDisposable; + } + + export var SerialDisposable : SerialDisposableStatic; + + /** + * Represents a disposable resource that only disposes its underlying disposable resource when all dependent disposable objects have been disposed. + */ + export interface RefCountDisposable extends Disposable { + + /** Performs the task of cleaning up resources. */ + dispose(): void; + + /** Is this value disposed. */ + isDisposed: boolean; + + /** + * Returns a dependent disposable that when disposed decreases the refcount on the underlying disposable. + * @returns {Disposable} A dependent disposable contributing to the reference count that manages the underlying disposable's lifetime. + */ + getDisposable(): IDisposable; + } + + interface RefCountDisposableStatic { + /** + * Initializes a new instance of the RefCountDisposable with the specified disposable. + * @constructor + * @param {Disposable} disposable Underlying disposable. + */ + new(disposable: IDisposable): RefCountDisposable; + } + + export var RefCountDisposable : RefCountDisposableStatic; + + export interface IScheduler { + /** Gets the current time according to the local machine's system clock. */ + now(): number; + + /** + * Schedules an action to be executed. + * @param state State passed to the action to be executed. + * @param {Function} action Action to be executed. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + schedule(state: TState, action: (scheduler: IScheduler, state: TState) => IDisposable): IDisposable; + + /** + * Schedules an action to be executed after dueTime. + * @param state State passed to the action to be executed. + * @param {Function} action Action to be executed. + * @param {Number} dueTime Relative time after which to execute the action. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + scheduleFuture(state: TState, dueTime: number | Date, action: (scheduler: IScheduler, state: TState) => IDisposable): IDisposable; + } + + export interface SchedulerStatic { + /** Gets the current time according to the local machine's system clock. */ + now(): number; + + /** + * Normalizes the specified TimeSpan value to a positive value. + * @param {Number} timeSpan The time span value to normalize. + * @returns {Number} The specified TimeSpan value if it is zero or positive; otherwise, 0 + */ + normalize(timeSpan: number): number; + + /** Determines whether the given object is a scheduler */ + isScheduler(s: any): boolean; + } + + /** Provides a set of static properties to access commonly used schedulers. */ + export var Scheduler: SchedulerStatic; + + export interface IScheduler { + /** + * Schedules an action to be executed recursively. + * @param {Mixed} state State passed to the action to be executed. + * @param {Function} action Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in recursive invocation state. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + scheduleRecursive(state: TState, action: (state: TState, action: (state: TState) => void) => void): IDisposable; + + /** + * Schedules an action to be executed recursively after a specified relative due time. + * @param {Mixed} state State passed to the action to be executed. + * @param {Function} action Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in the recursive due time and invocation state. + * @param {Number}dueTime Relative time after which to execute the action for the first time. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + scheduleRecursiveFuture(state: TState, dueTime: TTime, action: (state: TState, action: (state: TState, dueTime: TTime) => void) => void): IDisposable; + } + + export interface IScheduler { + /** + * Schedules a periodic piece of work by dynamically discovering the scheduler's capabilities. The periodic task will be scheduled using window.setInterval for the base implementation. + * @param {Mixed} state Initial state passed to the action upon the first iteration. + * @param {Number} period Period for running the work periodically. + * @param {Function} action Action to be executed, potentially updating the state. + * @returns {Disposable} The disposable object used to cancel the scheduled recurring action (best effort). + */ + schedulePeriodic(state: TState, period: number, action: (state: TState) => TState): IDisposable; + } + + export interface IScheduler { + /** + * Returns a scheduler that wraps the original scheduler, adding exception handling for scheduled actions. + * @param {Function} handler Handler that's run if an exception is caught. The exception will be rethrown if the handler returns false. + * @returns {Scheduler} Wrapper around the original scheduler, enforcing exception handling. + */ + catch(handler: Function): IScheduler; + } + + export module internals { + export interface SchedulePeriodicRecursive { + start(): IDisposable; + } + + interface SchedulePeriodicRecursiveStatic { + new (scheduler: any, state: any, period: any, action: any) : SchedulePeriodicRecursive; + } + + export var SchedulePeriodicRecursive: SchedulePeriodicRecursiveStatic; + } + + export interface SchedulerStatic { + immediate: IScheduler; + } + + export interface ICurrentThreadScheduler extends IScheduler { + scheduleRequired(): boolean; + } + + export interface SchedulerStatic { + currentThread: ICurrentThreadScheduler; + } + + export interface SchedulerStatic { + default: IScheduler; + async: IScheduler; + } + + /** + * Supports push-style iteration over an observable sequence. + */ + export interface IObserver { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + } + + export interface Observer { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + } + + export interface ObserverStatic { + /** + * Creates an observer from the specified OnNext, along with optional OnError, and OnCompleted actions. + * @param {Function} [onNext] Observer's OnNext action implementation. + * @param {Function} [onError] Observer's OnError action implementation. + * @param {Function} [onCompleted] Observer's OnCompleted action implementation. + * @returns {Observer} The observer object implemented using the given actions. + */ + create(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): Observer; + } + + /** + * Supports push-style iteration over an observable sequence. + */ + export var Observer: ObserverStatic; + + /** + * Represents a notification to an observer. + */ + export interface Notification { + /** + * Invokes the delegate corresponding to the notification or the observer's method corresponding to the notification and returns the produced result. + * + * @memberOf Notification + * @param {Any} observerOrOnNext Delegate to invoke for an OnNext notification or Observer to invoke the notification on.. + * @param {Function} onError Delegate to invoke for an OnError notification. + * @param {Function} onCompleted Delegate to invoke for an OnCompleted notification. + * @returns {Any} Result produced by the observation. + */ + accept(observer: IObserver): void; + /** + * Invokes the delegate corresponding to the notification or the observer's method corresponding to the notification and returns the produced result. + * + * @memberOf Notification + * @param {Any} observerOrOnNext Delegate to invoke for an OnNext notification or Observer to invoke the notification on.. + * @param {Function} onError Delegate to invoke for an OnError notification. + * @param {Function} onCompleted Delegate to invoke for an OnCompleted notification. + * @returns {Any} Result produced by the observation. + */ + accept(onNext: (value: T) => TResult, onError: (exception: any) => TResult, onCompleted: () => TResult): TResult; + + /** + * Returns an observable sequence with a single notification. + * + * @memberOf Notifications + * @param {Scheduler} [scheduler] Scheduler to send out the notification calls on. + * @returns {Observable} The observable sequence that surfaces the behavior of the notification upon subscription. + */ + toObservable(scheduler?: IScheduler): Observable; + + hasValue: boolean; + equals(other: Notification): boolean; + kind: string; + value: T; + error: any; + } + + interface NotificationStatic { + new (kind: any, value: any, exception: any, accept: any, acceptObservable: any, toString: any) : Notification; + + /** + * Creates an object that represents an OnNext notification to an observer. + * @param {Any} value The value contained in the notification. + * @returns {Notification} The OnNext notification containing the value. + */ + createOnNext(value: T): Notification; + /** + * Creates an object that represents an OnError notification to an observer. + * @param {Any} error The exception contained in the notification. + * @returns {Notification} The OnError notification containing the exception. + */ + createOnError(exception: any): Notification; + /** + * Creates an object that represents an OnCompleted notification to an observer. + * @returns {Notification} The OnCompleted notification. + */ + createOnCompleted(): Notification; + } + + export var Notification : NotificationStatic; + + export interface Observer { + makeSafe(disposable: IDisposable): Observer; + } + + export module internals { + /** + * Abstract base class for implementations of the Observer class. + * This base class enforces the grammar of observers where OnError and OnCompleted are terminal messages. + */ + export interface AbstractObserver extends Rx.IObserver, Rx.IDisposable { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + + isStopped: boolean; + + /** + * Disposes the observer, causing it to transition to the stopped state. + */ + dispose(): void; + + fail(e: any): boolean; + + // Must be implemented by other observers + next(value: T): void; + error(error: any): void; + completed(): void; + } + + interface AbstractObserverStatic { + new (): AbstractObserver; + } + + export var AbstractObserver: AbstractObserverStatic + } + + /** + * Class to create an Observer instance from delegate-based implementations of the on* methods. + */ + export interface AnonymousObserver extends Observer { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + } + + interface AnonymousObserverStatic { + /** + * Creates an observer from the specified OnNext, OnError, and OnCompleted actions. + * @param {Any} onNext Observer's OnNext action implementation. + * @param {Any} onError Observer's OnError action implementation. + * @param {Any} onCompleted Observer's OnCompleted action implementation. + */ + new (onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): AnonymousObserver; + } + + export var AnonymousObserver : AnonymousObserverStatic; + + export interface CheckedObserver extends Observer { + checkAccess(): void; + } + + export module internals { + export interface ScheduledObserver extends Observer { + ensureActive(): void; + } + } + + export interface Observable { + /** + * Wraps the source sequence in order to run its observer callbacks on the specified scheduler. + * + * This only invokes observer callbacks on a scheduler. In case the subscription and/or unsubscription actions have side-effects + * that require to be run on a scheduler, use subscribeOn. + * + * @param {Scheduler} scheduler Scheduler to notify observers on. + * @returns {Observable} The source sequence whose observations happen on the specified scheduler. + */ + observeOn(scheduler: IScheduler): Observable; + } + + export interface Observable { + /** + * Wraps the source sequence in order to run its subscription and unsubscription logic on the specified scheduler. This operation is not commonly used; + * see the remarks section for more information on the distinction between subscribeOn and observeOn. + + * This only performs the side-effects of subscription and unsubscription on the specified scheduler. In order to invoke observer + * callbacks on a scheduler, use observeOn. + + * @param {Scheduler} scheduler Scheduler to perform subscription and unsubscription actions on. + * @returns {Observable} The source sequence whose subscriptions and unsubscriptions happen on the specified scheduler. + */ + subscribeOn(scheduler: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Converts a Promise to an Observable sequence + * @param {Promise} An ES6 Compliant promise. + * @returns {Observable} An Observable sequence which wraps the existing promise success and failure. + */ + fromPromise(promise: Promise): Observable; + } + + export interface Observable { + /* + * Converts an existing observable sequence to an ES6 Compatible Promise + * @example + * var promise = Rx.Observable.return(42).toPromise(RSVP.Promise); + * + * // With config + * Rx.config.Promise = RSVP.Promise; + * var promise = Rx.Observable.return(42).toPromise(); + * @param {Function} [promiseCtor] The constructor of the promise. If not provided, it looks for it in Rx.config.Promise. + * @returns {Promise} An ES6 compatible promise with the last value from the observable sequence. + */ + toPromise(promiseCtor?: { new (resolver: (resolvePromise: (value: T) => void, rejectPromise: (reason: any) => void) => void): IPromise; }): IPromise; + /* + * Converts an existing observable sequence to an ES6 Compatible Promise + * @example + * var promise = Rx.Observable.return(42).toPromise(RSVP.Promise); + * + * // With config + * Rx.config.Promise = RSVP.Promise; + * var promise = Rx.Observable.return(42).toPromise(); + * @param {Function} [promiseCtor] The constructor of the promise. If not provided, it looks for it in Rx.config.Promise. + * @returns {Promise} An ES6 compatible promise with the last value from the observable sequence. + */ + toPromise>(promiseCtor: { new (resolver: (resolvePromise: (value: T) => void, rejectPromise: (reason: any) => void) => void): TPromise; }): TPromise; + } + + export interface Observable { + /** + * Creates an array from an observable sequence. + * @returns {Observable} An observable sequence containing a single element with a list containing all the elements of the source sequence. + */ + toArray(): Observable; + } + + export interface ObservableStatic { + /** + * Creates an observable sequence from a specified subscribe method implementation. + * @example + * var res = Rx.Observable.create(function (observer) { return function () { } ); + * var res = Rx.Observable.create(function (observer) { return Rx.Disposable.empty; } ); + * var res = Rx.Observable.create(function (observer) { } ); + * @param {Function} subscribe Implementation of the resulting observable sequence's subscribe method, returning a function that will be wrapped in a Disposable. + * @returns {Observable} The observable sequence with the specified implementation for the Subscribe method. + */ + create(subscribe: (observer: Observer) => IDisposable | Function | void): Observable; + } + + export interface ObservableStatic { + /** + * Returns an observable sequence that invokes the specified factory function whenever a new observer subscribes. + * + * @example + * var res = Rx.Observable.defer(function () { return Rx.Observable.fromArray([1,2,3]); }); + * @param {Function} observableFactory Observable factory function to invoke for each observer that subscribes to the resulting sequence or Promise. + * @returns {Observable} An observable sequence whose observers trigger an invocation of the given observable factory function. + */ + defer(observableFactory: () => ObservableOrPromise): Observable; + } + + export interface ObservableStatic { + /** + * Returns an empty observable sequence, using the specified scheduler to send out the single OnCompleted message. + * + * @example + * var res = Rx.Observable.empty(); + * var res = Rx.Observable.empty(Rx.Scheduler.timeout); + * @param {Scheduler} [scheduler] Scheduler to send the termination call on. + * @returns {Observable} An observable sequence with no elements. + */ + empty(scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * This method creates a new Observable sequence from an array-like or iterable object. + * @param {Any} arrayLike An array-like or iterable object to convert to an Observable sequence. + * @param {Function} [mapFn] Map function to call on every element of the array. + * @param {Any} [thisArg] The context to use calling the mapFn if provided. + * @param {Scheduler} [scheduler] Optional scheduler to use for scheduling. If not provided, defaults to Scheduler.currentThread. + */ + from(array: ArrayOrIterable): Observable; + /** + * This method creates a new Observable sequence from an array-like or iterable object. + * @param {Any} arrayLike An array-like or iterable object to convert to an Observable sequence. + * @param {Function} [mapFn] Map function to call on every element of the array. + * @param {Any} [thisArg] The context to use calling the mapFn if provided. + * @param {Scheduler} [scheduler] Optional scheduler to use for scheduling. If not provided, defaults to Scheduler.currentThread. + */ + from(array: ArrayOrIterable, mapFn: (value: T, index: number) => TResult, thisArg?: any, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Converts an array to an observable sequence, using an optional scheduler to enumerate the array. + * @deprecated use Observable.from or Observable.of + * @param {Scheduler} [scheduler] Scheduler to run the enumeration of the input sequence on. + * @returns {Observable} The observable sequence whose elements are pulled from the given enumerable sequence. + */ + fromArray(array: ArrayLike, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Generates an observable sequence by running a state-driven loop producing the sequence's elements, using the specified scheduler to send out observer messages. + * + * @example + * var res = Rx.Observable.generate(0, function (x) { return x < 10; }, function (x) { return x + 1; }, function (x) { return x; }); + * var res = Rx.Observable.generate(0, function (x) { return x < 10; }, function (x) { return x + 1; }, function (x) { return x; }, Rx.Scheduler.timeout); + * @param {Mixed} initialState Initial state. + * @param {Function} condition Condition to terminate generation (upon returning false). + * @param {Function} iterate Iteration step function. + * @param {Function} resultSelector Selector function for results produced in the sequence. + * @param {Scheduler} [scheduler] Scheduler on which to run the generator loop. If not provided, defaults to Scheduler.currentThread. + * @returns {Observable} The generated sequence. + */ + generate(initialState: TState, condition: (state: TState) => boolean, iterate: (state: TState) => TState, resultSelector: (state: TState) => TResult, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * This method creates a new Observable instance with a variable number of arguments, regardless of number or type of the arguments. + * @returns {Observable} The observable sequence whose elements are pulled from the given arguments. + */ + of(...values: T[]): Observable; + + /** + * This method creates a new Observable instance with a variable number of arguments, regardless of number or type of the arguments. + * @param {Scheduler} scheduler A scheduler to use for scheduling the arguments. + * @returns {Observable} The observable sequence whose elements are pulled from the given arguments. + */ + ofWithScheduler(scheduler?: IScheduler, ...values: T[]): Observable; + } + + export interface ArrayObserveChange { + type: string; + object: T[]; + name?: string; + oldValue?: T; + index?: number; + removed?: T[]; + added?: number; + } + + export interface ObservableStatic { + /** + * Creates an Observable sequence from changes to an array using Array.observe. + * @param {Array} array An array to observe changes. + * @returns {Observable} An observable sequence containing changes to an array from Array.observe. + */ + ofArrayChanges(obj: T[]): Observable>; + } + + export interface ObjectObserveChange { + type: string; + object: T; + name: string; + oldValue?: any; + } + + export interface ObservableStatic { + /** + * Creates an Observable sequence from changes to an object using Object.observe. + * @param {Object} obj An object to observe changes. + * @returns {Observable} An observable sequence containing changes to an object from Object.observe. + */ + ofObjectChanges(obj: T): Observable>; + } + + export interface ObservableStatic { + /** + * Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins). + * @returns {Observable} An observable sequence whose observers will never get called. + */ + never(): Observable; + } + + export interface ObservableStatic { + /** + * Convert an object into an observable sequence of [key, value] pairs. + * @param {Object} obj The object to inspect. + * @param {Scheduler} [scheduler] Scheduler to run the enumeration of the input sequence on. + * @returns {Observable} An observable sequence of [key, value] pairs from the object. + */ + pairs(obj: { [key: string]: T }, scheduler?: IScheduler): Observable<[string, T]>; + /** + * Convert an object into an observable sequence of [key, value] pairs. + * @param {Object} obj The object to inspect. + * @param {Scheduler} [scheduler] Scheduler to run the enumeration of the input sequence on. + * @returns {Observable} An observable sequence of [key, value] pairs from the object. + */ + pairs(obj: { [key: number]: T }, scheduler?: IScheduler): Observable<[number, T]>; + } + + export interface ObservableStatic { + /** + * Generates an observable sequence of integral numbers within a specified range, using the specified scheduler to send out observer messages. + * + * @example + * var res = Rx.Observable.range(0, 10); + * var res = Rx.Observable.range(0, 10, Rx.Scheduler.timeout); + * @param {Number} start The value of the first integer in the sequence. + * @param {Number} count The number of sequential integers to generate. + * @param {Scheduler} [scheduler] Scheduler to run the generator loop on. If not specified, defaults to Scheduler.currentThread. + * @returns {Observable} An observable sequence that contains a range of sequential integral numbers. + */ + range(start: number, count: number, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Generates an observable sequence that repeats the given element the specified number of times, using the specified scheduler to send out observer messages. + * + * @example + * var res = Rx.Observable.repeat(42); + * var res = Rx.Observable.repeat(42, 4); + * 3 - res = Rx.Observable.repeat(42, 4, Rx.Scheduler.timeout); + * 4 - res = Rx.Observable.repeat(42, null, Rx.Scheduler.timeout); + * @param {Mixed} value Element to repeat. + * @param {Number} repeatCount [Optiona] Number of times to repeat the element. If not specified, repeats indefinitely. + * @param {Scheduler} scheduler Scheduler to run the producer loop on. If not specified, defaults to Scheduler.immediate. + * @returns {Observable} An observable sequence that repeats the given element the specified number of times. + */ + repeat(value: T, repeatCount?: number | void, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages. + * There is an alias called 'just' or browsers (value: T, scheduler?: IScheduler): Observable; + /** + * Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages. + * There is an alias called 'just' or browsers (value: T, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single onError message. + * @param {Mixed} error An object used for the sequence's termination. + * @param {Scheduler} scheduler Scheduler to send the exceptional termination call on. If not specified, defaults to Scheduler.immediate. + * @returns {Observable} The observable sequence that terminates exceptionally with the specified exception object. + */ + throw(exception: Error, scheduler?: IScheduler): Observable; + /** + * Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single onError message. + * @param {Mixed} error An object used for the sequence's termination. + * @param {Scheduler} scheduler Scheduler to send the exceptional termination call on. If not specified, defaults to Scheduler.immediate. + * @returns {Observable} The observable sequence that terminates exceptionally with the specified exception object. + */ + throw(exception: any, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime. + * @param {Function} resourceFactory Factory function to obtain a resource object. + * @param {Function} observableFactory Factory function to obtain an observable sequence that depends on the obtained resource. + * @returns {Observable} An observable sequence whose lifetime controls the lifetime of the dependent resource object. + */ + using(resourceFactory: () => TResource, observableFactory: (resource: TResource) => Observable): Observable; + } + + export interface Observable { + /** + * Propagates the observable sequence or Promise that reacts first. + * @param {Observable} rightSource Second observable sequence or Promise. + * @returns {Observable} {Observable} An observable sequence that surfaces either of the given sequences, whichever reacted first. + */ + amb(observable: ObservableOrPromise): Observable; + } + + export interface ObservableStatic { + /** + * Propagates the observable sequence or Promise that reacts first. + * @returns {Observable} An observable sequence that surfaces any of the given sequences, whichever reacted first. + */ + amb(observables: ObservableOrPromise[]): Observable; + /** + * Propagates the observable sequence or Promise that reacts first. + * @returns {Observable} An observable sequence that surfaces any of the given sequences, whichever reacted first. + */ + amb(...observables: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Continues an observable sequence that is terminated by an exception with the next observable sequence. + * @param {Mixed} handlerOrSecond Exception handler function that returns an observable sequence given the error that occurred in the first sequence, or a second observable sequence used to produce results when an error occurred in the first sequence. + * @returns {Observable} An observable sequence containing the first sequence's elements, followed by the elements of the handler sequence in case an exception occurred. + */ + catch(handler: (exception: any) => ObservableOrPromise): Observable; + /** + * Continues an observable sequence that is terminated by an exception with the next observable sequence. + * @param {Mixed} handlerOrSecond Exception handler function that returns an observable sequence given the error that occurred in the first sequence, or a second observable sequence used to produce results when an error occurred in the first sequence. + * @returns {Observable} An observable sequence containing the first sequence's elements, followed by the elements of the handler sequence in case an exception occurred. + */ + catch(second: ObservableOrPromise): Observable; + } + + export interface ObservableStatic { + /** + * Continues an observable sequence that is terminated by an exception with the next observable sequence. + * @param {Array | Arguments} args Arguments or an array to use as the next sequence if an error occurs. + * @returns {Observable} An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + */ + catch(sources: ObservableOrPromise[]): Observable; + /** + * Continues an observable sequence that is terminated by an exception with the next observable sequence. + * @param {Array | Arguments} args Arguments or an array to use as the next sequence if an error occurs. + * @returns {Observable} An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + */ + catch(...sources: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, resultSelector: (v1: T, v2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, ninth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8, v9: T9) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(souces: ObservableOrPromise[], resultSelector: (firstValue: T, ...otherValues: TOther[]) => TResult): Observable; + } + + export interface ObservableStatic { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, resultSelector: (v1: T, v2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, eventh: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, ninth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8, v9: T9) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(souces: ObservableOrPromise[], resultSelector: (...otherValues: TOther[]) => TResult): Observable; + } + + export interface Observable { + /** + * Concatenates all the observable sequences. This takes in either an array or variable arguments to concatenate. + * @returns {Observable} An observable sequence that contains the elements of each given sequence, in sequential order. + */ + concat(...sources: ObservableOrPromise[]): Observable; + } + + export interface ObservableStatic { + /** + * Concatenates all the observable sequences. + * @param {Array | Arguments} args Arguments or an array to concat to the observable sequence. + * @returns {Observable} An observable sequence that contains the elements of each given sequence, in sequential order. + */ + concat(...sources: ObservableOrPromise[]): Observable; + /** + * Concatenates all the observable sequences. + * @param {Array | Arguments} args Arguments or an array to concat to the observable sequence. + * @returns {Observable} An observable sequence that contains the elements of each given sequence, in sequential order. + */ + concat(sources: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Concatenates an observable sequence of observable sequences. + * @returns {Observable} An observable sequence that contains the elements of each observed inner sequence, in sequential order. + */ + concatAll(): T; + } + + export interface Observable { + /** + * Merges an observable sequence of observable sequences into an observable sequence, limiting the number of concurrent subscriptions to inner sequences. + * Or merges two observable sequences into a single observable sequence. + * + * @example + * 1 - merged = sources.merge(1); + * 2 - merged = source.merge(otherSource); + * @param {Mixed} [maxConcurrentOrOther] Maximum number of inner observable sequences being subscribed to concurrently or the second observable sequence. + * @returns {Observable} The observable sequence that merges the elements of the inner sequences. + */ + merge(maxConcurrent: number): T; + /** + * Merges an observable sequence of observable sequences into an observable sequence, limiting the number of concurrent subscriptions to inner sequences. + * Or merges two observable sequences into a single observable sequence. + * + * @example + * 1 - merged = sources.merge(1); + * 2 - merged = source.merge(otherSource); + * @param {Mixed} [maxConcurrentOrOther] Maximum number of inner observable sequences being subscribed to concurrently or the second observable sequence. + * @returns {Observable} The observable sequence that merges the elements of the inner sequences. + */ + merge(other: ObservableOrPromise): Observable; + } + + export interface ObservableStatic { + /** + * Merges all the observable sequences into a single observable sequence. + * The scheduler is optional and if not specified, the immediate scheduler is used. + * @returns {Observable} The observable sequence that merges the elements of the observable sequences. + */ + merge(...sources: ObservableOrPromise[]): Observable; + /** + * Merges all the observable sequences into a single observable sequence. + * The scheduler is optional and if not specified, the immediate scheduler is used. + * @returns {Observable} The observable sequence that merges the elements of the observable sequences. + */ + merge(sources: ObservableOrPromise[]): Observable; + /** + * Merges all the observable sequences into a single observable sequence. + * The scheduler is optional and if not specified, the immediate scheduler is used. + * @returns {Observable} The observable sequence that merges the elements of the observable sequences. + */ + merge(scheduler: IScheduler, ...sources: ObservableOrPromise[]): Observable; + /** + * Merges all the observable sequences into a single observable sequence. + * The scheduler is optional and if not specified, the immediate scheduler is used. + * @returns {Observable} The observable sequence that merges the elements of the observable sequences. + */ + merge(scheduler: IScheduler, sources: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Merges an observable sequence of observable sequences into an observable sequence. + * @returns {Observable} The observable sequence that merges the elements of the inner sequences. + */ + mergeAll(): T; + } + + export interface ObservableStatic { + /** + * Flattens an Observable that emits Observables into one Observable, in a way that allows an Observer to + * receive all successfully emitted items from all of the source Observables without being interrupted by + * an error notification from one of them. + * + * This behaves like Observable.prototype.mergeAll except that if any of the merged Observables notify of an + * error via the Observer's onError, mergeDelayError will refrain from propagating that + * error notification until all of the merged Observables have finished emitting items. + * @param {Array | Arguments} args Arguments or an array to merge. + * @returns {Observable} an Observable that emits all of the items emitted by the Observables emitted by the Observable + */ + mergeDelayError(...sources: ObservableOrPromise[]): Observable; + /** + * Flattens an Observable that emits Observables into one Observable, in a way that allows an Observer to + * receive all successfully emitted items from all of the source Observables without being interrupted by + * an error notification from one of them. + * + * This behaves like Observable.prototype.mergeAll except that if any of the merged Observables notify of an + * error via the Observer's onError, mergeDelayError will refrain from propagating that + * error notification until all of the merged Observables have finished emitting items. + * @param {Array | Arguments} args Arguments or an array to merge. + * @returns {Observable} an Observable that emits all of the items emitted by the Observables emitted by the Observable + */ + mergeDelayError(sources: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Continues an observable sequence that is terminated normally or by an exception with the next observable sequence. + * @param {Observable} second Second observable sequence used to produce results after the first sequence terminates. + * @returns {Observable} An observable sequence that concatenates the first and second sequence, even if the first sequence terminates exceptionally. + */ + onErrorResumeNext(second: ObservableOrPromise): Observable; + } + + export interface ObservableStatic { + /** + * Continues an observable sequence that is terminated normally or by an exception with the next observable sequence. + * + * @example + * 1 - res = Rx.Observable.onErrorResumeNext(xs, ys, zs); + * 1 - res = Rx.Observable.onErrorResumeNext([xs, ys, zs]); + * @returns {Observable} An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + */ + onErrorResumeNext(...sources: ObservableOrPromise[]): Observable; + /** + * Continues an observable sequence that is terminated normally or by an exception with the next observable sequence. + * + * @example + * 1 - res = Rx.Observable.onErrorResumeNext(xs, ys, zs); + * 1 - res = Rx.Observable.onErrorResumeNext([xs, ys, zs]); + * @returns {Observable} An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + */ + onErrorResumeNext(sources: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Returns the values from the source observable sequence only after the other observable sequence produces a value. + * @param {Observable | Promise} other The observable sequence or Promise that triggers propagation of elements of the source sequence. + * @returns {Observable} An observable sequence containing the elements of the source sequence starting from the point the other sequence triggered propagation. + */ + skipUntil(other: ObservableOrPromise): Observable; + } + + export interface Observable { + /** + * Transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @returns {Observable} The observable sequence that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + switch(): T; + /** + * Transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @returns {Observable} The observable sequence that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + switchLatest(): T; + } + + export interface Observable { + /** + * Returns the values from the source observable sequence until the other observable sequence produces a value. + * @param {Observable | Promise} other Observable sequence or Promise that terminates propagation of elements of the source sequence. + * @returns {Observable} An observable sequence containing the elements of the source sequence up to the point the other sequence interrupted further propagation. + */ + takeUntil(other: ObservableOrPromise): Observable; + } + + export interface Observable { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, resultSelector: (v1: T, v2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, ninth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8, v9: T9) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(souces: ObservableOrPromise[], resultSelector: (firstValue: T, ...otherValues: TOther[]) => TResult): Observable; + } + + export interface ObservableStatic { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(sources: ObservableOrPromise[], resultSelector?: (item1: T1, ...right: T2[]) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, ObservableOrPromise: Observable, resultSelector?: (item1: T1, item2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: Observable, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, source6: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, source6: ObservableOrPromise, source7: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, source6: ObservableOrPromise, source7: ObservableOrPromise, source8: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7, item8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, source6: ObservableOrPromise, source7: ObservableOrPromise, source8: ObservableOrPromise, source9: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7, item8: T8, item9: T9) => TResult): Observable; + } + + export interface Observable { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, resultSelector?: (v1: T, v2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, ninth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8, v9: T9) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(souces: ObservableOrPromise[], resultSelector?: (firstValue: T, ...otherValues: TOther[]) => TResult): Observable; + } + + export interface ObservableStatic { + /** + * Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + * @param arguments Observable sources. + * @returns {Observable} An observable sequence containing lists of elements at corresponding indexes. + */ + zipIterable(...sources: Observable[]): Observable; + /** + * Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + * @param arguments Observable sources. + * @returns {Observable} An observable sequence containing lists of elements at corresponding indexes. + */ + zipIterable(sources: Observable[]): Observable; + } + + export interface Observable { + /** + * Hides the identity of an observable sequence. + * @returns {Observable} An observable sequence that hides the identity of the source sequence. + */ + asObservable(): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more buffers which are produced based on element count information. + * @param {Number} count Length of each buffer. + * @param {Number} [skip] Number of elements to skip between creation of consecutive buffers. If not provided, defaults to the count. + * @returns {Observable} An observable sequence of buffers. + */ + bufferWithCount(count: number, skip?: number): Observable; + } + + export interface Observable { + /** + * Dematerializes the explicit notification values of an observable sequence as implicit notifications. + * @returns {Observable} An observable sequence exhibiting the behavior corresponding to the source sequence's notification values. + */ + dematerialize(): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that contains only distinct contiguous elements according to the keySelector and the comparer. + * + * var obs = observable.distinctUntilChanged(); + * var obs = observable.distinctUntilChanged(function (x) { return x.id; }); + * var obs = observable.distinctUntilChanged(function (x) { return x.id; }, function (x, y) { return x === y; }); + * + * @param {Function} [keySelector] A function to compute the comparison key for each element. If not provided, it projects the value. + * @param {Function} [comparer] Equality comparer for computed key values. If not provided, defaults to an equality comparer function. + * @returns {Observable} An observable sequence only containing the distinct contiguous elements, based on a computed key value, from the source sequence. + */ + distinctUntilChanged(keySelector?: (value: T) => TValue, comparer?: _Comparer): Observable; + } + + export interface Observable { + /** + * Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function | Observer} observerOrOnNext Action to invoke for each element in the observable sequence or an observer. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + do(observer: Observer): Observable; + /** + * Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function | Observer} observerOrOnNext Action to invoke for each element in the observable sequence or an observer. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tap(observer: Observer): Observable; + + /** + * Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function | Observer} observerOrOnNext Action to invoke for each element in the observable sequence or an observer. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + do(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): Observable; + /** + * Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function | Observer} observerOrOnNext Action to invoke for each element in the observable sequence or an observer. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tap(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): Observable; + + /** + * Invokes an action for each element in the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onNext Action to invoke for each element in the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + doOnNext(onNext: (value: T) => void, thisArg?: any): Observable; + /** + * Invokes an action upon exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onError Action to invoke upon exceptional termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + doOnError(onError: (exception: any) => void, thisArg?: any): Observable; + /** + * Invokes an action upon graceful termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onCompleted Action to invoke upon graceful termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + doOnCompleted(onCompleted: () => void, thisArg?: any): Observable; + + /** + * Invokes an action for each element in the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onNext Action to invoke for each element in the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tapOnNext(onNext: (value: T) => void, thisArg?: any): Observable; + /** + * Invokes an action upon exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onError Action to invoke upon exceptional termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tapOnError(onError: (exception: any) => void, thisArg?: any): Observable; + /** + * Invokes an action upon graceful termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onCompleted Action to invoke upon graceful termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tapOnCompleted(onCompleted: () => void, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Invokes a specified action after the source observable sequence terminates gracefully or exceptionally. + * @param {Function} finallyAction Action to invoke after the source observable sequence terminates. + * @returns {Observable} Source sequence with the action-invoking termination behavior applied. + */ + finally(action: () => void): Observable; + + /** + * Invokes a specified action after the source observable sequence terminates gracefully or exceptionally. + * @param {Function} finallyAction Action to invoke after the source observable sequence terminates. + * @returns {Observable} Source sequence with the action-invoking termination behavior applied. + */ + ensure(action: () => void): Observable; + } + + export interface Observable { + /** + * Ignores all elements in an observable sequence leaving only the termination messages. + * @returns {Observable} An empty observable sequence that signals termination, successful or exceptional, of the source sequence. + */ + ignoreElements(): Observable; + } + + export interface Observable { + /** + * Materializes the implicit notifications of an observable sequence as explicit notification values. + * @returns {Observable} An observable sequence containing the materialized notification values from the source sequence. + */ + materialize(): Observable; + } + + export interface Observable { + /** + * Repeats the observable sequence a specified number of times. If the repeat count is not specified, the sequence repeats indefinitely. + * @param {Number} [repeatCount] Number of times to repeat the sequence. If not provided, repeats the sequence indefinitely. + * @returns {Observable} The observable sequence producing the elements of the given sequence repeatedly. + */ + repeat(repeatCount?: number): Observable; + } + + export interface Observable { + /** + * Repeats the source observable sequence the specified number of times or until it successfully terminates. If the retry count is not specified, it retries indefinitely. + * Note if you encounter an error and want it to retry once, then you must use .retry(2); + * + * @example + * var res = retried = retry.repeat(); + * var res = retried = retry.repeat(2); + * @param {Number} [retryCount] Number of times to retry the sequence. If not provided, retry the sequence indefinitely. + * @returns {Observable} An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + */ + retry(retryCount?: number): Observable; + } + + export interface Observable { + /** + * Repeats the source observable sequence upon error each time the notifier emits or until it successfully terminates. + * if the notifier completes, the observable sequence completes. + * + * @example + * var timer = Observable.timer(500); + * var source = observable.retryWhen(timer); + * @param {Observable} [notifier] An observable that triggers the retries or completes the observable with onNext or onCompleted respectively. + * @returns {Observable} An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + */ + retryWhen(notifier: (errors: Observable) => Observable): Observable; + } + + export interface Observable { + /** + * Applies an accumulator function over an observable sequence and returns each intermediate result. The optional seed value is used as the initial accumulator value. + * For aggregation behavior with no intermediate results, see Observable.aggregate. + * @example + * var res = source.scan(function (acc, x) { return acc + x; }); + * var res = source.scan(function (acc, x) { return acc + x; }, 0); + * @param {Function} accumulator An accumulator function to be invoked on each element. + * @param {Mixed} [seed] The initial accumulator value. + * @returns {Observable} An observable sequence containing the accumulated values. + */ + scan(accumulator: _Accumulator, seed?: TAcc): Observable; + /** + * Applies an accumulator function over an observable sequence and returns each intermediate result. The optional seed value is used as the initial accumulator value. + * For aggregation behavior with no intermediate results, see Observable.aggregate. + * @example + * var res = source.scan(function (acc, x) { return acc + x; }); + * var res = source.scan(function (acc, x) { return acc + x; }, 0); + * @param {Function} accumulator An accumulator function to be invoked on each element. + * @param {Mixed} [seed] The initial accumulator value. + * @returns {Observable} An observable sequence containing the accumulated values. + */ + scan(accumulator: _Accumulator, seed?: T): Observable; + } + + export interface Observable { + /** + * Bypasses a specified number of elements at the end of an observable sequence. + * @description + * This operator accumulates a queue with a length enough to store the first `count` elements. As more elements are + * received, elements are taken from the front of the queue and produced on the result sequence. This causes elements to be delayed. + * @param count Number of elements to bypass at the end of the source sequence. + * @returns {Observable} An observable sequence containing the source sequence elements except for the bypassed ones at the end. + */ + skipLast(count: number): Observable; + } + + export interface Observable { + /** + * Prepends a sequence of values to an observable sequence with an optional scheduler and an argument list of values to prepend. + * @example + * var res = source.startWith(1, 2, 3); + * var res = source.startWith(Rx.Scheduler.timeout, 1, 2, 3); + * @param {Arguments} args The specified values to prepend to the observable sequence + * @returns {Observable} The source sequence prepended with the specified values. + */ + startWith(...values: T[]): Observable; + /** + * Prepends a sequence of values to an observable sequence with an optional scheduler and an argument list of values to prepend. + * @example + * var res = source.startWith(1, 2, 3); + * var res = source.startWith(Rx.Scheduler.timeout, 1, 2, 3); + * @param {Arguments} args The specified values to prepend to the observable sequence + * @returns {Observable} The source sequence prepended with the specified values. + */ + startWith(scheduler: IScheduler, ...values: T[]): Observable; + } + + export interface Observable { + /** + * Returns a specified number of contiguous elements from the end of an observable sequence. + * @description + * This operator accumulates a buffer with a length enough to store elements count elements. Upon completion of + * the source sequence, this buffer is drained on the result sequence. This causes the elements to be delayed. + * @param {Number} count Number of elements to take from the end of the source sequence. + * @returns {Observable} An observable sequence containing the specified number of elements from the end of the source sequence. + */ + takeLast(count: number): Observable; + } + + export interface Observable { + /** + * Returns an array with the specified number of contiguous elements from the end of an observable sequence. + * + * @description + * This operator accumulates a buffer with a length enough to store count elements. Upon completion of the + * source sequence, this buffer is produced on the result sequence. + * @param {Number} count Number of elements to take from the end of the source sequence. + * @returns {Observable} An observable sequence containing a single array with the specified number of elements from the end of the source sequence. + */ + takeLastBuffer(count: number): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more windows which are produced based on element count information. + * + * var res = xs.windowWithCount(10); + * var res = xs.windowWithCount(10, 1); + * @param {Number} count Length of each window. + * @param {Number} [skip] Number of elements to skip between creation of consecutive windows. If not specified, defaults to the count. + * @returns {Observable} An observable sequence of windows. + */ + windowWithCount(count: number, skip?: number): Observable>; + } + + export interface Observable { + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + concatMap(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + concatMap(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + concatMap(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + concatMap(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectConcat(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectConcat(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectConcat(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectConcat(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Projects each notification of an observable sequence to an observable sequence and concats the resulting observable sequences into one observable sequence. + * @param {Function} onNext A transform function to apply to each element; the second parameter of the function represents the index of the source element. + * @param {Function} onError A transform function to apply when an error occurs in the source sequence. + * @param {Function} onCompleted A transform function to apply when the end of the source sequence is reached. + * @param {Any} [thisArg] An optional "this" to use to invoke each transform. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + */ + concatMapObserver(onNext: (value: T, i: number) => ObservableOrPromise, onError: (error: any) => ObservableOrPromise, onCompleted: () => ObservableOrPromise, thisArg?: any): Observable; + /** + * Projects each notification of an observable sequence to an observable sequence and concats the resulting observable sequences into one observable sequence. + * @param {Function} onNext A transform function to apply to each element; the second parameter of the function represents the index of the source element. + * @param {Function} onError A transform function to apply when an error occurs in the source sequence. + * @param {Function} onCompleted A transform function to apply when the end of the source sequence is reached. + * @param {Any} [thisArg] An optional "this" to use to invoke each transform. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + */ + selectConcatObserver(onNext: (value: T, i: number) => ObservableOrPromise, onError: (error: any) => ObservableOrPromise, onCompleted: () => ObservableOrPromise, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Returns the elements of the specified sequence or the specified value in a singleton sequence if the sequence is empty. + * + * var res = obs = xs.defaultIfEmpty(); + * 2 - obs = xs.defaultIfEmpty(false); + * + * @memberOf Observable# + * @param defaultValue The value to return if the sequence is empty. If not provided, this defaults to null. + * @returns {Observable} An observable sequence that contains the specified default value if the source is empty; otherwise, the elements of the source itself. + */ + defaultIfEmpty(defaultValue?: T): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that contains only distinct elements according to the keySelector and the comparer. + * Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + * + * @example + * var res = obs = xs.distinct(); + * 2 - obs = xs.distinct(function (x) { return x.id; }); + * 2 - obs = xs.distinct(function (x) { return x.id; }, function (a,b) { return a === b; }); + * @param {Function} [keySelector] A function to compute the comparison key for each element. + * @param {Function} [comparer] Used to compare items in the collection. + * @returns {Observable} An observable sequence only containing the distinct elements, based on a computed key value, from the source sequence. + */ + distinct(keySelector?: (value: T) => TKey, keySerializer?: (key: TKey) => string): Observable; + } + + export interface Observable { + /** + * Groups the elements of an observable sequence according to a specified key selector function. + * A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + * key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + * + * @example + * var res = observable.groupByUntil(function (x) { return x.id; }, null, function () { return Rx.Observable.never(); }); + * 2 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }, function () { return Rx.Observable.never(); }); + * 3 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }, function () { return Rx.Observable.never(); }, function (x) { return x.toString(); }); + * @param {Function} keySelector A function to extract the key for each element. + * @param {Function} durationSelector A function to signal the expiration of a group. + * @returns {Observable} + * A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + * If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encoutered. + * + */ + groupByUntil(keySelector: (value: T) => TKey, skipElementSelector: boolean, durationSelector: (group: GroupedObservable) => Observable, keySerializer?: (key: TKey) => string): Observable>; + + /** + * Groups the elements of an observable sequence according to a specified key selector function. + * A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + * key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + * + * @example + * var res = observable.groupByUntil(function (x) { return x.id; }, null, function () { return Rx.Observable.never(); }); + * 2 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }, function () { return Rx.Observable.never(); }); + * 3 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }, function () { return Rx.Observable.never(); }, function (x) { return x.toString(); }); + * @param {Function} keySelector A function to extract the key for each element. + * @param {Function} durationSelector A function to signal the expiration of a group. + * @returns {Observable} + * A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + * If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encoutered. + * + */ + groupByUntil(keySelector: (value: T) => TKey, elementSelector: (value: T) => TElement, durationSelector: (group: GroupedObservable) => Observable, keySerializer?: (key: TKey) => string): Observable>; + } + + export interface Observable { + /** + * Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + * + * @example + * var res = observable.groupBy(function (x) { return x.id; }); + * 2 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }); + * 3 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }, function (x) { return x.toString(); }); + * @param {Function} keySelector A function to extract the key for each element. + * @param {Function} [elementSelector] A function to map each source element to an element in an observable group. + * @returns {Observable} A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + */ + groupBy(keySelector: (value: T) => TKey, skipElementSelector?: boolean, keySerializer?: (key: TKey) => string): Observable>; + /** + * Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + * + * @example + * var res = observable.groupBy(function (x) { return x.id; }); + * 2 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }); + * 3 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }, function (x) { return x.toString(); }); + * @param {Function} keySelector A function to extract the key for each element. + * @param {Function} [elementSelector] A function to map each source element to an element in an observable group. + * @returns {Observable} A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + */ + groupBy(keySelector: (value: T) => TKey, elementSelector: (value: T) => TElement, keySerializer?: (key: TKey) => string): Observable>; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into a new form by incorporating the element's index. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source. + */ + select(selector: _Selector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new form by incorporating the element's index. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source. + */ + map(selector: _Selector, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Retrieves the value of a specified nested property from all elements in + * the Observable sequence. + * @param {Arguments} arguments The nested properties to pluck. + * @returns {Observable} Returns a new Observable sequence of property values. + */ + pluck(prop: string): Observable; + } + + + export interface Observable { + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMap(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMap(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMap(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMap(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectMany(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectMany(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectMany(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectMany(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Projects each notification of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * @param {Function} onNext A transform function to apply to each element; the second parameter of the function represents the index of the source element. + * @param {Function} onError A transform function to apply when an error occurs in the source sequence. + * @param {Function} onCompleted A transform function to apply when the end of the source sequence is reached. + * @param {Any} [thisArg] An optional "this" to use to invoke each transform. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + */ + selectManyObserver(onNext: (value: T, index: number) => Observable, onError: (exception: any) => Observable, onCompleted: () => Observable, thisArg?: any): Observable; + /** + * Projects each notification of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * @param {Function} onNext A transform function to apply to each element; the second parameter of the function represents the index of the source element. + * @param {Function} onError A transform function to apply when an error occurs in the source sequence. + * @param {Function} onCompleted A transform function to apply when the end of the source sequence is reached. + * @param {Any} [thisArg] An optional "this" to use to invoke each transform. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + */ + flatMapObserver(onNext: (value: T, index: number) => Observable, onError: (exception: any) => Observable, onCompleted: () => Observable, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + selectSwitch(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + selectSwitch(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + selectSwitch(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + selectSwitch(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + flatMapLatest(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + flatMapLatest(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + flatMapLatest(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + flatMapLatest(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Bypasses a specified number of elements in an observable sequence and then returns the remaining elements. + * @param {Number} count The number of elements to skip before returning the remaining elements. + * @returns {Observable} An observable sequence that contains the elements that occur after the specified index in the input sequence. + */ + skip(count: number): Observable; + } + + export interface Observable { + /** + * Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. + * The element's index is used in the logic of the predicate function. + * + * var res = source.skipWhile(function (value) { return value < 10; }); + * var res = source.skipWhile(function (value, index) { return value < 10 || index < 10; }); + * @param {Function} predicate A function to test each element for a condition; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. + */ + skipWhile(predicate: _Predicate, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Returns a specified number of contiguous elements from the start of an observable sequence, using the specified scheduler for the edge case of take(0). + * + * var res = source.take(5); + * var res = source.take(0, Rx.Scheduler.timeout); + * @param {Number} count The number of elements to return. + * @param {Scheduler} [scheduler] Scheduler used to produce an OnCompleted message in case | (() => ISubject)): ConnectableObservable; + /** + * Multicasts the source sequence notifications through an instantiated subject into all uses of the sequence within a selector function. Each + * subscription to the resulting sequence causes a separate multicast invocation, exposing the sequence resulting from the selector function's + * invocation. For specializations with fixed subject types, see Publish, PublishLast, and Replay. + * + * @example + * 1 - res = source.multicast(observable); + * 2 - res = source.multicast(function () { return new Subject(); }, function (x) { return x; }); + * + * @param {Function|Subject} subjectOrSubjectSelector + * 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 which can use the multicasted source sequence subject to the policies enforced by the created subject. Specified only if (subjectSelector: ISubject | (() => ISubject), selector: (source: ConnectableObservable) => Observable): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence. + * This operator is a specialization of Multicast using a regular Subject. + * + * @example + * var resres = source.publish(); + * var res = source.publish(function (x) { return x; }); + * + * @param {Function} [selector] 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. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publish(): ConnectableObservable; + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence. + * This operator is a specialization of Multicast using a regular Subject. + * + * @example + * var resres = source.publish(); + * var res = source.publish(function (x) { return x; }); + * + * @param {Function} [selector] 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. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publish(selector: (source: ConnectableObservable) => Observable): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence. + * This operator is a specialization of publish which creates a subscription when the number of observers goes from zero to one, then shares that subscription with all subsequent observers until the number of observers returns to zero, at which point the subscription is disposed. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence. + */ + share(): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + * This operator is a specialization of Multicast using a AsyncSubject. + * + * @example + * var res = source.publishLast(); + * var res = source.publishLast(function (x) { return x; }); + * + * @param 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 only receive the last notification of the source. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishLast(): ConnectableObservable; + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + * This operator is a specialization of Multicast using a AsyncSubject. + * + * @example + * var res = source.publishLast(); + * var res = source.publishLast(function (x) { return x; }); + * + * @param 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 only receive the last notification of the source. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishLast(selector: (source: ConnectableObservable) => Observable): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + * This operator is a specialization of Multicast using a BehaviorSubject. + * + * @example + * var res = source.publishValue(42); + * var res = source.publishValue(function (x) { return x.select(function (y) { return y * y; }) }, 42); + * + * @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 immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + * @param {Mixed} initialValue Initial value received by observers upon subscription. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishValue(initialValue: T): ConnectableObservable; + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + * This operator is a specialization of Multicast using a BehaviorSubject. + * + * @example + * var res = source.publishValue(42); + * var res = source.publishValue(function (x) { return x.select(function (y) { return y * y; }) }, 42); + * + * @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 immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + * @param {Mixed} initialValue Initial value received by observers upon subscription. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishValue(selector: (source: ConnectableObservable) => Observable, initialValue: T): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence and starts with an initialValue. + * This operator is a specialization of publishValue which creates a subscription when the number of observers goes from zero to one, then shares that subscription with all subsequent observers until the number of observers returns to zero, at which point the subscription is disposed. + * @param {Mixed} initialValue Initial value received by observers upon subscription. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence. + */ + shareValue(initialValue: T): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + * This operator is a specialization of Multicast using a ReplaySubject. + * + * @example + * var res = source.replay(null, 3); + * var res = source.replay(null, 3, 500); + * var res = source.replay(null, 3, 500, scheduler); + * var res = source.replay(function (x) { return x.take(6).repeat(); }, 3, 500, scheduler); + * + * @param 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 the notifications of the source subject to the specified replay buffer trimming policy. + * @param bufferSize [Optional] Maximum element count of the replay buffer. + * @param windowSize [Optional] Maximum time length of the replay buffer. + * @param scheduler [Optional] Scheduler where connected observers within the selector function will be invoked on. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + replay(selector?: void, bufferSize?: number, window?: number, scheduler?: IScheduler): ConnectableObservable; // hack to catch first omitted parameter + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + * This operator is a specialization of Multicast using a ReplaySubject. + * + * @example + * var res = source.replay(null, 3); + * var res = source.replay(null, 3, 500); + * var res = source.replay(null, 3, 500, scheduler); + * var res = source.replay(function (x) { return x.take(6).repeat(); }, 3, 500, scheduler); + * + * @param 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 the notifications of the source subject to the specified replay buffer trimming policy. + * @param bufferSize [Optional] Maximum element count of the replay buffer. + * @param windowSize [Optional] Maximum time length of the replay buffer. + * @param scheduler [Optional] Scheduler where connected observers within the selector function will be invoked on. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + replay(selector: (source: ConnectableObservable) => Observable, bufferSize?: number, window?: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + * This operator is a specialization of replay which creates a subscription when the number of observers goes from zero to one, then shares that subscription with all subsequent observers until the number of observers returns to zero, at which point the subscription is disposed. + * + * @example + * var res = source.shareReplay(3); + * var res = source.shareReplay(3, 500); + * var res = source.shareReplay(3, 500, scheduler); + * + + * @param bufferSize [Optional] Maximum element count of the replay buffer. + * @param window [Optional] Maximum time length of the replay buffer. + * @param scheduler [Optional] Scheduler where connected observers within the selector function will be invoked on. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence. + */ + shareReplay(bufferSize?: number, window?: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence. This observable sequence + * can be resubscribed to, even if all prior subscriptions have ended. (unlike `.publish().refCount()`) + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source. + */ + singleInstance(): Observable; + } + + export interface Observable { + /** + * Correlates the elements of two sequences based on overlapping durations. + * + * @param {Observable} right The right observable sequence to join elements for. + * @param {Function} leftDurationSelector A function to select the duration (expressed as an observable sequence) of each element of the left observable sequence, used to determine overlap. + * @param {Function} rightDurationSelector A function to select the duration (expressed as an observable sequence) of each element of the right observable sequence, used to determine overlap. + * @param {Function} resultSelector A function invoked to compute a result element for any two overlapping elements of the left and right observable sequences. The parameters passed to the function correspond with the elements from the left and right source sequences for which overlap occurs. + * @returns {Observable} An observable sequence that contains result elements computed from source elements that have an overlapping duration. + */ + join( + right: Observable, + leftDurationSelector: (leftItem: T) => Observable, + rightDurationSelector: (rightItem: TRight) => Observable, + resultSelector: (leftItem: T, rightItem: TRight) => TResult): Observable; + } + + export interface Observable { + /** + * Correlates the elements of two sequences based on overlapping durations, and groups the results. + * + * @param {Observable} right The right observable sequence to join elements for. + * @param {Function} leftDurationSelector A function to select the duration (expressed as an observable sequence) of each element of the left observable sequence, used to determine overlap. + * @param {Function} rightDurationSelector A function to select the duration (expressed as an observable sequence) of each element of the right observable sequence, used to determine overlap. + * @param {Function} resultSelector A function invoked to compute a result element for any element of the left sequence with overlapping elements from the right observable sequence. The first parameter passed to the function is an element of the left sequence. The second parameter passed to the function is an observable sequence with elements from the right sequence that overlap with the left sequence's element. + * @returns {Observable} An observable sequence that contains result elements computed from source elements that have an overlapping duration. + */ + groupJoin( + right: Observable, + leftDurationSelector: (leftItem: T) => Observable, + rightDurationSelector: (rightItem: TRight) => Observable, + resultSelector: (leftItem: T, rightItem: Observable) => TResult): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more buffers. + * @param {Mixed} bufferOpeningsOrClosingSelector Observable sequence whose elements denote the creation of new windows, or, a function invoked to define the boundaries of the produced windows (a new window is started when the previous one is closed, resulting in non-overlapping windows). + * @param {Function} [bufferClosingSelector] A function invoked to define the closing of each produced window. If a closing selector function is specified for the first parameter, this parameter is ignored. + * @returns {Observable} An observable sequence of windows. + */ + buffer(bufferOpenings: Observable): Observable; + /** + * Projects each element of an observable sequence into zero or more buffers. + * @param {Mixed} bufferOpeningsOrClosingSelector Observable sequence whose elements denote the creation of new windows, or, a function invoked to define the boundaries of the produced windows (a new window is started when the previous one is closed, resulting in non-overlapping windows). + * @param {Function} [bufferClosingSelector] A function invoked to define the closing of each produced window. If a closing selector function is specified for the first parameter, this parameter is ignored. + * @returns {Observable} An observable sequence of windows. + */ + buffer(bufferClosingSelector: () => Observable): Observable; + /** + * Projects each element of an observable sequence into zero or more buffers. + * @param {Mixed} bufferOpeningsOrClosingSelector Observable sequence whose elements denote the creation of new windows, or, a function invoked to define the boundaries of the produced windows (a new window is started when the previous one is closed, resulting in non-overlapping windows). + * @param {Function} [bufferClosingSelector] A function invoked to define the closing of each produced window. If a closing selector function is specified for the first parameter, this parameter is ignored. + * @returns {Observable} An observable sequence of windows. + */ + buffer(bufferOpenings: Observable, bufferClosingSelector: () => Observable): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more windows. + * + * @param {Mixed} windowOpeningsOrClosingSelector Observable sequence whose elements denote the creation of new windows, or, a function invoked to define the boundaries of the produced windows (a new window is started when the previous one is closed, resulting in non-overlapping windows). + * @param {Function} [windowClosingSelector] A function invoked to define the closing of each produced window. If a closing selector function is specified for the first parameter, this parameter is ignored. + * @returns {Observable} An observable sequence of windows. + */ + window(windowOpenings: Observable): Observable>; + /** + * Projects each element of an observable sequence into zero or more windows. + * + * @param {Mixed} windowOpeningsOrClosingSelector Observable sequence whose elements denote the creation of new windows, or, a function invoked to define the boundaries of the produced windows (a new window is started when the previous one is closed, resulting in non-overlapping windows). + * @param {Function} [windowClosingSelector] A function invoked to define the closing of each produced window. If a closing selector function is specified for the first parameter, this parameter is ignored. + * @returns {Observable} An observable sequence of windows. + */ + window(windowClosingSelector: () => Observable): Observable>; + /** + * Projects each element of an observable sequence into zero or more windows. + * + * @param {Mixed} windowOpeningsOrClosingSelector Observable sequence whose elements denote the creation of new windows, or, a function invoked to define the boundaries of the produced windows (a new window is started when the previous one is closed, resulting in non-overlapping windows). + * @param {Function} [windowClosingSelector] A function invoked to define the closing of each produced window. If a closing selector function is specified for the first parameter, this parameter is ignored. + * @returns {Observable} An observable sequence of windows. + */ + window(windowOpenings: Observable, windowClosingSelector: () => Observable): Observable>; + } + + export interface Observable { + /** + * Returns a new observable that triggers on the second and subsequent triggerings of the input observable. + * The Nth triggering of the input observable passes the arguments from the N-1th and Nth triggering as a pair. + * The argument passed to the N-1th triggering is held in hidden internal state until the Nth triggering occurs. + * @returns {Observable} An observable that triggers on successive pairs of observations from the input observable as an array. + */ + pairwise(): Observable<[T, T]>; + } + + export interface Observable { + /** + * Returns two observables which partition the observations of the source by the given function. + * The first will trigger observations for those values for which the predicate returns true. + * The second will trigger observations for those values where the predicate returns false. + * The predicate is executed once for each subscribed observer. + * Both also propagate all error observations arising from the source and each completes + * when the source completes. + * @param {Function} predicate + * The function to determine which output Observable will trigger a particular observation. + * @returns {Array} + * An array of observables. The first triggers when the predicate returns true, + * and the second triggers when the predicate returns false. + */ + partition(predicate: _Predicate, thisArg?: any): [Observable, Observable]; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on the source sequence, without sharing subscriptions. + * This operator allows for a fluent style of writing queries that use the same sequence multiple times. + * + * @param {Function} selector Selector function which can use the source sequence as many times as needed, without sharing subscriptions to the source sequence. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + let(selector: (source: Observable) => Observable): Observable; + } + + export interface ObservableStatic { + /** + * Determines whether an observable collection contains values. + * + * @example + * 1 - res = Rx.Observable.if(condition, obs1); + * 2 - res = Rx.Observable.if(condition, obs1, obs2); + * 3 - res = Rx.Observable.if(condition, obs1, scheduler); + * @param {Function} condition The condition which determines if the thenSource or elseSource will be run. + * @param {Observable} thenSource The observable sequence or Promise that will be run if the condition function returns true. + * @param {Observable} [elseSource] The observable sequence or Promise that will be run if the condition function returns false. If this is not provided, it defaults to Rx.Observabe.Empty with the specified scheduler. + * @returns {Observable} An observable sequence which is either the thenSource or elseSource. + */ + if(condition: () => boolean, thenSource: ObservableOrPromise, elseSourceOrScheduler?: ObservableOrPromise | IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Concatenates the observable sequences obtained by running the specified result selector for each element in source. + * There is an alias for this method called 'forIn' for browsers (sources: T[], resultSelector: _Selector, thisArg?: any): Observable; + /** + * Concatenates the observable sequences obtained by running the specified result selector for each element in source. + * There is an alias for this method called 'forIn' for browsers (sources: T[], resultSelector: _Selector, thisArg?: any): Observable; + } + + export interface ObservableStatic { + /** + * Repeats source as long as condition holds emulating a while loop. + * There is an alias for this method called 'whileDo' for browsers (condition: () => boolean, source: ObservableOrPromise): Observable; + /** + * Repeats source as long as condition holds emulating a while loop. + * There is an alias for this method called 'whileDo' for browsers (condition: () => boolean, source: ObservableOrPromise): Observable; + } + + export interface Observable { + /** + * Repeats source as long as condition holds emulating a do while loop. + * + * @param {Function} condition The condition which determines if the source will be repeated. + * @param {Observable} source The observable sequence that will be run if the condition function returns true. + * @returns {Observable} An observable sequence which is repeated as long as the condition holds. + */ + doWhile(condition: () => boolean): Observable; + } + + export interface ObservableStatic { + /** + * Uses selector to determine which source in sources to use. + * @param {Function} selector The function which extracts the value for to test in a case statement. + * @param {Array} sources A object which has keys which correspond to the case statement labels. + * @param {Observable} [elseSource] The observable sequence or Promise that will be run if the sources are not matched. If this is not provided, it defaults to Rx.Observabe.empty with the specified scheduler. + * + * @returns {Observable} An observable sequence which is determined by a case statement. + */ + case(selector: () => string, sources: { [key: string]: ObservableOrPromise; }, schedulerOrElseSource?: IScheduler | ObservableOrPromise): Observable; + /** + * Uses selector to determine which source in sources to use. + * @param {Function} selector The function which extracts the value for to test in a case statement. + * @param {Array} sources A object which has keys which correspond to the case statement labels. + * @param {Observable} [elseSource] The observable sequence or Promise that will be run if the sources are not matched. If this is not provided, it defaults to Rx.Observabe.empty with the specified scheduler. + * + * @returns {Observable} An observable sequence which is determined by a case statement. + */ + case(selector: () => number, sources: { [key: number]: ObservableOrPromise; }, schedulerOrElseSource?: IScheduler | ObservableOrPromise): Observable; + } + + export interface Observable { + /** + * Expands an observable sequence by recursively invoking selector. + * + * @param {Function} selector Selector function to invoke for each produced element, resulting in another sequence to which the selector will be invoked recursively again. + * @param {Scheduler} [scheduler] Scheduler on which to perform the expansion. If not provided, this defaults to the current thread scheduler. + * @returns {Observable} An observable sequence containing all the elements produced by the recursive expansion. + */ + expand(selector: (item: T) => Observable, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Runs all observable sequences in parallel and collect their last elements. + * + * @example + * 1 - res = Rx.Observable.forkJoin([obs1, obs2]); + * 1 - res = Rx.Observable.forkJoin(obs1, obs2, ...); + * @returns {Observable} An observable sequence with an array collecting the last elements of all the input sequences. + */ + forkJoin(sources: ObservableOrPromise[]): Observable; + + /** + * Runs all observable sequences in parallel and collect their last elements. + * + * @example + * 1 - res = Rx.Observable.forkJoin([obs1, obs2]); + * 1 - res = Rx.Observable.forkJoin(obs1, obs2, ...); + * @returns {Observable} An observable sequence with an array collecting the last elements of all the input sequences. + */ + forkJoin(...args: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Runs two observable sequences in parallel and combines their last elemenets. + * + * @param {Observable} second Second observable sequence. + * @param {Function} resultSelector Result selector function to invoke with the last elements of both sequences. + * @returns {Observable} An observable sequence with the result of calling the selector function with the last elements of both input sequences. + */ + forkJoin(second: ObservableOrPromise, resultSelector: (left: T, right: TSecond) => TResult): Observable; + } + + export interface Observable { + /** + * Comonadic bind operator. + * @param {Function} selector A transform function to apply to each element. + * @param {Object} scheduler Scheduler used to execute the operation. If not specified, defaults to the ImmediateScheduler. + * @returns {Observable} An observable sequence which results from the comonadic bind operation. + */ + manySelect(selector: _Selector, TResult>, scheduler?: IScheduler): Observable; + /** + * Comonadic bind operator. + * @param {Function} selector A transform function to apply to each element. + * @param {Object} scheduler Scheduler used to execute the operation. If not specified, defaults to the ImmediateScheduler. + * @returns {Observable} An observable sequence which results from the comonadic bind operation. + */ + extend(selector: _Selector, TResult>, scheduler?: IScheduler): Observable; + } + + export class Plan { } + + export interface Pattern2 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern3; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2) => TR): Plan; + } + interface Pattern3 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern4; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3) => TR): Plan; + } + interface Pattern4 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern5; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3, item4: T4) => TR): Plan; + } + interface Pattern5 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern6; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5) => TR): Plan; + } + interface Pattern6 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern7; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6) => TR): Plan; + } + interface Pattern7 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern8; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7) => TR): Plan; + } + interface Pattern8 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern9; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7, item8: T8) => TR): Plan; + } + interface Pattern9 { + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7, item8: T8, item9: T9) => TR): Plan; + } + + export interface Observable { + /** + * Creates a pattern that matches when both observable sequences have an available value. + * + * @param right Observable sequence to match with the current sequence. + * @return {Pattern} Pattern object that matches when both observable sequences have an available value. + */ + and(right: Observable): Pattern2; + } + + export interface Observable { + /** + * Matches when the observable sequence has an available value and projects the value. + * + * @param {Function} selector Selector that will be invoked for values in the source sequence. + * @returns {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T) => TR): Plan; + } + + export interface ObservableStatic { + /** + * Joins together the results from several patterns. + * + * @param plans A series of plans (specified as an Array of as a series of arguments) created by use of the Then operator on patterns. + * @returns {Observable} Observable sequence with the results form matching several patterns. + */ + when(plan: Plan): Observable; + } + + export interface ObservableStatic { + /** + * Returns an observable sequence that produces a value after each period. + * + * @example + * 1 - res = Rx.Observable.interval(1000); + * 2 - res = Rx.Observable.interval(1000, Rx.Scheduler.timeout); + * + * @param {Number} period Period for producing the values in the resulting sequence (specified as an integer denoting milliseconds). + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, Rx.Scheduler.timeout is used. + * @returns {Observable} An observable sequence that produces a value after each period. + */ + interval(period: number, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Returns an observable sequence that produces a value after dueTime has elapsed and then after each period. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) at which to produce the first value. + * @param {Mixed} [periodOrScheduler] Period to produce subsequent values (specified as an integer denoting milliseconds), or the scheduler to run the timer on. If not specified, the resulting timer is not recurring. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence that produces a value after due time has elapsed and then each period. + */ + timer(dueTime: number, period: number, scheduler?: IScheduler): Observable; + /** + * Returns an observable sequence that produces a value after dueTime has elapsed and then after each period. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) at which to produce the first value. + * @param {Mixed} [periodOrScheduler] Period to produce subsequent values (specified as an integer denoting milliseconds), or the scheduler to run the timer on. If not specified, the resulting timer is not recurring. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence that produces a value after due time has elapsed and then each period. + */ + timer(dueTime: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Time shifts the observable sequence by dueTime. The relative time intervals between the values are preserved. + * + * @example + * 1 - res = Rx.Observable.delay(new Date()); + * 2 - res = Rx.Observable.delay(new Date(), Rx.Scheduler.timeout); + * + * 3 - res = Rx.Observable.delay(5000); + * 4 - res = Rx.Observable.delay(5000, 1000, Rx.Scheduler.timeout); + * @memberOf Observable# + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) by which to shift the observable sequence. + * @param {Scheduler} [scheduler] Scheduler to run the delay timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} Time-shifted sequence. + */ + delay(dueTime: Date, scheduler?: IScheduler): Observable; + /** + * Time shifts the observable sequence by dueTime. The relative time intervals between the values are preserved. + * + * @example + * 1 - res = Rx.Observable.delay(new Date()); + * 2 - res = Rx.Observable.delay(new Date(), Rx.Scheduler.timeout); + * + * 3 - res = Rx.Observable.delay(5000); + * 4 - res = Rx.Observable.delay(5000, 1000, Rx.Scheduler.timeout); + * @memberOf Observable# + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) by which to shift the observable sequence. + * @param {Scheduler} [scheduler] Scheduler to run the delay timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} Time-shifted sequence. + */ + delay(dueTime: number, scheduler?: IScheduler): Observable; + + /** + * Time shifts the observable sequence based on a subscription delay and a delay selector function for each element. + * + * @example + * 1 - res = source.delayWithSelector(function (x) { return Rx.Scheduler.timer(5000); }); // with selector only + * 1 - res = source.delayWithSelector(Rx.Observable.timer(2000), function (x) { return Rx.Observable.timer(x); }); // with delay and selector + * + * @param {Observable} [subscriptionDelay] Sequence indicating the delay for the subscription to the source. + * @param {Function} delayDurationSelector Selector function to retrieve a sequence indicating the delay for each given element. + * @returns {Observable} Time-shifted sequence. + */ + delay(delayDurationSelector: (item: T) => ObservableOrPromise): Observable; + + /** + * Time shifts the observable sequence based on a subscription delay and a delay selector function for each element. + * + * @example + * 1 - res = source.delayWithSelector(function (x) { return Rx.Scheduler.timer(5000); }); // with selector only + * 1 - res = source.delayWithSelector(Rx.Observable.timer(2000), function (x) { return Rx.Observable.timer(x); }); // with delay and selector + * + * @param {Observable} [subscriptionDelay] Sequence indicating the delay for the subscription to the source. + * @param {Function} delayDurationSelector Selector function to retrieve a sequence indicating the delay for each given element. + * @returns {Observable} Time-shifted sequence. + */ + delay(subscriptionDelay: Observable, delayDurationSelector: (item: T) => ObservableOrPromise): Observable; + } + + export interface Observable { + /** + * Ignores values from an observable sequence which are followed by another value before dueTime. + * @param {Number} dueTime Duration of the debounce period for each value (specified as an integer denoting milliseconds). + * @param {Scheduler} [scheduler] Scheduler to run the debounce timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The debounced sequence. + */ + debounce(dueTime: number, scheduler?: IScheduler): Observable; + + /** + * Ignores values from an observable sequence which are followed by another value within a computed throttle duration. + * @param {Function} durationSelector Selector function to retrieve a sequence indicating the throttle duration for each given element. + * @returns {Observable} The debounced sequence. + */ + debounce(debounceDurationSelector: (item: T) => ObservableOrPromise): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more windows which are produced based on timing information. + * @param {Number} timeSpan Length of each window (specified as an integer denoting milliseconds). + * @param {Mixed} [timeShiftOrScheduler] Interval between creation of consecutive windows (specified as an integer denoting milliseconds), or an optional scheduler parameter. If not specified, the time shift corresponds to the timeSpan parameter, resulting in non-overlapping adjacent windows. + * @param {Scheduler} [scheduler] Scheduler to run windowing timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence of windows. + */ + windowWithTime(timeSpan: number, timeShift: number, scheduler?: IScheduler): Observable>; + /** + * Projects each element of an observable sequence into zero or more windows which are produced based on timing information. + * @param {Number} timeSpan Length of each window (specified as an integer denoting milliseconds). + * @param {Mixed} [timeShiftOrScheduler] Interval between creation of consecutive windows (specified as an integer denoting milliseconds), or an optional scheduler parameter. If not specified, the time shift corresponds to the timeSpan parameter, resulting in non-overlapping adjacent windows. + * @param {Scheduler} [scheduler] Scheduler to run windowing timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence of windows. + */ + windowWithTime(timeSpan: number, scheduler?: IScheduler): Observable>; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into a window that is completed when either it's full or a given amount of time has elapsed. + * @param {Number} timeSpan Maximum time length of a window. + * @param {Number} count Maximum element count of a window. + * @param {Scheduler} [scheduler] Scheduler to run windowing timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence of windows. + */ + windowWithTimeOrCount(timeSpan: number, count: number, scheduler?: IScheduler): Observable>; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more buffers which are produced based on timing information. + * @param {Number} timeSpan Length of each buffer (specified as an integer denoting milliseconds). + * @param {Mixed} [timeShiftOrScheduler] Interval between creation of consecutive buffers (specified as an integer denoting milliseconds), or an optional scheduler parameter. If not specified, the time shift corresponds to the timeSpan parameter, resulting in non-overlapping adjacent buffers. + * @param {Scheduler} [scheduler] Scheduler to run buffer timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence of buffers. + */ + bufferWithTime(timeSpan: number, timeShift: number, scheduler?: IScheduler): Observable; + /** + * Projects each element of an observable sequence into zero or more buffers which are produced based on timing information. + * @param {Number} timeSpan Length of each buffer (specified as an integer denoting milliseconds). + * @param {Mixed} [timeShiftOrScheduler] Interval between creation of consecutive buffers (specified as an integer denoting milliseconds), or an optional scheduler parameter. If not specified, the time shift corresponds to the timeSpan parameter, resulting in non-overlapping adjacent buffers. + * @param {Scheduler} [scheduler] Scheduler to run buffer timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence of buffers. + */ + bufferWithTime(timeSpan: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into a buffer that is completed when either it's full or a given amount of time has elapsed. + * @param {Number} timeSpan Maximum time length of a buffer. + * @param {Number} count Maximum element count of a buffer. + * @param {Scheduler} [scheduler] Scheduler to run bufferin timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence of buffers. + */ + bufferWithTimeOrCount(timeSpan: number, count: number, scheduler?: IScheduler): Observable; + } + + export interface TimeInterval { + value: T; + interval: number; + } + + export interface Observable { + /** + * Records the time interval between consecutive values in an observable sequence. + * + * @example + * 1 - res = source.timeInterval(); + * 2 - res = source.timeInterval(Rx.Scheduler.timeout); + * + * @param [scheduler] Scheduler used to compute time intervals. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence with time interval information on values. + */ + timeInterval(scheduler?: IScheduler): Observable>; + } + + export interface Timestamp { + value: T; + timestamp: number; + } + + export interface Observable { + /** + * Records the timestamp for each value in an observable sequence. + * + * @example + * 1 - res = source.timestamp(); // produces { value: x, timestamp: ts } + * 2 - res = source.timestamp(Rx.Scheduler.default); + * + * @param {Scheduler} [scheduler] Scheduler used to compute timestamps. If not specified, the default scheduler is used. + * @returns {Observable} An observable sequence with timestamp information on values. + */ + timestamp(scheduler?: IScheduler): Observable>; + } + + export interface Observable { + /** + * Samples the observable sequence at each interval. + * + * @example + * 1 - res = source.sample(sampleObservable); // Sampler tick sequence + * 2 - res = source.sample(5000); // 5 seconds + * 2 - res = source.sample(5000, Rx.Scheduler.timeout); // 5 seconds + * + * @param {Mixed} intervalOrSampler Interval at which to sample (specified as an integer denoting milliseconds) or Sampler Observable. + * @param {Scheduler} [scheduler] Scheduler to run the sampling timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Sampled observable sequence. + */ + sample(intervalOrSampler: number, scheduler?: IScheduler): Observable; + /** + * Samples the observable sequence at each interval. + * + * @example + * 1 - res = source.sample(sampleObservable); // Sampler tick sequence + * 2 - res = source.sample(5000); // 5 seconds + * 2 - res = source.sample(5000, Rx.Scheduler.timeout); // 5 seconds + * + * @param {Mixed} intervalOrSampler Interval at which to sample (specified as an integer denoting milliseconds) or Sampler Observable. + * @param {Scheduler} [scheduler] Scheduler to run the sampling timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Sampled observable sequence. + */ + sample(sampler: Observable, scheduler?: IScheduler): Observable; + /** + * Samples the observable sequence at each interval. + * + * @example + * 1 - res = source.sample(sampleObservable); // Sampler tick sequence + * 2 - res = source.sample(5000); // 5 seconds + * 2 - res = source.sample(5000, Rx.Scheduler.timeout); // 5 seconds + * + * @param {Mixed} intervalOrSampler Interval at which to sample (specified as an integer denoting milliseconds) or Sampler Observable. + * @param {Scheduler} [scheduler] Scheduler to run the sampling timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Sampled observable sequence. + */ + throttleLatest(interval: number, scheduler?: IScheduler): Observable; + /** + * Samples the observable sequence at each interval. + * + * @example + * 1 - res = source.sample(sampleObservable); // Sampler tick sequence + * 2 - res = source.sample(5000); // 5 seconds + * 2 - res = source.sample(5000, Rx.Scheduler.timeout); // 5 seconds + * + * @param {Mixed} intervalOrSampler Interval at which to sample (specified as an integer denoting milliseconds) or Sampler Observable. + * @param {Scheduler} [scheduler] Scheduler to run the sampling timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Sampled observable sequence. + */ + throttleLatest(sampler: Observable, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Returns the source observable sequence or the other observable sequence if dueTime elapses. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) when a timeout occurs. + * @param {Scheduler} [scheduler] Scheduler to run the timeout timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(dueTime: Date, scheduler?: IScheduler): Observable; + + /** + * Returns the source observable sequence or the other observable sequence if dueTime elapses. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) when a timeout occurs. + * @param {Observable} [other] Sequence to return in case of a timeout. If not specified, a timeout error throwing sequence will be used. + * @param {Scheduler} [scheduler] Scheduler to run the timeout timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(dueTime: Date, other?: Observable, scheduler?: IScheduler): Observable; + /** + * Returns the source observable sequence or the other observable sequence if dueTime elapses. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) when a timeout occurs. + * @param {Observable} [other] Sequence to return in case of a timeout. If not specified, a timeout error throwing sequence will be used. + * @param {Scheduler} [scheduler] Scheduler to run the timeout timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(dueTime: number, scheduler?: IScheduler): Observable; + /** + * Returns the source observable sequence or the other observable sequence if dueTime elapses. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) when a timeout occurs. + * @param {Observable} [other] Sequence to return in case of a timeout. If not specified, a timeout error throwing sequence will be used. + * @param {Scheduler} [scheduler] Scheduler to run the timeout timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(dueTime: number, other?: Observable, scheduler?: IScheduler): Observable; + + /** + * Returns the source observable sequence, switching to the other observable sequence if a timeout is signaled. + * @param {Function} timeoutDurationSelector Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(timeoutdurationSelector: (item: T) => Observable): Observable; + + /** + * Returns the source observable sequence, switching to the other observable sequence if a timeout is signaled. + * @param {Function} timeoutDurationSelector Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + * @param {Observable} other Sequence to return in case of a timeout. If not provided, this is set to Observable.throwException(). + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(timeoutdurationSelector: (item: T) => Observable, other: Observable): Observable; + + /** + * Returns the source observable sequence, switching to the other observable sequence if a timeout is signaled. + * @param {Observable} [firstTimeout] Observable sequence that represents the timeout for the first element. If not provided, this defaults to Observable.never(). + * @param {Function} timeoutDurationSelector Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + * @param {Observable} [other] Sequence to return in case of a timeout. If not provided, this is set to Observable.throwException(). + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(firstTimeout: Observable, timeoutdurationSelector: (item: T) => Observable, other?: Observable): Observable; + } + + export interface ObservableStatic { + /** + * Generates an observable sequence by iterating a state from an initial state until the condition fails. + * + * @example + * res = source.generateWithAbsoluteTime(0, + * function (x) { return return true; }, + * function (x) { return x + 1; }, + * function (x) { return x; }, + * function (x) { return new Date(); } + * }); + * + * @param {Mixed} initialState Initial state. + * @param {Function} condition Condition to terminate generation (upon returning false). + * @param {Function} iterate Iteration step function. + * @param {Function} resultSelector Selector function for results produced in the sequence. + * @param {Function} timeSelector Time selector function to control the speed of values being produced each iteration, returning Date values. + * @param {Scheduler} [scheduler] Scheduler on which to run the generator loop. If not specified, the timeout scheduler is used. + * @returns {Observable} The generated sequence. + */ + generateWithAbsoluteTime( + initialState: TState, + condition: (state: TState) => boolean, + iterate: (state: TState) => TState, + resultSelector: (state: TState) => TResult, + timeSelector: (state: TState) => Date, + scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Generates an observable sequence by iterating a state from an initial state until the condition fails. + * + * @example + * res = source.generateWithRelativeTime(0, + * function (x) { return return true; }, + * function (x) { return x + 1; }, + * function (x) { return x; }, + * function (x) { return 500; } + * ); + * + * @param {Mixed} initialState Initial state. + * @param {Function} condition Condition to terminate generation (upon returning false). + * @param {Function} iterate Iteration step function. + * @param {Function} resultSelector Selector function for results produced in the sequence. + * @param {Function} timeSelector Time selector function to control the speed of values being produced each iteration, returning integer values denoting milliseconds. + * @param {Scheduler} [scheduler] Scheduler on which to run the generator loop. If not specified, the timeout scheduler is used. + * @returns {Observable} The generated sequence. + */ + generateWithRelativeTime( + initialState: TState, + condition: (state: TState) => boolean, + iterate: (state: TState) => TState, + resultSelector: (state: TState) => TResult, + timeSelector: (state: TState) => number, + scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Time shifts the observable sequence by delaying the subscription with the specified relative time duration, using the specified scheduler to run timers. + * + * @example + * 1 - res = source.delaySubscription(5000); // 5s + * 2 - res = source.delaySubscription(5000, Rx.Scheduler.default); // 5 seconds + * + * @param {Number} dueTime Relative or absolute time shift of the subscription. + * @param {Scheduler} [scheduler] Scheduler to run the subscription delay timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Time-shifted sequence. + */ + delaySubscription(dueTime: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Skips elements for the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + * + * 1 - res = source.skipLastWithTime(5000); + * 2 - res = source.skipLastWithTime(5000, scheduler); + * + * @description + * This operator accumulates a queue with a length enough to store elements received during the initial duration window. + * As more elements are received, elements older than the specified duration are taken from the queue and produced on the + * result sequence. This causes elements to be delayed with duration. + * @param {Number} duration Duration for skipping elements from the end of the sequence. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout + * @returns {Observable} An observable sequence with the elements skipped during the specified duration from the end of the source sequence. + */ + skipLastWithTime(duration: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Returns elements within the specified duration from the end of the observable source sequence, using the specified schedulers to run timers and to drain the collected elements. + * @description + * This operator accumulates a queue with a length enough to store elements received during the initial duration window. + * As more elements are received, elements older than the specified duration are taken from the queue and produced on the + * result sequence. This causes elements to be delayed with duration. + * @param {Number} duration Duration for taking elements from the end of the sequence. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout. + * @returns {Observable} An observable sequence with the elements taken during the specified duration from the end of the source sequence. + */ + takeLastWithTime(duration: number, timerScheduler?: IScheduler, loopScheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Returns an array with the elements within the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + * @description + * This operator accumulates a queue with a length enough to store elements received during the initial duration window. + * As more elements are received, elements older than the specified duration are taken from the queue and produced on the + * result sequence. This causes elements to be delayed with duration. + * @param {Number} duration Duration for taking elements from the end of the sequence. + * @param {Scheduler} scheduler Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout. + * @returns {Observable} An observable sequence containing a single array with the elements taken during the specified duration from the end of the source sequence. + */ + takeLastBufferWithTime(duration: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Takes elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + * + * @example + * 1 - res = source.takeWithTime(5000, [optional scheduler]); + * @description + * This operator accumulates a queue with a length enough to store elements received during the initial duration window. + * As more elements are received, elements older than the specified duration are taken from the queue and produced on the + * result sequence. This causes elements to be delayed with duration. + * @param {Number} duration Duration for taking elements from the start of the sequence. + * @param {Scheduler} scheduler Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout. + * @returns {Observable} An observable sequence with the elements taken during the specified duration from the start of the source sequence. + */ + takeWithTime(duration: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Skips elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + * + * @example + * 1 - res = source.skipWithTime(5000, [optional scheduler]); + * + * @description + * Specifying a zero value for duration doesn't guarantee no elements will be dropped from the start of the source sequence. + * This is a side-effect of the asynchrony introduced by the scheduler, where the action that causes callbacks from the source sequence to be forwarded + * may not execute immediately, despite the zero due time. + * + * Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the duration. + * @param {Number} duration Duration for skipping elements from the start of the sequence. + * @param {Scheduler} scheduler Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout. + * @returns {Observable} An observable sequence with the elements skipped during the specified duration from the start of the source sequence. + */ + skipWithTime(duration: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Skips elements from the observable source sequence until the specified start time, using the specified scheduler to run timers. + * Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the start time. + * + * @examples + * 1 - res = source.skipUntilWithTime(new Date(), [scheduler]); + * 2 - res = source.skipUntilWithTime(5000, [scheduler]); + * @param {Date|Number} startTime Time to start taking elements from the source sequence. If this value is less than or equal to Date(), no elements will be skipped. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout. + * @returns {Observable} An observable sequence with the elements skipped until the specified start time. + */ + skipUntilWithTime(startTime: Date, scheduler?: IScheduler): Observable; + /** + * Skips elements from the observable source sequence until the specified start time, using the specified scheduler to run timers. + * Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the start time. + * + * @examples + * 1 - res = source.skipUntilWithTime(new Date(), [scheduler]); + * 2 - res = source.skipUntilWithTime(5000, [scheduler]); + * @param {Date|Number} startTime Time to start taking elements from the source sequence. If this value is less than or equal to Date(), no elements will be skipped. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout. + * @returns {Observable} An observable sequence with the elements skipped until the specified start time. + */ + skipUntilWithTime(duration: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Takes elements for the specified duration until the specified end time, using the specified scheduler to run timers. + * @param {Number | Date} endTime Time to stop taking elements from the source sequence. If this value is less than or equal to new Date(), the result stream will complete immediately. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. + * @returns {Observable} An observable sequence with the elements taken until the specified end time. + */ + takeUntilWithTime(endTime: Date, scheduler?: IScheduler): Observable; + /** + * Takes elements for the specified duration until the specified end time, using the specified scheduler to run timers. + * @param {Number | Date} endTime Time to stop taking elements from the source sequence. If this value is less than or equal to new Date(), the result stream will complete immediately. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. + * @returns {Observable} An observable sequence with the elements taken until the specified end time. + */ + takeUntilWithTime(duration: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Returns an Observable that emits only the first item emitted by the source Observable during sequential time windows of a specified duration. + * @param {Number} windowDuration time to wait before emitting another item after emitting the last item + * @param {Scheduler} [scheduler] the Scheduler to use internally to manage the timers that handle timeout for each item. If not provided, defaults to Scheduler.timeout. + * @returns {Observable} An Observable that performs the throttle operation. + */ + throttle(windowDuration: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Executes a transducer to transform the observable sequence + * @param {Transducer} transducer A transducer to execute + * @returns {Observable} An Observable sequence containing the results from the transducer. + */ + transduce(transducer: any): any; + //TODO: Setup transducer + } + + export interface Observable { + /** + * Performs a exclusive waiting for the first to finish before subscribing to another observable. + * Observables that come in between subscriptions will be dropped on the floor. + * @returns {Observable} A exclusive observable with only the results that happen when subscribed. + */ + switchFirst(): T; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + selectSwitchFirst(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + selectSwitchFirst(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + selectSwitchFirst(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + selectSwitchFirst(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + flatMapFirst(selector: _ValueOrSelector>): Observable; + + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + flatMapFirst(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + flatMapFirst(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + flatMapFirst(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + } + + export interface Observable { + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectManyWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectManyWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectManyWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectManyWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMapWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>): Observable; + + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMapWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMapWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMapWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + } + + export interface VirtualTimeScheduler extends IScheduler { + /** + * Adds a relative time value to an absolute time value. + * @param {Number} absolute Absolute virtual time value. + * @param {Number} relative Relative virtual time value to add. + * @return {Number} Resulting absolute virtual time sum value. + */ + add(from: TAbsolute, by: TRelative): TAbsolute; + + /** + * Converts an absolute time to a number + * @param {Any} The absolute time. + * @returns {Number} The absolute time in ms + */ + toAbsoluteTime(duetime: TAbsolute): number; + + /** + * Converts the TimeSpan value to a relative virtual time value. + * @param {Number} timeSpan TimeSpan value to convert. + * @return {Number} Corresponding relative virtual time value. + */ + toRelativeTime(duetime: number): TRelative; + + /** + * Starts the virtual time scheduler. + */ + start(): IDisposable; + + /** + * Stops the virtual time scheduler. + */ + stop(): void; + + /** + * Advances the scheduler's clock to the specified time, running all work till that point. + * @param {Number} time Absolute time to advance the scheduler's clock to. + */ + advanceTo(time: TAbsolute): void; + + /** + * Advances the scheduler's clock by the specified relative time, running all work scheduled for that timespan. + * @param {Number} time Relative time to advance the scheduler's clock by. + */ + advanceBy(time: TRelative): void; + + /** + * Advances the scheduler's clock by the specified relative time. + * @param {Number} time Relative time to advance the scheduler's clock by. + */ + sleep(time: TRelative): void; + + isEnabled: boolean; + + /** + * Gets the next scheduled item to be executed. + * @returns {ScheduledItem} The next scheduled item. + */ + getNext(): internals.ScheduledItem; + } + + export interface HistoricalScheduler extends VirtualTimeScheduler { + } + + export var HistoricalScheduler: { + /** + * Creates a new historical scheduler with the specified initial clock value. + * @constructor + * @param {Number} initialClock Initial value for the clock. + * @param {Function} comparer Comparer to determine causality of events based on absolute time. + */ + new (initialClock: number, comparer: _Comparer): HistoricalScheduler; + }; + + export interface Subscription { + /** + * Checks whether the given subscription is equal to the current instance. + * @param other Subscription object to check for equality. + * @returns {Boolean} true if both objects are equal; false otherwise. + */ + equals(other: Subscription): boolean; + /** + * Returns a string representation of the current Subscription value. + * @returns {String} String representation of the current Subscription value. + */ + toString(): string; + } + + interface SubscriptionStatic { + /** + * Creates a new subscription object with the given virtual subscription and unsubscription time. + * + * @constructor + * @param {Number} subscribe Virtual time at which the subscription occurred. + * @param {Number} unsubscribe Virtual time at which the unsubscription occurred. + */ + new (subscribeAt: number, unsubscribeAt?: number): Subscription; + } + + export var Subscription: SubscriptionStatic; + + export interface Recorded { + /** + * Checks whether the given recorded object is equal to the current instance. + * + * @param {Recorded} other Recorded object to check for equality. + * @returns {Boolean} true if both objects are equal; false otherwise. + */ + equals(other: Recorded): boolean; + /** + * Returns a string representation of the current Recorded value. + * + * @returns {String} String representation of the current Recorded value. + */ + toString(): string; + time: number; + value: any; + } + + interface RecordedStatic { + /** + * Creates a new object recording the production of the specified value at the given virtual time. + * + * @constructor + * @param {Number} time Virtual time the value was produced on. + * @param {Mixed} value Value that was produced. + * @param {Function} comparer An optional comparer. + */ + new (time: number, value: any, equalityComparer?: _Comparer): Recorded; + } + + export var Recorded: RecordedStatic; + + export var ReactiveTest: { + /** Default virtual time used for creation of observable sequences in unit tests. */ + created: number; + /** Default virtual time used to subscribe to observable sequences in unit tests. */ + subscribed: number; + /** Default virtual time used to dispose subscriptions in unit tests. */ + disposed: number; + + /** + * Factory method for an OnNext notification record at a given time with a given value or a predicate function. + * + * 1 - ReactiveTest.onNext(200, 42); + * 2 - ReactiveTest.onNext(200, function (x) { return x.length == 2; }); + * + * @param ticks Recorded virtual time the OnNext notification occurs. + * @param value Recorded value stored in the OnNext notification or a predicate. + * @return Recorded OnNext notification. + */ + onNext(ticks: number, value: any): Recorded; + /** + * Factory method for an OnNext notification record at a given time with a given value or a predicate function. + * + * 1 - ReactiveTest.onNext(200, 42); + * 2 - ReactiveTest.onNext(200, function (x) { return x.length == 2; }); + * + * @param ticks Recorded virtual time the OnNext notification occurs. + * @param value Recorded value stored in the OnNext notification or a predicate. + * @return Recorded OnNext notification. + */ + onNext(ticks: number, predicate: (value: any) => boolean): Recorded; + /** + * Factory method for an OnError notification record at a given time with a given error. + * + * 1 - ReactiveTest.onNext(200, new Error('error')); + * 2 - ReactiveTest.onNext(200, function (e) { return e.message === 'error'; }); + * + * @param ticks Recorded virtual time the OnError notification occurs. + * @param exception Recorded exception stored in the OnError notification. + * @return Recorded OnError notification. + */ + onError(ticks: number, exception: any): Recorded; + /** + * Factory method for an OnError notification record at a given time with a given error. + * + * 1 - ReactiveTest.onNext(200, new Error('error')); + * 2 - ReactiveTest.onNext(200, function (e) { return e.message === 'error'; }); + * + * @param ticks Recorded virtual time the OnError notification occurs. + * @param exception Recorded exception stored in the OnError notification. + * @return Recorded OnError notification. + */ + onError(ticks: number, predicate: (exception: any) => boolean): Recorded; + /** + * Factory method for an OnCompleted notification record at a given time. + * + * @param ticks Recorded virtual time the OnCompleted notification occurs. + * @return Recorded OnCompleted notification. + */ + onCompleted(ticks: number): Recorded; + + /** + * Factory method for a subscription record based on a given subscription and disposal time. + * + * @param start Virtual time indicating when the subscription was created. + * @param end Virtual time indicating when the subscription was disposed. + * @return Subscription object. + */ + subscribe(subscribeAt: number, unsubscribeAt?: number): Subscription; + } + + export interface MockObserver extends Observer { + messages: Recorded[]; + } + + interface MockObserverStatic extends ObserverStatic { + new (scheduler: IScheduler): MockObserver; + } + + export var MockObserver: MockObserverStatic; + + + export interface TestScheduler extends VirtualTimeScheduler { + /** + * Creates a cold observable using the specified timestamped notification messages either as an array or arguments. + * @param messages Notifications to surface through the created sequence at their specified virtual time offsets from the sequence subscription time. + * @return Cold observable sequence that can be used to assert the timing of subscriptions and notifications. + */ + createColdObservable(...records: Recorded[]): Observable; + /** + * Creates a hot observable using the specified timestamped notification messages either as an array or arguments. + * @param messages Notifications to surface through the created sequence at their specified absolute virtual times. + * @return Hot observable sequence that can be used to assert the timing of subscriptions and notifications. + */ + createHotObservable(...records: Recorded[]): Observable; + /** + * Creates an observer that records received notification messages and timestamps those. + * @return Observer that can be used to assert the timing of received notifications. + */ + createObserver(): MockObserver; + + /** + * Creates a resolved promise with the given value and ticks + * @param {Number} ticks The absolute time of the resolution. + * @param {Any} value The value to yield at the given tick. + * @returns {MockPromise} A mock Promise which fulfills with the given value. + */ + createResolvedPromise(ticks: number, value: T): IPromise; + /** + * Creates a rejected promise with the given reason and ticks + * @param {Number} ticks The absolute time of the resolution. + * @param {Any} reason The reason for rejection to yield at the given tick. + * @returns {MockPromise} A mock Promise which rejects with the given reason. + */ + createRejectedPromise(ticks: number, value: T): IPromise; + + /** + * Starts the test scheduler and uses the specified virtual times to invoke the factory function, subscribe to the resulting sequence, and dispose the subscription. + * + * @param create Factory method to create an observable sequence. + * @param created Virtual time at which to invoke the factory to create an observable sequence. + * @param subscribed Virtual time at which to subscribe to the created observable sequence. + * @param disposed Virtual time at which to dispose the subscription. + * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. + */ + startWithTiming(create: () => Observable, createdAt: number, subscribedAt: number, disposedAt: number): MockObserver; + /** + * Starts the test scheduler and uses the specified virtual time to dispose the subscription to the sequence obtained through the factory function. + * Default virtual times are used for factory invocation and sequence subscription. + * + * @param create Factory method to create an observable sequence. + * @param disposed Virtual time at which to dispose the subscription. + * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. + */ + startWithDispose(create: () => Observable, disposedAt: number): MockObserver; + /** + * Starts the test scheduler and uses default virtual times to invoke the factory function, to subscribe to the resulting sequence, and to dispose the subscription. + * + * @param create Factory method to create an observable sequence. + * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. + */ + startWithCreate(create: () => Observable): MockObserver; + } + + export var TestScheduler: { + new (): TestScheduler; + } + + export interface AnonymousObservable extends Observable { } + + export interface GroupedObservable extends Observable { + key: TKey; + underlyingObservable: Observable; + } + + export interface AsyncSubject extends Subject { } + + interface AsyncSubjectStatic { + /** + * Creates a subject that can only receive one value and that value is cached for all future observations. + * @constructor + */ + new (): AsyncSubject; + } + + /** + * Represents the result of an asynchronous operation. + * The last value before the OnCompleted notification, or the error received through OnError, is sent to all subscribed observers. + */ + export var AsyncSubject: AsyncSubjectStatic; + + export interface BehaviorSubject extends Subject { + /** + * Gets the current value or throws an exception. + * Value is frozen after onCompleted is called. + * After onError is called always throws the specified exception. + * An exception is always thrown after dispose is called. + * @returns {Mixed} The initial value passed to the constructor until onNext is called; after which, the last value passed to onNext. + */ + getValue(): T; + } + + interface BehaviorSubjectStatic { + /** + * Initializes a new instance of the BehaviorSubject class which creates a subject that caches its last value and starts with the specified value. + * @param {Mixed} value Initial value sent to observers when no other value has been received by the subject yet. + */ + new (initialValue: T): BehaviorSubject; + } + + /** + * Represents a value that changes over time. + * Observers can subscribe to the subject to receive the last (or initial) value and all subsequent notifications. + */ + export var BehaviorSubject: BehaviorSubjectStatic; + + export interface ReplaySubject extends Subject { } + + interface ReplaySubjectStatic { + /** + * Initializes a new instance of the ReplaySubject class with the specified buffer size, window size and scheduler. + * @param {Number} [bufferSize] Maximum element count of the replay buffer. + * @param {Number} [windowSize] Maximum time length of the replay buffer. + * @param {Scheduler} [scheduler] Scheduler the observers are invoked on. + */ + new (bufferSize?: number, window?: number, scheduler?: IScheduler): ReplaySubject; + } + + /** + * Represents an object that is both an observable sequence as well as an observer. + * Each notification is broadcasted to all subscribed and future observers, subject to buffer trimming policies. + */ + export var ReplaySubject: ReplaySubjectStatic; + + export interface AnonymousSubject extends Subject { } + + interface AnonymousSubjectStatic { + /** + * Creates a subject that can only receive one value and that value is cached for all future observations. + * @constructor + */ + new (): AnonymousSubject; + } + + /** + * Represents the result of an asynchronous operation. + * The last value before the OnCompleted notification, or the error received through OnError, is sent to all subscribed observers. + */ + export var AnonymousSubject: AnonymousSubjectStatic; + + /** + * Used to pause and resume streams. + */ + export interface Pauser { + /** + * Pauses the underlying sequence. + */ + pause(): void; + + /** + * Resumes the underlying sequence. + */ + resume(): void; + } + +} + +declare module "rx" { export = Rx; } +declare module "rx.all" { export = Rx; } diff --git a/node_modules/rx/ts/rx.async.d.ts b/node_modules/rx/ts/rx.async.d.ts new file mode 100644 index 0000000..15915ee --- /dev/null +++ b/node_modules/rx/ts/rx.async.d.ts @@ -0,0 +1,288 @@ +declare module Rx { + + export interface ObservableStatic { + wrap(fn: Function): Observable; + spawn(fn: Function): Observable; + } + + export interface ObservableStatic { + /** + * Invokes the specified function asynchronously on the specified scheduler, surfacing the result through an observable sequence. + * + * @example + * var res = Rx.Observable.start(function () { console.log('hello'); }); + * var res = Rx.Observable.start(function () { console.log('hello'); }, Rx.Scheduler.timeout); + * var res = Rx.Observable.start(function () { this.log('hello'); }, Rx.Scheduler.timeout, console); + * + * @param {Function} func Function to run asynchronously. + * @param {Scheduler} [scheduler] Scheduler to run the function on. If not specified, defaults to Scheduler.timeout. + * @param [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @returns {Observable} An observable sequence exposing the function's result value, or an exception. + * + * Remarks + * * The function is called immediately, not during the subscription of the resulting sequence. + * * Multiple subscriptions to the resulting sequence can observe the function's result. + */ + start(func: () => T, scheduler?: IScheduler, context?: any): Observable; + } + + export interface ObservableStatic { + /** + * Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + * @param {Function} function Function to convert to an asynchronous function. + * @param {Scheduler} [scheduler] Scheduler to run the function on. If not specified, defaults to Scheduler.timeout. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @returns {Function} Asynchronous function. + */ + toAsync(func: () => TResult, context?: any, scheduler?: IScheduler): () => Observable; + /** + * Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + * @param {Function} function Function to convert to an asynchronous function. + * @param {Scheduler} [scheduler] Scheduler to run the function on. If not specified, defaults to Scheduler.timeout. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @returns {Function} Asynchronous function. + */ + toAsync(func: (arg1: T1) => TResult, context?: any, scheduler?: IScheduler): (arg1: T1) => Observable; + /** + * Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + * @param {Function} function Function to convert to an asynchronous function. + * @param {Scheduler} [scheduler] Scheduler to run the function on. If not specified, defaults to Scheduler.timeout. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @returns {Function} Asynchronous function. + */ + toAsync(func: (arg1: T1, arg2: T2) => TResult, context?: any, scheduler?: IScheduler): (arg1: T1, arg2: T2) => Observable; + /** + * Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + * @param {Function} function Function to convert to an asynchronous function. + * @param {Scheduler} [scheduler] Scheduler to run the function on. If not specified, defaults to Scheduler.timeout. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @returns {Function} Asynchronous function. + */ + toAsync(func: (arg1: T1, arg2: T2, arg3: T3) => TResult, context?: any, scheduler?: IScheduler): (arg1: T1, arg2: T2, arg3: T3) => Observable; + /** + * Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + * @param {Function} function Function to convert to an asynchronous function. + * @param {Scheduler} [scheduler] Scheduler to run the function on. If not specified, defaults to Scheduler.timeout. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @returns {Function} Asynchronous function. + */ + toAsync(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => TResult, context?: any, scheduler?: IScheduler): (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Observable; + } + + export interface ObservableStatic { + /** + * Converts a callback function to an observable sequence. + * + * @param {Function} function Function with a callback as the last parameter to convert to an Observable sequence. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback to produce a single item to yield on next. + * @returns {Function} A function, when executed with the required parameters minus the callback, produces an Observable sequence with a single value of the arguments to the callback as an array. + */ + fromCallback(func: Function, context: any, selector: Function): (...args: any[]) => Observable; + /** + * Converts a callback function to an observable sequence. + * + * @param {Function} function Function with a callback as the last parameter to convert to an Observable sequence. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback to produce a single item to yield on next. + * @returns {Function} A function, when executed with the required parameters minus the callback, produces an Observable sequence with a single value of the arguments to the callback as an array. + */ + fromCallback(func: (arg1: T1, callback: (result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1) => Observable; + /** + * Converts a callback function to an observable sequence. + * + * @param {Function} function Function with a callback as the last parameter to convert to an Observable sequence. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback to produce a single item to yield on next. + * @returns {Function} A function, when executed with the required parameters minus the callback, produces an Observable sequence with a single value of the arguments to the callback as an array. + */ + fromCallback(func: (arg1: T1, arg2: T2, callback: (result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2) => Observable; + /** + * Converts a callback function to an observable sequence. + * + * @param {Function} function Function with a callback as the last parameter to convert to an Observable sequence. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback to produce a single item to yield on next. + * @returns {Function} A function, when executed with the required parameters minus the callback, produces an Observable sequence with a single value of the arguments to the callback as an array. + */ + fromCallback(func: (arg1: T1, arg2: T2, arg3: T3, callback: (result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3) => Observable; + /** + * Converts a callback function to an observable sequence. + * + * @param {Function} function Function with a callback as the last parameter to convert to an Observable sequence. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback to produce a single item to yield on next. + * @returns {Function} A function, when executed with the required parameters minus the callback, produces an Observable sequence with a single value of the arguments to the callback as an array. + */ + fromCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Observable; + /** + * Converts a callback function to an observable sequence. + * + * @param {Function} function Function with a callback as the last parameter to convert to an Observable sequence. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback to produce a single item to yield on next. + * @returns {Function} A function, when executed with the required parameters minus the callback, produces an Observable sequence with a single value of the arguments to the callback as an array. + */ + fromCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Observable; + /** + * Converts a callback function to an observable sequence. + * + * @param {Function} function Function with a callback as the last parameter to convert to an Observable sequence. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback to produce a single item to yield on next. + * @returns {Function} A function, when executed with the required parameters minus the callback, produces an Observable sequence with a single value of the arguments to the callback as an array. + */ + fromCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, callback: (result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Observable; + /** + * Converts a callback function to an observable sequence. + * + * @param {Function} function Function with a callback as the last parameter to convert to an Observable sequence. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback to produce a single item to yield on next. + * @returns {Function} A function, when executed with the required parameters minus the callback, produces an Observable sequence with a single value of the arguments to the callback as an array. + */ + fromCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7, callback: (result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7) => Observable; + /** + * Converts a callback function to an observable sequence. + * + * @param {Function} function Function with a callback as the last parameter to convert to an Observable sequence. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback to produce a single item to yield on next. + * @returns {Function} A function, when executed with the required parameters minus the callback, produces an Observable sequence with a single value of the arguments to the callback as an array. + */ + fromCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7, arg8: T8, callback: (result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7, arg8: T8) => Observable; + /** + * Converts a callback function to an observable sequence. + * + * @param {Function} function Function with a callback as the last parameter to convert to an Observable sequence. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback to produce a single item to yield on next. + * @returns {Function} A function, when executed with the required parameters minus the callback, produces an Observable sequence with a single value of the arguments to the callback as an array. + */ + fromCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7, arg8: T8, arg9: T9, callback: (result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7, arg8: T8, arg9: T9) => Observable; + } + + export interface ObservableStatic { + /** + * Converts a Node.js callback style function to an observable sequence. This must be in function (err, ...) format. + * @param {Function} func The function to call + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback minus the error to produce a single item to yield on next. + * @returns {Function} An async function which when applied, returns an observable sequence with the callback arguments as an array. + */ + fromNodeCallback(func: Function, context?: any, selector?: Function): (...args: any[]) => Observable; + /** + * Converts a Node.js callback style function to an observable sequence. This must be in function (err, ...) format. + * @param {Function} func The function to call + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback minus the error to produce a single item to yield on next. + * @returns {Function} An async function which when applied, returns an observable sequence with the callback arguments as an array. + */ + fromNodeCallback(func: (arg1: T1, callback: (err: any, result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1) => Observable; + /** + * Converts a Node.js callback style function to an observable sequence. This must be in function (err, ...) format. + * @param {Function} func The function to call + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback minus the error to produce a single item to yield on next. + * @returns {Function} An async function which when applied, returns an observable sequence with the callback arguments as an array. + */ + fromNodeCallback(func: (arg1: T1, arg2: T2, callback: (err: any, result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2) => Observable; + /** + * Converts a Node.js callback style function to an observable sequence. This must be in function (err, ...) format. + * @param {Function} func The function to call + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback minus the error to produce a single item to yield on next. + * @returns {Function} An async function which when applied, returns an observable sequence with the callback arguments as an array. + */ + fromNodeCallback(func: (arg1: T1, arg2: T2, arg3: T3, callback: (err: any, result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3) => Observable; + /** + * Converts a Node.js callback style function to an observable sequence. This must be in function (err, ...) format. + * @param {Function} func The function to call + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback minus the error to produce a single item to yield on next. + * @returns {Function} An async function which when applied, returns an observable sequence with the callback arguments as an array. + */ + fromNodeCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: any, result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Observable; + /** + * Converts a Node.js callback style function to an observable sequence. This must be in function (err, ...) format. + * @param {Function} func The function to call + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback minus the error to produce a single item to yield on next. + * @returns {Function} An async function which when applied, returns an observable sequence with the callback arguments as an array. + */ + fromNodeCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: any, result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Observable; + /** + * Converts a Node.js callback style function to an observable sequence. This must be in function (err, ...) format. + * @param {Function} func The function to call + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback minus the error to produce a single item to yield on next. + * @returns {Function} An async function which when applied, returns an observable sequence with the callback arguments as an array. + */ + fromNodeCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, callback: (err: any, result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Observable; + /** + * Converts a Node.js callback style function to an observable sequence. This must be in function (err, ...) format. + * @param {Function} func The function to call + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback minus the error to produce a single item to yield on next. + * @returns {Function} An async function which when applied, returns an observable sequence with the callback arguments as an array. + */ + fromNodeCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7, callback: (err: any, result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7) => Observable; + /** + * Converts a Node.js callback style function to an observable sequence. This must be in function (err, ...) format. + * @param {Function} func The function to call + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback minus the error to produce a single item to yield on next. + * @returns {Function} An async function which when applied, returns an observable sequence with the callback arguments as an array. + */ + fromNodeCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7, arg8: T8, callback: (err: any, result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7, arg8: T8) => Observable; + /** + * Converts a Node.js callback style function to an observable sequence. This must be in function (err, ...) format. + * @param {Function} func The function to call + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback minus the error to produce a single item to yield on next. + * @returns {Function} An async function which when applied, returns an observable sequence with the callback arguments as an array. + */ + fromNodeCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7, arg8: T8, arg9: T9, callback: (err: any, result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7, arg8: T8, arg9: T9) => Observable; + } + + export interface ObservableStatic { + /** + * Creates an observable sequence by adding an event listener to the matching DOMElement or each item in the NodeList. + * @param {Object} element The DOMElement or NodeList to attach a listener. + * @param {String} eventName The event name to attach the observable sequence. + * @param {Function} [selector] A selector which takes the arguments from the event handler to produce a single item to yield on next. + * @returns {Observable} An observable sequence of events from the specified element and the specified event. + */ + fromEvent(element: EventTarget, eventName: string, selector?: (arguments: any[]) => T): Observable; + /** + * Creates an observable sequence by adding an event listener to the matching DOMElement or each item in the NodeList. + * @param {Object} element The DOMElement or NodeList to attach a listener. + * @param {String} eventName The event name to attach the observable sequence. + * @param {Function} [selector] A selector which takes the arguments from the event handler to produce a single item to yield on next. + * @returns {Observable} An observable sequence of events from the specified element and the specified event. + */ + fromEvent(element: { on: (name: string, cb: (e: any) => any) => void; off: (name: string, cb: (e: any) => any) => void }, eventName: string, selector?: (arguments: any[]) => T): Observable; + } + + export interface ObservableStatic { + /** + * Creates an observable sequence from an event emitter via an addHandler/removeHandler pair. + * @param {Function} addHandler The function to add a handler to the emitter. + * @param {Function} [removeHandler] The optional function to remove a handler from an emitter. + * @param {Function} [selector] A selector which takes the arguments from the event handler to produce a single item to yield on next. + * @returns {Observable} An observable sequence which wraps an event from an event emitter + */ + fromEventPattern(addHandler: (handler: Function) => void, removeHandler: (handler: Function) => void, selector?: (arguments: any[]) => T): Observable; + } + + export interface ObservableStatic { + /** + * Invokes the asynchronous function, surfacing the result through an observable sequence. + * @param {Function} functionAsync Asynchronous function which returns a Promise to run. + * @returns {Observable} An observable sequence exposing the function's result value, or an exception. + */ + startAsync(functionAsync: () => IPromise): Observable; + } + +} +declare module "rx.async" { export = Rx; } diff --git a/node_modules/rx/ts/rx.async.es6.d.ts b/node_modules/rx/ts/rx.async.es6.d.ts new file mode 100644 index 0000000..15915ee --- /dev/null +++ b/node_modules/rx/ts/rx.async.es6.d.ts @@ -0,0 +1,288 @@ +declare module Rx { + + export interface ObservableStatic { + wrap(fn: Function): Observable; + spawn(fn: Function): Observable; + } + + export interface ObservableStatic { + /** + * Invokes the specified function asynchronously on the specified scheduler, surfacing the result through an observable sequence. + * + * @example + * var res = Rx.Observable.start(function () { console.log('hello'); }); + * var res = Rx.Observable.start(function () { console.log('hello'); }, Rx.Scheduler.timeout); + * var res = Rx.Observable.start(function () { this.log('hello'); }, Rx.Scheduler.timeout, console); + * + * @param {Function} func Function to run asynchronously. + * @param {Scheduler} [scheduler] Scheduler to run the function on. If not specified, defaults to Scheduler.timeout. + * @param [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @returns {Observable} An observable sequence exposing the function's result value, or an exception. + * + * Remarks + * * The function is called immediately, not during the subscription of the resulting sequence. + * * Multiple subscriptions to the resulting sequence can observe the function's result. + */ + start(func: () => T, scheduler?: IScheduler, context?: any): Observable; + } + + export interface ObservableStatic { + /** + * Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + * @param {Function} function Function to convert to an asynchronous function. + * @param {Scheduler} [scheduler] Scheduler to run the function on. If not specified, defaults to Scheduler.timeout. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @returns {Function} Asynchronous function. + */ + toAsync(func: () => TResult, context?: any, scheduler?: IScheduler): () => Observable; + /** + * Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + * @param {Function} function Function to convert to an asynchronous function. + * @param {Scheduler} [scheduler] Scheduler to run the function on. If not specified, defaults to Scheduler.timeout. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @returns {Function} Asynchronous function. + */ + toAsync(func: (arg1: T1) => TResult, context?: any, scheduler?: IScheduler): (arg1: T1) => Observable; + /** + * Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + * @param {Function} function Function to convert to an asynchronous function. + * @param {Scheduler} [scheduler] Scheduler to run the function on. If not specified, defaults to Scheduler.timeout. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @returns {Function} Asynchronous function. + */ + toAsync(func: (arg1: T1, arg2: T2) => TResult, context?: any, scheduler?: IScheduler): (arg1: T1, arg2: T2) => Observable; + /** + * Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + * @param {Function} function Function to convert to an asynchronous function. + * @param {Scheduler} [scheduler] Scheduler to run the function on. If not specified, defaults to Scheduler.timeout. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @returns {Function} Asynchronous function. + */ + toAsync(func: (arg1: T1, arg2: T2, arg3: T3) => TResult, context?: any, scheduler?: IScheduler): (arg1: T1, arg2: T2, arg3: T3) => Observable; + /** + * Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + * @param {Function} function Function to convert to an asynchronous function. + * @param {Scheduler} [scheduler] Scheduler to run the function on. If not specified, defaults to Scheduler.timeout. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @returns {Function} Asynchronous function. + */ + toAsync(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => TResult, context?: any, scheduler?: IScheduler): (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Observable; + } + + export interface ObservableStatic { + /** + * Converts a callback function to an observable sequence. + * + * @param {Function} function Function with a callback as the last parameter to convert to an Observable sequence. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback to produce a single item to yield on next. + * @returns {Function} A function, when executed with the required parameters minus the callback, produces an Observable sequence with a single value of the arguments to the callback as an array. + */ + fromCallback(func: Function, context: any, selector: Function): (...args: any[]) => Observable; + /** + * Converts a callback function to an observable sequence. + * + * @param {Function} function Function with a callback as the last parameter to convert to an Observable sequence. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback to produce a single item to yield on next. + * @returns {Function} A function, when executed with the required parameters minus the callback, produces an Observable sequence with a single value of the arguments to the callback as an array. + */ + fromCallback(func: (arg1: T1, callback: (result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1) => Observable; + /** + * Converts a callback function to an observable sequence. + * + * @param {Function} function Function with a callback as the last parameter to convert to an Observable sequence. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback to produce a single item to yield on next. + * @returns {Function} A function, when executed with the required parameters minus the callback, produces an Observable sequence with a single value of the arguments to the callback as an array. + */ + fromCallback(func: (arg1: T1, arg2: T2, callback: (result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2) => Observable; + /** + * Converts a callback function to an observable sequence. + * + * @param {Function} function Function with a callback as the last parameter to convert to an Observable sequence. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback to produce a single item to yield on next. + * @returns {Function} A function, when executed with the required parameters minus the callback, produces an Observable sequence with a single value of the arguments to the callback as an array. + */ + fromCallback(func: (arg1: T1, arg2: T2, arg3: T3, callback: (result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3) => Observable; + /** + * Converts a callback function to an observable sequence. + * + * @param {Function} function Function with a callback as the last parameter to convert to an Observable sequence. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback to produce a single item to yield on next. + * @returns {Function} A function, when executed with the required parameters minus the callback, produces an Observable sequence with a single value of the arguments to the callback as an array. + */ + fromCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Observable; + /** + * Converts a callback function to an observable sequence. + * + * @param {Function} function Function with a callback as the last parameter to convert to an Observable sequence. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback to produce a single item to yield on next. + * @returns {Function} A function, when executed with the required parameters minus the callback, produces an Observable sequence with a single value of the arguments to the callback as an array. + */ + fromCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Observable; + /** + * Converts a callback function to an observable sequence. + * + * @param {Function} function Function with a callback as the last parameter to convert to an Observable sequence. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback to produce a single item to yield on next. + * @returns {Function} A function, when executed with the required parameters minus the callback, produces an Observable sequence with a single value of the arguments to the callback as an array. + */ + fromCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, callback: (result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Observable; + /** + * Converts a callback function to an observable sequence. + * + * @param {Function} function Function with a callback as the last parameter to convert to an Observable sequence. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback to produce a single item to yield on next. + * @returns {Function} A function, when executed with the required parameters minus the callback, produces an Observable sequence with a single value of the arguments to the callback as an array. + */ + fromCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7, callback: (result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7) => Observable; + /** + * Converts a callback function to an observable sequence. + * + * @param {Function} function Function with a callback as the last parameter to convert to an Observable sequence. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback to produce a single item to yield on next. + * @returns {Function} A function, when executed with the required parameters minus the callback, produces an Observable sequence with a single value of the arguments to the callback as an array. + */ + fromCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7, arg8: T8, callback: (result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7, arg8: T8) => Observable; + /** + * Converts a callback function to an observable sequence. + * + * @param {Function} function Function with a callback as the last parameter to convert to an Observable sequence. + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback to produce a single item to yield on next. + * @returns {Function} A function, when executed with the required parameters minus the callback, produces an Observable sequence with a single value of the arguments to the callback as an array. + */ + fromCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7, arg8: T8, arg9: T9, callback: (result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7, arg8: T8, arg9: T9) => Observable; + } + + export interface ObservableStatic { + /** + * Converts a Node.js callback style function to an observable sequence. This must be in function (err, ...) format. + * @param {Function} func The function to call + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback minus the error to produce a single item to yield on next. + * @returns {Function} An async function which when applied, returns an observable sequence with the callback arguments as an array. + */ + fromNodeCallback(func: Function, context?: any, selector?: Function): (...args: any[]) => Observable; + /** + * Converts a Node.js callback style function to an observable sequence. This must be in function (err, ...) format. + * @param {Function} func The function to call + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback minus the error to produce a single item to yield on next. + * @returns {Function} An async function which when applied, returns an observable sequence with the callback arguments as an array. + */ + fromNodeCallback(func: (arg1: T1, callback: (err: any, result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1) => Observable; + /** + * Converts a Node.js callback style function to an observable sequence. This must be in function (err, ...) format. + * @param {Function} func The function to call + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback minus the error to produce a single item to yield on next. + * @returns {Function} An async function which when applied, returns an observable sequence with the callback arguments as an array. + */ + fromNodeCallback(func: (arg1: T1, arg2: T2, callback: (err: any, result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2) => Observable; + /** + * Converts a Node.js callback style function to an observable sequence. This must be in function (err, ...) format. + * @param {Function} func The function to call + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback minus the error to produce a single item to yield on next. + * @returns {Function} An async function which when applied, returns an observable sequence with the callback arguments as an array. + */ + fromNodeCallback(func: (arg1: T1, arg2: T2, arg3: T3, callback: (err: any, result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3) => Observable; + /** + * Converts a Node.js callback style function to an observable sequence. This must be in function (err, ...) format. + * @param {Function} func The function to call + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback minus the error to produce a single item to yield on next. + * @returns {Function} An async function which when applied, returns an observable sequence with the callback arguments as an array. + */ + fromNodeCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: any, result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Observable; + /** + * Converts a Node.js callback style function to an observable sequence. This must be in function (err, ...) format. + * @param {Function} func The function to call + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback minus the error to produce a single item to yield on next. + * @returns {Function} An async function which when applied, returns an observable sequence with the callback arguments as an array. + */ + fromNodeCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: any, result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Observable; + /** + * Converts a Node.js callback style function to an observable sequence. This must be in function (err, ...) format. + * @param {Function} func The function to call + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback minus the error to produce a single item to yield on next. + * @returns {Function} An async function which when applied, returns an observable sequence with the callback arguments as an array. + */ + fromNodeCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, callback: (err: any, result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Observable; + /** + * Converts a Node.js callback style function to an observable sequence. This must be in function (err, ...) format. + * @param {Function} func The function to call + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback minus the error to produce a single item to yield on next. + * @returns {Function} An async function which when applied, returns an observable sequence with the callback arguments as an array. + */ + fromNodeCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7, callback: (err: any, result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7) => Observable; + /** + * Converts a Node.js callback style function to an observable sequence. This must be in function (err, ...) format. + * @param {Function} func The function to call + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback minus the error to produce a single item to yield on next. + * @returns {Function} An async function which when applied, returns an observable sequence with the callback arguments as an array. + */ + fromNodeCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7, arg8: T8, callback: (err: any, result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7, arg8: T8) => Observable; + /** + * Converts a Node.js callback style function to an observable sequence. This must be in function (err, ...) format. + * @param {Function} func The function to call + * @param {Mixed} [context] The context for the func parameter to be executed. If not specified, defaults to undefined. + * @param {Function} [selector] A selector which takes the arguments from the callback minus the error to produce a single item to yield on next. + * @returns {Function} An async function which when applied, returns an observable sequence with the callback arguments as an array. + */ + fromNodeCallback(func: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7, arg8: T8, arg9: T9, callback: (err: any, result: TResult) => any) => any, context?: any, selector?: Function): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7, arg8: T8, arg9: T9) => Observable; + } + + export interface ObservableStatic { + /** + * Creates an observable sequence by adding an event listener to the matching DOMElement or each item in the NodeList. + * @param {Object} element The DOMElement or NodeList to attach a listener. + * @param {String} eventName The event name to attach the observable sequence. + * @param {Function} [selector] A selector which takes the arguments from the event handler to produce a single item to yield on next. + * @returns {Observable} An observable sequence of events from the specified element and the specified event. + */ + fromEvent(element: EventTarget, eventName: string, selector?: (arguments: any[]) => T): Observable; + /** + * Creates an observable sequence by adding an event listener to the matching DOMElement or each item in the NodeList. + * @param {Object} element The DOMElement or NodeList to attach a listener. + * @param {String} eventName The event name to attach the observable sequence. + * @param {Function} [selector] A selector which takes the arguments from the event handler to produce a single item to yield on next. + * @returns {Observable} An observable sequence of events from the specified element and the specified event. + */ + fromEvent(element: { on: (name: string, cb: (e: any) => any) => void; off: (name: string, cb: (e: any) => any) => void }, eventName: string, selector?: (arguments: any[]) => T): Observable; + } + + export interface ObservableStatic { + /** + * Creates an observable sequence from an event emitter via an addHandler/removeHandler pair. + * @param {Function} addHandler The function to add a handler to the emitter. + * @param {Function} [removeHandler] The optional function to remove a handler from an emitter. + * @param {Function} [selector] A selector which takes the arguments from the event handler to produce a single item to yield on next. + * @returns {Observable} An observable sequence which wraps an event from an event emitter + */ + fromEventPattern(addHandler: (handler: Function) => void, removeHandler: (handler: Function) => void, selector?: (arguments: any[]) => T): Observable; + } + + export interface ObservableStatic { + /** + * Invokes the asynchronous function, surfacing the result through an observable sequence. + * @param {Function} functionAsync Asynchronous function which returns a Promise to run. + * @returns {Observable} An observable sequence exposing the function's result value, or an exception. + */ + startAsync(functionAsync: () => IPromise): Observable; + } + +} +declare module "rx.async" { export = Rx; } diff --git a/node_modules/rx/ts/rx.backpressure.d.ts b/node_modules/rx/ts/rx.backpressure.d.ts new file mode 100644 index 0000000..3229a94 --- /dev/null +++ b/node_modules/rx/ts/rx.backpressure.d.ts @@ -0,0 +1,93 @@ +declare module Rx { + + /** + * Used to pause and resume streams. + */ + export interface Pauser { + /** + * Pauses the underlying sequence. + */ + pause(): void; + + /** + * Resumes the underlying sequence. + */ + resume(): void; + } + + export interface Observable { + /** + * Pauses the underlying observable sequence based upon the observable sequence which yields true/false. + * @example + * var pauser = new Rx.Subject(); + * var source = Rx.Observable.interval(100).pausable(pauser); + * @param {Observable} pauser The observable sequence used to pause the underlying sequence. + * @returns {Observable} The observable sequence which is paused based upon the pauser. + */ + pausable(pauser?: Observable): PausableObservable; + } + + export interface PausableObservable extends Observable { + pause(): void; + resume(): void; + } + + export interface Observable { + /** + * Pauses the underlying observable sequence based upon the observable sequence which yields true/false, + * and yields the values that were buffered while paused. + * @example + * var pauser = new Rx.Subject(); + * var source = Rx.Observable.interval(100).pausableBuffered(pauser); + * @param {Observable} pauser The observable sequence used to pause the underlying sequence. + * @returns {Observable} The observable sequence which is paused based upon the pauser. + */ + pausableBuffered(pauser?: Observable): PausableObservable; + } + + export interface Observable { + /** + * Attaches a controller to the observable sequence with the ability to queue. + * @example + * var source = Rx.Observable.interval(100).controlled(); + * source.request(3); // Reads 3 values + * @param {bool} enableQueue truthy value to determine if values should be queued pending the next request + * @param {Scheduler} scheduler determines how the requests will be scheduled + * @returns {Observable} The observable sequence which only propagates values on request. + */ + controlled(enableQueue?: boolean, scheduler?: IScheduler): ControlledObservable; + } + + export interface ControlledObservable extends Observable { + request(numberOfItems?: number): IDisposable; + } + + export interface ControlledObservable { + /** + * Attaches a stop and wait observable to the current observable. + * @returns {Observable} A stop and wait observable. + */ + stopAndWait(): Observable; + } + + export interface ControlledObservable { + /** + * Creates a sliding windowed observable based upon the window size. + * @param {Number} windowSize The number of items in the window + * @returns {Observable} A windowed observable based upon the window size. + */ + windowed(windowSize: number): Observable; + } + + export interface Observable { + /** + * Pipes the existing Observable sequence into a Node.js Stream. + * @param {Stream} dest The destination Node.js stream. + * @returns {Stream} The destination stream. + */ + pipe(dest: TDest): TDest; + // TODO: Add link to node.d.ts some where + } + +} +declare module "rx.backpressure" { export = Rx; } diff --git a/node_modules/rx/ts/rx.backpressure.es6.d.ts b/node_modules/rx/ts/rx.backpressure.es6.d.ts new file mode 100644 index 0000000..3229a94 --- /dev/null +++ b/node_modules/rx/ts/rx.backpressure.es6.d.ts @@ -0,0 +1,93 @@ +declare module Rx { + + /** + * Used to pause and resume streams. + */ + export interface Pauser { + /** + * Pauses the underlying sequence. + */ + pause(): void; + + /** + * Resumes the underlying sequence. + */ + resume(): void; + } + + export interface Observable { + /** + * Pauses the underlying observable sequence based upon the observable sequence which yields true/false. + * @example + * var pauser = new Rx.Subject(); + * var source = Rx.Observable.interval(100).pausable(pauser); + * @param {Observable} pauser The observable sequence used to pause the underlying sequence. + * @returns {Observable} The observable sequence which is paused based upon the pauser. + */ + pausable(pauser?: Observable): PausableObservable; + } + + export interface PausableObservable extends Observable { + pause(): void; + resume(): void; + } + + export interface Observable { + /** + * Pauses the underlying observable sequence based upon the observable sequence which yields true/false, + * and yields the values that were buffered while paused. + * @example + * var pauser = new Rx.Subject(); + * var source = Rx.Observable.interval(100).pausableBuffered(pauser); + * @param {Observable} pauser The observable sequence used to pause the underlying sequence. + * @returns {Observable} The observable sequence which is paused based upon the pauser. + */ + pausableBuffered(pauser?: Observable): PausableObservable; + } + + export interface Observable { + /** + * Attaches a controller to the observable sequence with the ability to queue. + * @example + * var source = Rx.Observable.interval(100).controlled(); + * source.request(3); // Reads 3 values + * @param {bool} enableQueue truthy value to determine if values should be queued pending the next request + * @param {Scheduler} scheduler determines how the requests will be scheduled + * @returns {Observable} The observable sequence which only propagates values on request. + */ + controlled(enableQueue?: boolean, scheduler?: IScheduler): ControlledObservable; + } + + export interface ControlledObservable extends Observable { + request(numberOfItems?: number): IDisposable; + } + + export interface ControlledObservable { + /** + * Attaches a stop and wait observable to the current observable. + * @returns {Observable} A stop and wait observable. + */ + stopAndWait(): Observable; + } + + export interface ControlledObservable { + /** + * Creates a sliding windowed observable based upon the window size. + * @param {Number} windowSize The number of items in the window + * @returns {Observable} A windowed observable based upon the window size. + */ + windowed(windowSize: number): Observable; + } + + export interface Observable { + /** + * Pipes the existing Observable sequence into a Node.js Stream. + * @param {Stream} dest The destination Node.js stream. + * @returns {Stream} The destination stream. + */ + pipe(dest: TDest): TDest; + // TODO: Add link to node.d.ts some where + } + +} +declare module "rx.backpressure" { export = Rx; } diff --git a/node_modules/rx/ts/rx.binding.d.ts b/node_modules/rx/ts/rx.binding.d.ts new file mode 100644 index 0000000..fe3efec --- /dev/null +++ b/node_modules/rx/ts/rx.binding.d.ts @@ -0,0 +1,258 @@ +declare module Rx { + + export interface ConnectableObservable extends Observable { + connect(): IDisposable; + refCount(): Observable; + } + + export interface Observable { + /** + * Multicasts the source sequence notifications through an instantiated subject into all uses of the sequence within a selector function. Each + * subscription to the resulting sequence causes a separate multicast invocation, exposing the sequence resulting from the selector function's + * invocation. For specializations with fixed subject types, see Publish, PublishLast, and Replay. + * + * @example + * 1 - res = source.multicast(observable); + * 2 - res = source.multicast(function () { return new Subject(); }, function (x) { return x; }); + * + * @param {Function|Subject} subjectOrSubjectSelector + * 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 which can use the multicasted source sequence subject to the policies enforced by the created subject. Specified only if | (() => ISubject)): ConnectableObservable; + /** + * Multicasts the source sequence notifications through an instantiated subject into all uses of the sequence within a selector function. Each + * subscription to the resulting sequence causes a separate multicast invocation, exposing the sequence resulting from the selector function's + * invocation. For specializations with fixed subject types, see Publish, PublishLast, and Replay. + * + * @example + * 1 - res = source.multicast(observable); + * 2 - res = source.multicast(function () { return new Subject(); }, function (x) { return x; }); + * + * @param {Function|Subject} subjectOrSubjectSelector + * 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 which can use the multicasted source sequence subject to the policies enforced by the created subject. Specified only if (subjectSelector: ISubject | (() => ISubject), selector: (source: ConnectableObservable) => Observable): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence. + * This operator is a specialization of Multicast using a regular Subject. + * + * @example + * var resres = source.publish(); + * var res = source.publish(function (x) { return x; }); + * + * @param {Function} [selector] 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. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publish(): ConnectableObservable; + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence. + * This operator is a specialization of Multicast using a regular Subject. + * + * @example + * var resres = source.publish(); + * var res = source.publish(function (x) { return x; }); + * + * @param {Function} [selector] 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. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publish(selector: (source: ConnectableObservable) => Observable): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence. + * This operator is a specialization of publish which creates a subscription when the number of observers goes from zero to one, then shares that subscription with all subsequent observers until the number of observers returns to zero, at which point the subscription is disposed. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence. + */ + share(): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + * This operator is a specialization of Multicast using a AsyncSubject. + * + * @example + * var res = source.publishLast(); + * var res = source.publishLast(function (x) { return x; }); + * + * @param 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 only receive the last notification of the source. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishLast(): ConnectableObservable; + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + * This operator is a specialization of Multicast using a AsyncSubject. + * + * @example + * var res = source.publishLast(); + * var res = source.publishLast(function (x) { return x; }); + * + * @param 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 only receive the last notification of the source. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishLast(selector: (source: ConnectableObservable) => Observable): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + * This operator is a specialization of Multicast using a BehaviorSubject. + * + * @example + * var res = source.publishValue(42); + * var res = source.publishValue(function (x) { return x.select(function (y) { return y * y; }) }, 42); + * + * @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 immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + * @param {Mixed} initialValue Initial value received by observers upon subscription. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishValue(initialValue: T): ConnectableObservable; + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + * This operator is a specialization of Multicast using a BehaviorSubject. + * + * @example + * var res = source.publishValue(42); + * var res = source.publishValue(function (x) { return x.select(function (y) { return y * y; }) }, 42); + * + * @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 immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + * @param {Mixed} initialValue Initial value received by observers upon subscription. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishValue(selector: (source: ConnectableObservable) => Observable, initialValue: T): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence and starts with an initialValue. + * This operator is a specialization of publishValue which creates a subscription when the number of observers goes from zero to one, then shares that subscription with all subsequent observers until the number of observers returns to zero, at which point the subscription is disposed. + * @param {Mixed} initialValue Initial value received by observers upon subscription. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence. + */ + shareValue(initialValue: T): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + * This operator is a specialization of Multicast using a ReplaySubject. + * + * @example + * var res = source.replay(null, 3); + * var res = source.replay(null, 3, 500); + * var res = source.replay(null, 3, 500, scheduler); + * var res = source.replay(function (x) { return x.take(6).repeat(); }, 3, 500, scheduler); + * + * @param 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 the notifications of the source subject to the specified replay buffer trimming policy. + * @param bufferSize [Optional] Maximum element count of the replay buffer. + * @param windowSize [Optional] Maximum time length of the replay buffer. + * @param scheduler [Optional] Scheduler where connected observers within the selector function will be invoked on. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + replay(selector?: void, bufferSize?: number, window?: number, scheduler?: IScheduler): ConnectableObservable; // hack to catch first omitted parameter + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + * This operator is a specialization of Multicast using a ReplaySubject. + * + * @example + * var res = source.replay(null, 3); + * var res = source.replay(null, 3, 500); + * var res = source.replay(null, 3, 500, scheduler); + * var res = source.replay(function (x) { return x.take(6).repeat(); }, 3, 500, scheduler); + * + * @param 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 the notifications of the source subject to the specified replay buffer trimming policy. + * @param bufferSize [Optional] Maximum element count of the replay buffer. + * @param windowSize [Optional] Maximum time length of the replay buffer. + * @param scheduler [Optional] Scheduler where connected observers within the selector function will be invoked on. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + replay(selector: (source: ConnectableObservable) => Observable, bufferSize?: number, window?: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + * This operator is a specialization of replay which creates a subscription when the number of observers goes from zero to one, then shares that subscription with all subsequent observers until the number of observers returns to zero, at which point the subscription is disposed. + * + * @example + * var res = source.shareReplay(3); + * var res = source.shareReplay(3, 500); + * var res = source.shareReplay(3, 500, scheduler); + * + + * @param bufferSize [Optional] Maximum element count of the replay buffer. + * @param window [Optional] Maximum time length of the replay buffer. + * @param scheduler [Optional] Scheduler where connected observers within the selector function will be invoked on. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence. + */ + shareReplay(bufferSize?: number, window?: number, scheduler?: IScheduler): Observable; + } + + export interface BehaviorSubject extends Subject { + /** + * Gets the current value or throws an exception. + * Value is frozen after onCompleted is called. + * After onError is called always throws the specified exception. + * An exception is always thrown after dispose is called. + * @returns {Mixed} The initial value passed to the constructor until onNext is called; after which, the last value passed to onNext. + */ + getValue(): T; + } + + interface BehaviorSubjectStatic { + /** + * Initializes a new instance of the BehaviorSubject class which creates a subject that caches its last value and starts with the specified value. + * @param {Mixed} value Initial value sent to observers when no other value has been received by the subject yet. + */ + new (initialValue: T): BehaviorSubject; + } + + /** + * Represents a value that changes over time. + * Observers can subscribe to the subject to receive the last (or initial) value and all subsequent notifications. + */ + export var BehaviorSubject: BehaviorSubjectStatic; + + export interface ReplaySubject extends Subject { } + + interface ReplaySubjectStatic { + /** + * Initializes a new instance of the ReplaySubject class with the specified buffer size, window size and scheduler. + * @param {Number} [bufferSize] Maximum element count of the replay buffer. + * @param {Number} [windowSize] Maximum time length of the replay buffer. + * @param {Scheduler} [scheduler] Scheduler the observers are invoked on. + */ + new (bufferSize?: number, window?: number, scheduler?: IScheduler): ReplaySubject; + } + + /** + * Represents an object that is both an observable sequence as well as an observer. + * Each notification is broadcasted to all subscribed and future observers, subject to buffer trimming policies. + */ + export var ReplaySubject: ReplaySubjectStatic; + + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence. This observable sequence + * can be resubscribed to, even if all prior subscriptions have ended. (unlike `.publish().refCount()`) + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source. + */ + singleInstance(): Observable; + } + +} +declare module "rx.binding" { export = Rx; } diff --git a/node_modules/rx/ts/rx.binding.es6.d.ts b/node_modules/rx/ts/rx.binding.es6.d.ts new file mode 100644 index 0000000..fe3efec --- /dev/null +++ b/node_modules/rx/ts/rx.binding.es6.d.ts @@ -0,0 +1,258 @@ +declare module Rx { + + export interface ConnectableObservable extends Observable { + connect(): IDisposable; + refCount(): Observable; + } + + export interface Observable { + /** + * Multicasts the source sequence notifications through an instantiated subject into all uses of the sequence within a selector function. Each + * subscription to the resulting sequence causes a separate multicast invocation, exposing the sequence resulting from the selector function's + * invocation. For specializations with fixed subject types, see Publish, PublishLast, and Replay. + * + * @example + * 1 - res = source.multicast(observable); + * 2 - res = source.multicast(function () { return new Subject(); }, function (x) { return x; }); + * + * @param {Function|Subject} subjectOrSubjectSelector + * 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 which can use the multicasted source sequence subject to the policies enforced by the created subject. Specified only if | (() => ISubject)): ConnectableObservable; + /** + * Multicasts the source sequence notifications through an instantiated subject into all uses of the sequence within a selector function. Each + * subscription to the resulting sequence causes a separate multicast invocation, exposing the sequence resulting from the selector function's + * invocation. For specializations with fixed subject types, see Publish, PublishLast, and Replay. + * + * @example + * 1 - res = source.multicast(observable); + * 2 - res = source.multicast(function () { return new Subject(); }, function (x) { return x; }); + * + * @param {Function|Subject} subjectOrSubjectSelector + * 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 which can use the multicasted source sequence subject to the policies enforced by the created subject. Specified only if (subjectSelector: ISubject | (() => ISubject), selector: (source: ConnectableObservable) => Observable): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence. + * This operator is a specialization of Multicast using a regular Subject. + * + * @example + * var resres = source.publish(); + * var res = source.publish(function (x) { return x; }); + * + * @param {Function} [selector] 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. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publish(): ConnectableObservable; + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence. + * This operator is a specialization of Multicast using a regular Subject. + * + * @example + * var resres = source.publish(); + * var res = source.publish(function (x) { return x; }); + * + * @param {Function} [selector] 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. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publish(selector: (source: ConnectableObservable) => Observable): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence. + * This operator is a specialization of publish which creates a subscription when the number of observers goes from zero to one, then shares that subscription with all subsequent observers until the number of observers returns to zero, at which point the subscription is disposed. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence. + */ + share(): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + * This operator is a specialization of Multicast using a AsyncSubject. + * + * @example + * var res = source.publishLast(); + * var res = source.publishLast(function (x) { return x; }); + * + * @param 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 only receive the last notification of the source. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishLast(): ConnectableObservable; + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + * This operator is a specialization of Multicast using a AsyncSubject. + * + * @example + * var res = source.publishLast(); + * var res = source.publishLast(function (x) { return x; }); + * + * @param 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 only receive the last notification of the source. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishLast(selector: (source: ConnectableObservable) => Observable): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + * This operator is a specialization of Multicast using a BehaviorSubject. + * + * @example + * var res = source.publishValue(42); + * var res = source.publishValue(function (x) { return x.select(function (y) { return y * y; }) }, 42); + * + * @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 immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + * @param {Mixed} initialValue Initial value received by observers upon subscription. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishValue(initialValue: T): ConnectableObservable; + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + * This operator is a specialization of Multicast using a BehaviorSubject. + * + * @example + * var res = source.publishValue(42); + * var res = source.publishValue(function (x) { return x.select(function (y) { return y * y; }) }, 42); + * + * @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 immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + * @param {Mixed} initialValue Initial value received by observers upon subscription. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishValue(selector: (source: ConnectableObservable) => Observable, initialValue: T): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence and starts with an initialValue. + * This operator is a specialization of publishValue which creates a subscription when the number of observers goes from zero to one, then shares that subscription with all subsequent observers until the number of observers returns to zero, at which point the subscription is disposed. + * @param {Mixed} initialValue Initial value received by observers upon subscription. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence. + */ + shareValue(initialValue: T): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + * This operator is a specialization of Multicast using a ReplaySubject. + * + * @example + * var res = source.replay(null, 3); + * var res = source.replay(null, 3, 500); + * var res = source.replay(null, 3, 500, scheduler); + * var res = source.replay(function (x) { return x.take(6).repeat(); }, 3, 500, scheduler); + * + * @param 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 the notifications of the source subject to the specified replay buffer trimming policy. + * @param bufferSize [Optional] Maximum element count of the replay buffer. + * @param windowSize [Optional] Maximum time length of the replay buffer. + * @param scheduler [Optional] Scheduler where connected observers within the selector function will be invoked on. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + replay(selector?: void, bufferSize?: number, window?: number, scheduler?: IScheduler): ConnectableObservable; // hack to catch first omitted parameter + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + * This operator is a specialization of Multicast using a ReplaySubject. + * + * @example + * var res = source.replay(null, 3); + * var res = source.replay(null, 3, 500); + * var res = source.replay(null, 3, 500, scheduler); + * var res = source.replay(function (x) { return x.take(6).repeat(); }, 3, 500, scheduler); + * + * @param 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 the notifications of the source subject to the specified replay buffer trimming policy. + * @param bufferSize [Optional] Maximum element count of the replay buffer. + * @param windowSize [Optional] Maximum time length of the replay buffer. + * @param scheduler [Optional] Scheduler where connected observers within the selector function will be invoked on. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + replay(selector: (source: ConnectableObservable) => Observable, bufferSize?: number, window?: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + * This operator is a specialization of replay which creates a subscription when the number of observers goes from zero to one, then shares that subscription with all subsequent observers until the number of observers returns to zero, at which point the subscription is disposed. + * + * @example + * var res = source.shareReplay(3); + * var res = source.shareReplay(3, 500); + * var res = source.shareReplay(3, 500, scheduler); + * + + * @param bufferSize [Optional] Maximum element count of the replay buffer. + * @param window [Optional] Maximum time length of the replay buffer. + * @param scheduler [Optional] Scheduler where connected observers within the selector function will be invoked on. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence. + */ + shareReplay(bufferSize?: number, window?: number, scheduler?: IScheduler): Observable; + } + + export interface BehaviorSubject extends Subject { + /** + * Gets the current value or throws an exception. + * Value is frozen after onCompleted is called. + * After onError is called always throws the specified exception. + * An exception is always thrown after dispose is called. + * @returns {Mixed} The initial value passed to the constructor until onNext is called; after which, the last value passed to onNext. + */ + getValue(): T; + } + + interface BehaviorSubjectStatic { + /** + * Initializes a new instance of the BehaviorSubject class which creates a subject that caches its last value and starts with the specified value. + * @param {Mixed} value Initial value sent to observers when no other value has been received by the subject yet. + */ + new (initialValue: T): BehaviorSubject; + } + + /** + * Represents a value that changes over time. + * Observers can subscribe to the subject to receive the last (or initial) value and all subsequent notifications. + */ + export var BehaviorSubject: BehaviorSubjectStatic; + + export interface ReplaySubject extends Subject { } + + interface ReplaySubjectStatic { + /** + * Initializes a new instance of the ReplaySubject class with the specified buffer size, window size and scheduler. + * @param {Number} [bufferSize] Maximum element count of the replay buffer. + * @param {Number} [windowSize] Maximum time length of the replay buffer. + * @param {Scheduler} [scheduler] Scheduler the observers are invoked on. + */ + new (bufferSize?: number, window?: number, scheduler?: IScheduler): ReplaySubject; + } + + /** + * Represents an object that is both an observable sequence as well as an observer. + * Each notification is broadcasted to all subscribed and future observers, subject to buffer trimming policies. + */ + export var ReplaySubject: ReplaySubjectStatic; + + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence. This observable sequence + * can be resubscribed to, even if all prior subscriptions have ended. (unlike `.publish().refCount()`) + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source. + */ + singleInstance(): Observable; + } + +} +declare module "rx.binding" { export = Rx; } diff --git a/node_modules/rx/ts/rx.coincidence.d.ts b/node_modules/rx/ts/rx.coincidence.d.ts new file mode 100644 index 0000000..00138ec --- /dev/null +++ b/node_modules/rx/ts/rx.coincidence.d.ts @@ -0,0 +1,186 @@ +declare module Rx { + + export interface Observable { + /** + * Correlates the elements of two sequences based on overlapping durations. + * + * @param {Observable} right The right observable sequence to join elements for. + * @param {Function} leftDurationSelector A function to select the duration (expressed as an observable sequence) of each element of the left observable sequence, used to determine overlap. + * @param {Function} rightDurationSelector A function to select the duration (expressed as an observable sequence) of each element of the right observable sequence, used to determine overlap. + * @param {Function} resultSelector A function invoked to compute a result element for any two overlapping elements of the left and right observable sequences. The parameters passed to the function correspond with the elements from the left and right source sequences for which overlap occurs. + * @returns {Observable} An observable sequence that contains result elements computed from source elements that have an overlapping duration. + */ + join( + right: Observable, + leftDurationSelector: (leftItem: T) => Observable, + rightDurationSelector: (rightItem: TRight) => Observable, + resultSelector: (leftItem: T, rightItem: TRight) => TResult): Observable; + } + + export interface Observable { + /** + * Groups the elements of an observable sequence according to a specified key selector function. + * A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + * key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + * + * @example + * var res = observable.groupByUntil(function (x) { return x.id; }, null, function () { return Rx.Observable.never(); }); + * 2 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }, function () { return Rx.Observable.never(); }); + * 3 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }, function () { return Rx.Observable.never(); }, function (x) { return x.toString(); }); + * @param {Function} keySelector A function to extract the key for each element. + * @param {Function} durationSelector A function to signal the expiration of a group. + * @returns {Observable} + * A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + * If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encoutered. + * + */ + groupByUntil(keySelector: (value: T) => TKey, skipElementSelector: boolean, durationSelector: (group: GroupedObservable) => Observable, keySerializer?: (key: TKey) => string): Observable>; + + /** + * Groups the elements of an observable sequence according to a specified key selector function. + * A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + * key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + * + * @example + * var res = observable.groupByUntil(function (x) { return x.id; }, null, function () { return Rx.Observable.never(); }); + * 2 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }, function () { return Rx.Observable.never(); }); + * 3 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }, function () { return Rx.Observable.never(); }, function (x) { return x.toString(); }); + * @param {Function} keySelector A function to extract the key for each element. + * @param {Function} durationSelector A function to signal the expiration of a group. + * @returns {Observable} + * A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + * If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encoutered. + * + */ + groupByUntil(keySelector: (value: T) => TKey, elementSelector: (value: T) => TElement, durationSelector: (group: GroupedObservable) => Observable, keySerializer?: (key: TKey) => string): Observable>; + } + + export interface Observable { + /** + * Correlates the elements of two sequences based on overlapping durations, and groups the results. + * + * @param {Observable} right The right observable sequence to join elements for. + * @param {Function} leftDurationSelector A function to select the duration (expressed as an observable sequence) of each element of the left observable sequence, used to determine overlap. + * @param {Function} rightDurationSelector A function to select the duration (expressed as an observable sequence) of each element of the right observable sequence, used to determine overlap. + * @param {Function} resultSelector A function invoked to compute a result element for any element of the left sequence with overlapping elements from the right observable sequence. The first parameter passed to the function is an element of the left sequence. The second parameter passed to the function is an observable sequence with elements from the right sequence that overlap with the left sequence's element. + * @returns {Observable} An observable sequence that contains result elements computed from source elements that have an overlapping duration. + */ + groupJoin( + right: Observable, + leftDurationSelector: (leftItem: T) => Observable, + rightDurationSelector: (rightItem: TRight) => Observable, + resultSelector: (leftItem: T, rightItem: Observable) => TResult): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more buffers. + * @param {Mixed} bufferOpeningsOrClosingSelector Observable sequence whose elements denote the creation of new windows, or, a function invoked to define the boundaries of the produced windows (a new window is started when the previous one is closed, resulting in non-overlapping windows). + * @param {Function} [bufferClosingSelector] A function invoked to define the closing of each produced window. If a closing selector function is specified for the first parameter, this parameter is ignored. + * @returns {Observable} An observable sequence of windows. + */ + buffer(bufferOpenings: Observable): Observable; + /** + * Projects each element of an observable sequence into zero or more buffers. + * @param {Mixed} bufferOpeningsOrClosingSelector Observable sequence whose elements denote the creation of new windows, or, a function invoked to define the boundaries of the produced windows (a new window is started when the previous one is closed, resulting in non-overlapping windows). + * @param {Function} [bufferClosingSelector] A function invoked to define the closing of each produced window. If a closing selector function is specified for the first parameter, this parameter is ignored. + * @returns {Observable} An observable sequence of windows. + */ + buffer(bufferClosingSelector: () => Observable): Observable; + /** + * Projects each element of an observable sequence into zero or more buffers. + * @param {Mixed} bufferOpeningsOrClosingSelector Observable sequence whose elements denote the creation of new windows, or, a function invoked to define the boundaries of the produced windows (a new window is started when the previous one is closed, resulting in non-overlapping windows). + * @param {Function} [bufferClosingSelector] A function invoked to define the closing of each produced window. If a closing selector function is specified for the first parameter, this parameter is ignored. + * @returns {Observable} An observable sequence of windows. + */ + buffer(bufferOpenings: Observable, bufferClosingSelector: () => Observable): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more windows. + * + * @param {Mixed} windowOpeningsOrClosingSelector Observable sequence whose elements denote the creation of new windows, or, a function invoked to define the boundaries of the produced windows (a new window is started when the previous one is closed, resulting in non-overlapping windows). + * @param {Function} [windowClosingSelector] A function invoked to define the closing of each produced window. If a closing selector function is specified for the first parameter, this parameter is ignored. + * @returns {Observable} An observable sequence of windows. + */ + window(windowOpenings: Observable): Observable>; + /** + * Projects each element of an observable sequence into zero or more windows. + * + * @param {Mixed} windowOpeningsOrClosingSelector Observable sequence whose elements denote the creation of new windows, or, a function invoked to define the boundaries of the produced windows (a new window is started when the previous one is closed, resulting in non-overlapping windows). + * @param {Function} [windowClosingSelector] A function invoked to define the closing of each produced window. If a closing selector function is specified for the first parameter, this parameter is ignored. + * @returns {Observable} An observable sequence of windows. + */ + window(windowClosingSelector: () => Observable): Observable>; + /** + * Projects each element of an observable sequence into zero or more windows. + * + * @param {Mixed} windowOpeningsOrClosingSelector Observable sequence whose elements denote the creation of new windows, or, a function invoked to define the boundaries of the produced windows (a new window is started when the previous one is closed, resulting in non-overlapping windows). + * @param {Function} [windowClosingSelector] A function invoked to define the closing of each produced window. If a closing selector function is specified for the first parameter, this parameter is ignored. + * @returns {Observable} An observable sequence of windows. + */ + window(windowOpenings: Observable, windowClosingSelector: () => Observable): Observable>; + } + + export interface Observable { + /** + * Returns a new observable that triggers on the second and subsequent triggerings of the input observable. + * The Nth triggering of the input observable passes the arguments from the N-1th and Nth triggering as a pair. + * The argument passed to the N-1th triggering is held in hidden internal state until the Nth triggering occurs. + * @returns {Observable} An observable that triggers on successive pairs of observations from the input observable as an array. + */ + pairwise(): Observable<[T, T]>; + } + + export interface Observable { + /** + * Returns two observables which partition the observations of the source by the given function. + * The first will trigger observations for those values for which the predicate returns true. + * The second will trigger observations for those values where the predicate returns false. + * The predicate is executed once for each subscribed observer. + * Both also propagate all error observations arising from the source and each completes + * when the source completes. + * @param {Function} predicate + * The function to determine which output Observable will trigger a particular observation. + * @returns {Array} + * An array of observables. The first triggers when the predicate returns true, + * and the second triggers when the predicate returns false. + */ + partition(predicate: _Predicate, thisArg?: any): [Observable, Observable]; + } + + export interface Observable { + /** + * Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + * + * @example + * var res = observable.groupBy(function (x) { return x.id; }); + * 2 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }); + * 3 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }, function (x) { return x.toString(); }); + * @param {Function} keySelector A function to extract the key for each element. + * @param {Function} [elementSelector] A function to map each source element to an element in an observable group. + * @returns {Observable} A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + */ + groupBy(keySelector: (value: T) => TKey, skipElementSelector?: boolean, keySerializer?: (key: TKey) => string): Observable>; + /** + * Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + * + * @example + * var res = observable.groupBy(function (x) { return x.id; }); + * 2 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }); + * 3 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }, function (x) { return x.toString(); }); + * @param {Function} keySelector A function to extract the key for each element. + * @param {Function} [elementSelector] A function to map each source element to an element in an observable group. + * @returns {Observable} A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + */ + groupBy(keySelector: (value: T) => TKey, elementSelector: (value: T) => TElement, keySerializer?: (key: TKey) => string): Observable>; + } + + export interface GroupedObservable extends Observable { + key: TKey; + underlyingObservable: Observable; + } + +} +declare module "rx.coincidence" { export = Rx; } diff --git a/node_modules/rx/ts/rx.coincidence.es6.d.ts b/node_modules/rx/ts/rx.coincidence.es6.d.ts new file mode 100644 index 0000000..00138ec --- /dev/null +++ b/node_modules/rx/ts/rx.coincidence.es6.d.ts @@ -0,0 +1,186 @@ +declare module Rx { + + export interface Observable { + /** + * Correlates the elements of two sequences based on overlapping durations. + * + * @param {Observable} right The right observable sequence to join elements for. + * @param {Function} leftDurationSelector A function to select the duration (expressed as an observable sequence) of each element of the left observable sequence, used to determine overlap. + * @param {Function} rightDurationSelector A function to select the duration (expressed as an observable sequence) of each element of the right observable sequence, used to determine overlap. + * @param {Function} resultSelector A function invoked to compute a result element for any two overlapping elements of the left and right observable sequences. The parameters passed to the function correspond with the elements from the left and right source sequences for which overlap occurs. + * @returns {Observable} An observable sequence that contains result elements computed from source elements that have an overlapping duration. + */ + join( + right: Observable, + leftDurationSelector: (leftItem: T) => Observable, + rightDurationSelector: (rightItem: TRight) => Observable, + resultSelector: (leftItem: T, rightItem: TRight) => TResult): Observable; + } + + export interface Observable { + /** + * Groups the elements of an observable sequence according to a specified key selector function. + * A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + * key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + * + * @example + * var res = observable.groupByUntil(function (x) { return x.id; }, null, function () { return Rx.Observable.never(); }); + * 2 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }, function () { return Rx.Observable.never(); }); + * 3 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }, function () { return Rx.Observable.never(); }, function (x) { return x.toString(); }); + * @param {Function} keySelector A function to extract the key for each element. + * @param {Function} durationSelector A function to signal the expiration of a group. + * @returns {Observable} + * A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + * If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encoutered. + * + */ + groupByUntil(keySelector: (value: T) => TKey, skipElementSelector: boolean, durationSelector: (group: GroupedObservable) => Observable, keySerializer?: (key: TKey) => string): Observable>; + + /** + * Groups the elements of an observable sequence according to a specified key selector function. + * A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + * key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + * + * @example + * var res = observable.groupByUntil(function (x) { return x.id; }, null, function () { return Rx.Observable.never(); }); + * 2 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }, function () { return Rx.Observable.never(); }); + * 3 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }, function () { return Rx.Observable.never(); }, function (x) { return x.toString(); }); + * @param {Function} keySelector A function to extract the key for each element. + * @param {Function} durationSelector A function to signal the expiration of a group. + * @returns {Observable} + * A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + * If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encoutered. + * + */ + groupByUntil(keySelector: (value: T) => TKey, elementSelector: (value: T) => TElement, durationSelector: (group: GroupedObservable) => Observable, keySerializer?: (key: TKey) => string): Observable>; + } + + export interface Observable { + /** + * Correlates the elements of two sequences based on overlapping durations, and groups the results. + * + * @param {Observable} right The right observable sequence to join elements for. + * @param {Function} leftDurationSelector A function to select the duration (expressed as an observable sequence) of each element of the left observable sequence, used to determine overlap. + * @param {Function} rightDurationSelector A function to select the duration (expressed as an observable sequence) of each element of the right observable sequence, used to determine overlap. + * @param {Function} resultSelector A function invoked to compute a result element for any element of the left sequence with overlapping elements from the right observable sequence. The first parameter passed to the function is an element of the left sequence. The second parameter passed to the function is an observable sequence with elements from the right sequence that overlap with the left sequence's element. + * @returns {Observable} An observable sequence that contains result elements computed from source elements that have an overlapping duration. + */ + groupJoin( + right: Observable, + leftDurationSelector: (leftItem: T) => Observable, + rightDurationSelector: (rightItem: TRight) => Observable, + resultSelector: (leftItem: T, rightItem: Observable) => TResult): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more buffers. + * @param {Mixed} bufferOpeningsOrClosingSelector Observable sequence whose elements denote the creation of new windows, or, a function invoked to define the boundaries of the produced windows (a new window is started when the previous one is closed, resulting in non-overlapping windows). + * @param {Function} [bufferClosingSelector] A function invoked to define the closing of each produced window. If a closing selector function is specified for the first parameter, this parameter is ignored. + * @returns {Observable} An observable sequence of windows. + */ + buffer(bufferOpenings: Observable): Observable; + /** + * Projects each element of an observable sequence into zero or more buffers. + * @param {Mixed} bufferOpeningsOrClosingSelector Observable sequence whose elements denote the creation of new windows, or, a function invoked to define the boundaries of the produced windows (a new window is started when the previous one is closed, resulting in non-overlapping windows). + * @param {Function} [bufferClosingSelector] A function invoked to define the closing of each produced window. If a closing selector function is specified for the first parameter, this parameter is ignored. + * @returns {Observable} An observable sequence of windows. + */ + buffer(bufferClosingSelector: () => Observable): Observable; + /** + * Projects each element of an observable sequence into zero or more buffers. + * @param {Mixed} bufferOpeningsOrClosingSelector Observable sequence whose elements denote the creation of new windows, or, a function invoked to define the boundaries of the produced windows (a new window is started when the previous one is closed, resulting in non-overlapping windows). + * @param {Function} [bufferClosingSelector] A function invoked to define the closing of each produced window. If a closing selector function is specified for the first parameter, this parameter is ignored. + * @returns {Observable} An observable sequence of windows. + */ + buffer(bufferOpenings: Observable, bufferClosingSelector: () => Observable): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more windows. + * + * @param {Mixed} windowOpeningsOrClosingSelector Observable sequence whose elements denote the creation of new windows, or, a function invoked to define the boundaries of the produced windows (a new window is started when the previous one is closed, resulting in non-overlapping windows). + * @param {Function} [windowClosingSelector] A function invoked to define the closing of each produced window. If a closing selector function is specified for the first parameter, this parameter is ignored. + * @returns {Observable} An observable sequence of windows. + */ + window(windowOpenings: Observable): Observable>; + /** + * Projects each element of an observable sequence into zero or more windows. + * + * @param {Mixed} windowOpeningsOrClosingSelector Observable sequence whose elements denote the creation of new windows, or, a function invoked to define the boundaries of the produced windows (a new window is started when the previous one is closed, resulting in non-overlapping windows). + * @param {Function} [windowClosingSelector] A function invoked to define the closing of each produced window. If a closing selector function is specified for the first parameter, this parameter is ignored. + * @returns {Observable} An observable sequence of windows. + */ + window(windowClosingSelector: () => Observable): Observable>; + /** + * Projects each element of an observable sequence into zero or more windows. + * + * @param {Mixed} windowOpeningsOrClosingSelector Observable sequence whose elements denote the creation of new windows, or, a function invoked to define the boundaries of the produced windows (a new window is started when the previous one is closed, resulting in non-overlapping windows). + * @param {Function} [windowClosingSelector] A function invoked to define the closing of each produced window. If a closing selector function is specified for the first parameter, this parameter is ignored. + * @returns {Observable} An observable sequence of windows. + */ + window(windowOpenings: Observable, windowClosingSelector: () => Observable): Observable>; + } + + export interface Observable { + /** + * Returns a new observable that triggers on the second and subsequent triggerings of the input observable. + * The Nth triggering of the input observable passes the arguments from the N-1th and Nth triggering as a pair. + * The argument passed to the N-1th triggering is held in hidden internal state until the Nth triggering occurs. + * @returns {Observable} An observable that triggers on successive pairs of observations from the input observable as an array. + */ + pairwise(): Observable<[T, T]>; + } + + export interface Observable { + /** + * Returns two observables which partition the observations of the source by the given function. + * The first will trigger observations for those values for which the predicate returns true. + * The second will trigger observations for those values where the predicate returns false. + * The predicate is executed once for each subscribed observer. + * Both also propagate all error observations arising from the source and each completes + * when the source completes. + * @param {Function} predicate + * The function to determine which output Observable will trigger a particular observation. + * @returns {Array} + * An array of observables. The first triggers when the predicate returns true, + * and the second triggers when the predicate returns false. + */ + partition(predicate: _Predicate, thisArg?: any): [Observable, Observable]; + } + + export interface Observable { + /** + * Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + * + * @example + * var res = observable.groupBy(function (x) { return x.id; }); + * 2 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }); + * 3 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }, function (x) { return x.toString(); }); + * @param {Function} keySelector A function to extract the key for each element. + * @param {Function} [elementSelector] A function to map each source element to an element in an observable group. + * @returns {Observable} A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + */ + groupBy(keySelector: (value: T) => TKey, skipElementSelector?: boolean, keySerializer?: (key: TKey) => string): Observable>; + /** + * Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + * + * @example + * var res = observable.groupBy(function (x) { return x.id; }); + * 2 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }); + * 3 - observable.groupBy(function (x) { return x.id; }), function (x) { return x.name; }, function (x) { return x.toString(); }); + * @param {Function} keySelector A function to extract the key for each element. + * @param {Function} [elementSelector] A function to map each source element to an element in an observable group. + * @returns {Observable} A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + */ + groupBy(keySelector: (value: T) => TKey, elementSelector: (value: T) => TElement, keySerializer?: (key: TKey) => string): Observable>; + } + + export interface GroupedObservable extends Observable { + key: TKey; + underlyingObservable: Observable; + } + +} +declare module "rx.coincidence" { export = Rx; } diff --git a/node_modules/rx/ts/rx.core.binding.d.ts b/node_modules/rx/ts/rx.core.binding.d.ts new file mode 100644 index 0000000..146b8e4 --- /dev/null +++ b/node_modules/rx/ts/rx.core.binding.d.ts @@ -0,0 +1,249 @@ +declare module Rx { + + export interface ConnectableObservable extends Observable { + connect(): IDisposable; + refCount(): Observable; + } + + export interface Observable { + /** + * Multicasts the source sequence notifications through an instantiated subject into all uses of the sequence within a selector function. Each + * subscription to the resulting sequence causes a separate multicast invocation, exposing the sequence resulting from the selector function's + * invocation. For specializations with fixed subject types, see Publish, PublishLast, and Replay. + * + * @example + * 1 - res = source.multicast(observable); + * 2 - res = source.multicast(function () { return new Subject(); }, function (x) { return x; }); + * + * @param {Function|Subject} subjectOrSubjectSelector + * 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 which can use the multicasted source sequence subject to the policies enforced by the created subject. Specified only if | (() => ISubject)): ConnectableObservable; + /** + * Multicasts the source sequence notifications through an instantiated subject into all uses of the sequence within a selector function. Each + * subscription to the resulting sequence causes a separate multicast invocation, exposing the sequence resulting from the selector function's + * invocation. For specializations with fixed subject types, see Publish, PublishLast, and Replay. + * + * @example + * 1 - res = source.multicast(observable); + * 2 - res = source.multicast(function () { return new Subject(); }, function (x) { return x; }); + * + * @param {Function|Subject} subjectOrSubjectSelector + * 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 which can use the multicasted source sequence subject to the policies enforced by the created subject. Specified only if (subjectSelector: ISubject | (() => ISubject), selector: (source: ConnectableObservable) => Observable): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence. + * This operator is a specialization of Multicast using a regular Subject. + * + * @example + * var resres = source.publish(); + * var res = source.publish(function (x) { return x; }); + * + * @param {Function} [selector] 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. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publish(): ConnectableObservable; + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence. + * This operator is a specialization of Multicast using a regular Subject. + * + * @example + * var resres = source.publish(); + * var res = source.publish(function (x) { return x; }); + * + * @param {Function} [selector] 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. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publish(selector: (source: ConnectableObservable) => Observable): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence. + * This operator is a specialization of publish which creates a subscription when the number of observers goes from zero to one, then shares that subscription with all subsequent observers until the number of observers returns to zero, at which point the subscription is disposed. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence. + */ + share(): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + * This operator is a specialization of Multicast using a AsyncSubject. + * + * @example + * var res = source.publishLast(); + * var res = source.publishLast(function (x) { return x; }); + * + * @param 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 only receive the last notification of the source. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishLast(): ConnectableObservable; + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + * This operator is a specialization of Multicast using a AsyncSubject. + * + * @example + * var res = source.publishLast(); + * var res = source.publishLast(function (x) { return x; }); + * + * @param 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 only receive the last notification of the source. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishLast(selector: (source: ConnectableObservable) => Observable): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + * This operator is a specialization of Multicast using a BehaviorSubject. + * + * @example + * var res = source.publishValue(42); + * var res = source.publishValue(function (x) { return x.select(function (y) { return y * y; }) }, 42); + * + * @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 immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + * @param {Mixed} initialValue Initial value received by observers upon subscription. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishValue(initialValue: T): ConnectableObservable; + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + * This operator is a specialization of Multicast using a BehaviorSubject. + * + * @example + * var res = source.publishValue(42); + * var res = source.publishValue(function (x) { return x.select(function (y) { return y * y; }) }, 42); + * + * @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 immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + * @param {Mixed} initialValue Initial value received by observers upon subscription. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishValue(selector: (source: ConnectableObservable) => Observable, initialValue: T): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence and starts with an initialValue. + * This operator is a specialization of publishValue which creates a subscription when the number of observers goes from zero to one, then shares that subscription with all subsequent observers until the number of observers returns to zero, at which point the subscription is disposed. + * @param {Mixed} initialValue Initial value received by observers upon subscription. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence. + */ + shareValue(initialValue: T): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + * This operator is a specialization of Multicast using a ReplaySubject. + * + * @example + * var res = source.replay(null, 3); + * var res = source.replay(null, 3, 500); + * var res = source.replay(null, 3, 500, scheduler); + * var res = source.replay(function (x) { return x.take(6).repeat(); }, 3, 500, scheduler); + * + * @param 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 the notifications of the source subject to the specified replay buffer trimming policy. + * @param bufferSize [Optional] Maximum element count of the replay buffer. + * @param windowSize [Optional] Maximum time length of the replay buffer. + * @param scheduler [Optional] Scheduler where connected observers within the selector function will be invoked on. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + replay(selector?: void, bufferSize?: number, window?: number, scheduler?: IScheduler): ConnectableObservable; // hack to catch first omitted parameter + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + * This operator is a specialization of Multicast using a ReplaySubject. + * + * @example + * var res = source.replay(null, 3); + * var res = source.replay(null, 3, 500); + * var res = source.replay(null, 3, 500, scheduler); + * var res = source.replay(function (x) { return x.take(6).repeat(); }, 3, 500, scheduler); + * + * @param 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 the notifications of the source subject to the specified replay buffer trimming policy. + * @param bufferSize [Optional] Maximum element count of the replay buffer. + * @param windowSize [Optional] Maximum time length of the replay buffer. + * @param scheduler [Optional] Scheduler where connected observers within the selector function will be invoked on. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + replay(selector: (source: ConnectableObservable) => Observable, bufferSize?: number, window?: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + * This operator is a specialization of replay which creates a subscription when the number of observers goes from zero to one, then shares that subscription with all subsequent observers until the number of observers returns to zero, at which point the subscription is disposed. + * + * @example + * var res = source.shareReplay(3); + * var res = source.shareReplay(3, 500); + * var res = source.shareReplay(3, 500, scheduler); + * + + * @param bufferSize [Optional] Maximum element count of the replay buffer. + * @param window [Optional] Maximum time length of the replay buffer. + * @param scheduler [Optional] Scheduler where connected observers within the selector function will be invoked on. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence. + */ + shareReplay(bufferSize?: number, window?: number, scheduler?: IScheduler): Observable; + } + + export interface BehaviorSubject extends Subject { + /** + * Gets the current value or throws an exception. + * Value is frozen after onCompleted is called. + * After onError is called always throws the specified exception. + * An exception is always thrown after dispose is called. + * @returns {Mixed} The initial value passed to the constructor until onNext is called; after which, the last value passed to onNext. + */ + getValue(): T; + } + + interface BehaviorSubjectStatic { + /** + * Initializes a new instance of the BehaviorSubject class which creates a subject that caches its last value and starts with the specified value. + * @param {Mixed} value Initial value sent to observers when no other value has been received by the subject yet. + */ + new (initialValue: T): BehaviorSubject; + } + + /** + * Represents a value that changes over time. + * Observers can subscribe to the subject to receive the last (or initial) value and all subsequent notifications. + */ + export var BehaviorSubject: BehaviorSubjectStatic; + + export interface ReplaySubject extends Subject { } + + interface ReplaySubjectStatic { + /** + * Initializes a new instance of the ReplaySubject class with the specified buffer size, window size and scheduler. + * @param {Number} [bufferSize] Maximum element count of the replay buffer. + * @param {Number} [windowSize] Maximum time length of the replay buffer. + * @param {Scheduler} [scheduler] Scheduler the observers are invoked on. + */ + new (bufferSize?: number, window?: number, scheduler?: IScheduler): ReplaySubject; + } + + /** + * Represents an object that is both an observable sequence as well as an observer. + * Each notification is broadcasted to all subscribed and future observers, subject to buffer trimming policies. + */ + export var ReplaySubject: ReplaySubjectStatic; + +} +declare module "rx.core.binding" { export = Rx; } diff --git a/node_modules/rx/ts/rx.core.binding.es6.d.ts b/node_modules/rx/ts/rx.core.binding.es6.d.ts new file mode 100644 index 0000000..146b8e4 --- /dev/null +++ b/node_modules/rx/ts/rx.core.binding.es6.d.ts @@ -0,0 +1,249 @@ +declare module Rx { + + export interface ConnectableObservable extends Observable { + connect(): IDisposable; + refCount(): Observable; + } + + export interface Observable { + /** + * Multicasts the source sequence notifications through an instantiated subject into all uses of the sequence within a selector function. Each + * subscription to the resulting sequence causes a separate multicast invocation, exposing the sequence resulting from the selector function's + * invocation. For specializations with fixed subject types, see Publish, PublishLast, and Replay. + * + * @example + * 1 - res = source.multicast(observable); + * 2 - res = source.multicast(function () { return new Subject(); }, function (x) { return x; }); + * + * @param {Function|Subject} subjectOrSubjectSelector + * 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 which can use the multicasted source sequence subject to the policies enforced by the created subject. Specified only if | (() => ISubject)): ConnectableObservable; + /** + * Multicasts the source sequence notifications through an instantiated subject into all uses of the sequence within a selector function. Each + * subscription to the resulting sequence causes a separate multicast invocation, exposing the sequence resulting from the selector function's + * invocation. For specializations with fixed subject types, see Publish, PublishLast, and Replay. + * + * @example + * 1 - res = source.multicast(observable); + * 2 - res = source.multicast(function () { return new Subject(); }, function (x) { return x; }); + * + * @param {Function|Subject} subjectOrSubjectSelector + * 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 which can use the multicasted source sequence subject to the policies enforced by the created subject. Specified only if (subjectSelector: ISubject | (() => ISubject), selector: (source: ConnectableObservable) => Observable): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence. + * This operator is a specialization of Multicast using a regular Subject. + * + * @example + * var resres = source.publish(); + * var res = source.publish(function (x) { return x; }); + * + * @param {Function} [selector] 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. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publish(): ConnectableObservable; + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence. + * This operator is a specialization of Multicast using a regular Subject. + * + * @example + * var resres = source.publish(); + * var res = source.publish(function (x) { return x; }); + * + * @param {Function} [selector] 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. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publish(selector: (source: ConnectableObservable) => Observable): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence. + * This operator is a specialization of publish which creates a subscription when the number of observers goes from zero to one, then shares that subscription with all subsequent observers until the number of observers returns to zero, at which point the subscription is disposed. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence. + */ + share(): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + * This operator is a specialization of Multicast using a AsyncSubject. + * + * @example + * var res = source.publishLast(); + * var res = source.publishLast(function (x) { return x; }); + * + * @param 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 only receive the last notification of the source. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishLast(): ConnectableObservable; + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + * This operator is a specialization of Multicast using a AsyncSubject. + * + * @example + * var res = source.publishLast(); + * var res = source.publishLast(function (x) { return x; }); + * + * @param 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 only receive the last notification of the source. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishLast(selector: (source: ConnectableObservable) => Observable): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + * This operator is a specialization of Multicast using a BehaviorSubject. + * + * @example + * var res = source.publishValue(42); + * var res = source.publishValue(function (x) { return x.select(function (y) { return y * y; }) }, 42); + * + * @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 immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + * @param {Mixed} initialValue Initial value received by observers upon subscription. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishValue(initialValue: T): ConnectableObservable; + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + * This operator is a specialization of Multicast using a BehaviorSubject. + * + * @example + * var res = source.publishValue(42); + * var res = source.publishValue(function (x) { return x.select(function (y) { return y * y; }) }, 42); + * + * @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 immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + * @param {Mixed} initialValue Initial value received by observers upon subscription. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishValue(selector: (source: ConnectableObservable) => Observable, initialValue: T): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence and starts with an initialValue. + * This operator is a specialization of publishValue which creates a subscription when the number of observers goes from zero to one, then shares that subscription with all subsequent observers until the number of observers returns to zero, at which point the subscription is disposed. + * @param {Mixed} initialValue Initial value received by observers upon subscription. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence. + */ + shareValue(initialValue: T): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + * This operator is a specialization of Multicast using a ReplaySubject. + * + * @example + * var res = source.replay(null, 3); + * var res = source.replay(null, 3, 500); + * var res = source.replay(null, 3, 500, scheduler); + * var res = source.replay(function (x) { return x.take(6).repeat(); }, 3, 500, scheduler); + * + * @param 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 the notifications of the source subject to the specified replay buffer trimming policy. + * @param bufferSize [Optional] Maximum element count of the replay buffer. + * @param windowSize [Optional] Maximum time length of the replay buffer. + * @param scheduler [Optional] Scheduler where connected observers within the selector function will be invoked on. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + replay(selector?: void, bufferSize?: number, window?: number, scheduler?: IScheduler): ConnectableObservable; // hack to catch first omitted parameter + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + * This operator is a specialization of Multicast using a ReplaySubject. + * + * @example + * var res = source.replay(null, 3); + * var res = source.replay(null, 3, 500); + * var res = source.replay(null, 3, 500, scheduler); + * var res = source.replay(function (x) { return x.take(6).repeat(); }, 3, 500, scheduler); + * + * @param 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 the notifications of the source subject to the specified replay buffer trimming policy. + * @param bufferSize [Optional] Maximum element count of the replay buffer. + * @param windowSize [Optional] Maximum time length of the replay buffer. + * @param scheduler [Optional] Scheduler where connected observers within the selector function will be invoked on. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + replay(selector: (source: ConnectableObservable) => Observable, bufferSize?: number, window?: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + * This operator is a specialization of replay which creates a subscription when the number of observers goes from zero to one, then shares that subscription with all subsequent observers until the number of observers returns to zero, at which point the subscription is disposed. + * + * @example + * var res = source.shareReplay(3); + * var res = source.shareReplay(3, 500); + * var res = source.shareReplay(3, 500, scheduler); + * + + * @param bufferSize [Optional] Maximum element count of the replay buffer. + * @param window [Optional] Maximum time length of the replay buffer. + * @param scheduler [Optional] Scheduler where connected observers within the selector function will be invoked on. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence. + */ + shareReplay(bufferSize?: number, window?: number, scheduler?: IScheduler): Observable; + } + + export interface BehaviorSubject extends Subject { + /** + * Gets the current value or throws an exception. + * Value is frozen after onCompleted is called. + * After onError is called always throws the specified exception. + * An exception is always thrown after dispose is called. + * @returns {Mixed} The initial value passed to the constructor until onNext is called; after which, the last value passed to onNext. + */ + getValue(): T; + } + + interface BehaviorSubjectStatic { + /** + * Initializes a new instance of the BehaviorSubject class which creates a subject that caches its last value and starts with the specified value. + * @param {Mixed} value Initial value sent to observers when no other value has been received by the subject yet. + */ + new (initialValue: T): BehaviorSubject; + } + + /** + * Represents a value that changes over time. + * Observers can subscribe to the subject to receive the last (or initial) value and all subsequent notifications. + */ + export var BehaviorSubject: BehaviorSubjectStatic; + + export interface ReplaySubject extends Subject { } + + interface ReplaySubjectStatic { + /** + * Initializes a new instance of the ReplaySubject class with the specified buffer size, window size and scheduler. + * @param {Number} [bufferSize] Maximum element count of the replay buffer. + * @param {Number} [windowSize] Maximum time length of the replay buffer. + * @param {Scheduler} [scheduler] Scheduler the observers are invoked on. + */ + new (bufferSize?: number, window?: number, scheduler?: IScheduler): ReplaySubject; + } + + /** + * Represents an object that is both an observable sequence as well as an observer. + * Each notification is broadcasted to all subscribed and future observers, subject to buffer trimming policies. + */ + export var ReplaySubject: ReplaySubjectStatic; + +} +declare module "rx.core.binding" { export = Rx; } diff --git a/node_modules/rx/ts/rx.core.d.ts b/node_modules/rx/ts/rx.core.d.ts new file mode 100644 index 0000000..dd471bf --- /dev/null +++ b/node_modules/rx/ts/rx.core.d.ts @@ -0,0 +1,564 @@ +declare module Rx { + + // Type alias for observables and promises + export type ObservableOrPromise = IObservable | Observable | Promise; + + export type ArrayLike = Array | { length: number;[index: number]: T; }; + + // Type alias for arrays and array like objects + export type ArrayOrIterable = ArrayLike; + + /** + * Promise A+ + */ + export interface Promise { + then(onFulfilled: (value: T) => R|Promise, onRejected: (error: any) => Promise): Promise; + then(onFulfilled: (value: T) => R|Promise, onRejected?: (error: any) => R): Promise; + } + + /** + * Promise A+ + */ + export interface IPromise extends Promise { } + + /** + * Represents a push-style collection. + */ + export interface IObservable { } + + /** + * Represents a push-style collection. + */ + export interface Observable extends IObservable { } + + export interface IDisposable { + dispose(): void; + } + + export interface Disposable extends IDisposable { + /** Is this value disposed. */ + isDisposed?: boolean; + } + + interface DisposableStatic { + /** + * Provides a set of static methods for creating Disposables. + * @param {Function} dispose Action to run during the first call to dispose. The action is guaranteed to be run at most once. + */ + new (action: () => void): Disposable; + + /** + * Creates a disposable object that invokes the specified action when disposed. + * @param {Function} dispose Action to run during the first call to dispose. The action is guaranteed to be run at most once. + * @return {Disposable} The disposable object that runs the given action upon disposal. + */ + create(action: () => void): Disposable; + + /** + * Gets the disposable that does nothing when disposed. + */ + empty: IDisposable; + + /** + * Validates whether the given object is a disposable + * @param {Object} Object to test whether it has a dispose method + * @returns {Boolean} true if a disposable object, else false. + */ + isDisposable(d: any): boolean; + } + + /** + * Provides a set of static methods for creating Disposables. + * @param {Function} dispose Action to run during the first call to dispose. The action is guaranteed to be run at most once. + */ + export var Disposable: DisposableStatic; + + export module config { + export var Promise: { new (resolver: (resolvePromise: (value: T) => void, rejectPromise: (reason: any) => void) => void): IPromise; }; + } + + export module helpers { + export var noop: () => void; + export var notDefined: (value: any) => boolean; + export var identity: (value: T) => T; + export var defaultNow: () => number; + export var defaultComparer: (left: any, right: any) => boolean; + export var defaultSubComparer: (left: any, right: any) => number; + export var defaultKeySerializer: (key: any) => string; + export var defaultError: (err: any) => void; + export var isPromise: (p: any) => boolean; + export var asArray: (...args: T[]) => T[]; + export var not: (value: any) => boolean; + export var isFunction: (value: any) => boolean; + } + + export type _Selector = (value: T, index: number, observable: Observable) => TResult; + export type _ValueOrSelector = TResult | _Selector; + export type _Predicate = _Selector; + export type _Comparer = (value1: T, value2: T) => TResult; + export type _Accumulator = (acc: TAcc, value: T) => TAcc; + + export module special { + export type _FlatMapResultSelector = (value: T1, selectorValue: T2, index: number, selectorOther: number) => TResult; + } + + export interface IObservable { + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(observer: IObserver): IDisposable; + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): IDisposable; + } + + export interface Observable { + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(observer: IObserver): IDisposable; + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): IDisposable; + + /** + * Subscribes to the next value in the sequence with an optional "this" argument. + * @param {Function} onNext The function to invoke on each element in the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Disposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribeOnNext(onNext: (value: T) => void, thisArg?: any): IDisposable; + /** + * Subscribes to an exceptional condition in the sequence with an optional "this" argument. + * @param {Function} onError The function to invoke upon exceptional termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Disposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribeOnError(onError: (exception: any) => void, thisArg?: any): IDisposable; + /** + * Subscribes to the next value in the sequence with an optional "this" argument. + * @param {Function} onCompleted The function to invoke upon graceful termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Disposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribeOnCompleted(onCompleted: () => void, thisArg?: any): IDisposable; + + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + forEach(observer: IObserver): IDisposable; + + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + forEach(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): IDisposable; + } + + export interface ObservableStatic { + /** + * Determines whether the given object is an Observable + * @param {Any} An object to determine whether it is an Observable + * @returns {Boolean} true if an Observable, else false. + */ + isObservable(o: any): boolean; + } + + export var Observable: ObservableStatic; + + export module internals { + export var inherits: (child: any, parent: any) => void; + export var addProperties: (obj: any, ...sources: any[]) => void; + export var addRef: (xs: Observable, r: { getDisposable(): IDisposable; }) => Observable; + } + + /** + * Represents a group of disposable resources that are disposed together. + * @constructor + */ + export interface CompositeDisposable extends Disposable { + /** + * Adds a disposable to the CompositeDisposable or disposes the disposable if the CompositeDisposable is disposed. + * @param {Mixed} item Disposable to add. + */ + add(item: IDisposable): void; + + /** + * Removes and disposes the first occurrence of a disposable from the CompositeDisposable. + * @param {Mixed} item Disposable to remove. + * @returns {Boolean} true if found; false otherwise. + */ + remove(item: IDisposable): void; + } + + interface CompositeDisposableStatic { + /** + * Represents a group of disposable resources that are disposed together. + * @constructor + */ + new (...disposables: Rx.IDisposable[]): CompositeDisposable; + /** + * Represents a group of disposable resources that are disposed together. + * @constructor + */ + new(disposables: Rx.IDisposable[]): CompositeDisposable; + } + + export var CompositeDisposable: CompositeDisposableStatic; + + export interface SingleAssignmentDisposable { + /** Performs the task of cleaning up resources. */ + dispose(): void; + + /** Is this value disposed. */ + isDisposed: boolean; + + getDisposable(): IDisposable; + + setDisposable(value: IDisposable): void; + } + + interface SingleAssignmentDisposableStatic { + new() : SingleAssignmentDisposable; + } + + export var SingleAssignmentDisposable : SingleAssignmentDisposableStatic; + + export interface SerialDisposable { + /** Performs the task of cleaning up resources. */ + dispose(): void; + + /** Is this value disposed. */ + isDisposed: boolean; + + getDisposable(): IDisposable; + + setDisposable(value: IDisposable): void; + } + + interface SerialDisposableStatic { + new() : SerialDisposable; + } + + export var SerialDisposable : SerialDisposableStatic; + + export interface IScheduler { + /** Gets the current time according to the local machine's system clock. */ + now(): number; + + /** + * Schedules an action to be executed. + * @param state State passed to the action to be executed. + * @param {Function} action Action to be executed. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + schedule(state: TState, action: (scheduler: IScheduler, state: TState) => IDisposable): IDisposable; + + /** + * Schedules an action to be executed after dueTime. + * @param state State passed to the action to be executed. + * @param {Function} action Action to be executed. + * @param {Number} dueTime Relative time after which to execute the action. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + scheduleFuture(state: TState, dueTime: number | Date, action: (scheduler: IScheduler, state: TState) => IDisposable): IDisposable; + } + + export interface SchedulerStatic { + /** Gets the current time according to the local machine's system clock. */ + now(): number; + + /** + * Normalizes the specified TimeSpan value to a positive value. + * @param {Number} timeSpan The time span value to normalize. + * @returns {Number} The specified TimeSpan value if it is zero or positive; otherwise, 0 + */ + normalize(timeSpan: number): number; + + /** Determines whether the given object is a scheduler */ + isScheduler(s: any): boolean; + } + + /** Provides a set of static properties to access commonly used schedulers. */ + export var Scheduler: SchedulerStatic; + + export module internals { + export interface ScheduledItem { + scheduler: IScheduler; + state: TTime; + action: (scheduler: IScheduler, state: any) => IDisposable; + dueTime: TTime; + comparer: (x: TTime, y: TTime) => number; + disposable: SingleAssignmentDisposable; + + invoke(): void; + compareTo(other: ScheduledItem): number; + isCancelled(): boolean; + invokeCore(): IDisposable; + } + + interface ScheduledItemStatic { + new (scheduler: IScheduler, state: any, action: (scheduler: IScheduler, state: any) => IDisposable, dueTime: TTime, comparer?: _Comparer):ScheduledItem; + } + + export var ScheduledItem: ScheduledItemStatic + } + + export interface IScheduler { + /** + * Schedules an action to be executed recursively. + * @param {Mixed} state State passed to the action to be executed. + * @param {Function} action Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in recursive invocation state. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + scheduleRecursive(state: TState, action: (state: TState, action: (state: TState) => void) => void): IDisposable; + + /** + * Schedules an action to be executed recursively after a specified relative due time. + * @param {Mixed} state State passed to the action to be executed. + * @param {Function} action Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in the recursive due time and invocation state. + * @param {Number}dueTime Relative time after which to execute the action for the first time. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + scheduleRecursiveFuture(state: TState, dueTime: TTime, action: (state: TState, action: (state: TState, dueTime: TTime) => void) => void): IDisposable; + } + + export interface IScheduler { + /** + * Schedules a periodic piece of work by dynamically discovering the scheduler's capabilities. The periodic task will be scheduled using window.setInterval for the base implementation. + * @param {Mixed} state Initial state passed to the action upon the first iteration. + * @param {Number} period Period for running the work periodically. + * @param {Function} action Action to be executed, potentially updating the state. + * @returns {Disposable} The disposable object used to cancel the scheduled recurring action (best effort). + */ + schedulePeriodic(state: TState, period: number, action: (state: TState) => TState): IDisposable; + } + + export module internals { + export interface SchedulePeriodicRecursive { + start(): IDisposable; + } + + interface SchedulePeriodicRecursiveStatic { + new (scheduler: any, state: any, period: any, action: any) : SchedulePeriodicRecursive; + } + + export var SchedulePeriodicRecursive: SchedulePeriodicRecursiveStatic; + } + + export interface SchedulerStatic { + immediate: IScheduler; + } + + export interface ICurrentThreadScheduler extends IScheduler { + scheduleRequired(): boolean; + } + + export interface SchedulerStatic { + currentThread: ICurrentThreadScheduler; + } + + export interface SchedulerStatic { + default: IScheduler; + async: IScheduler; + } + + export module internals { + // Priority Queue for Scheduling + export interface PriorityQueue { + length: number; + + isHigherPriority(left: number, right: number): boolean; + percolate(index: number): void; + heapify(index: number): void; + peek(): ScheduledItem; + removeAt(index: number): void; + dequeue(): ScheduledItem; + enqueue(item: ScheduledItem): void; + remove(item: ScheduledItem): boolean; + } + + interface PriorityQueueStatic { + new (capacity: number) : PriorityQueue; + count: number; + } + + export var PriorityQueue : PriorityQueueStatic; + } + + export interface CheckedObserver extends Observer { + checkAccess(): void; + } + + /** + * Supports push-style iteration over an observable sequence. + */ + export interface IObserver { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + } + + export interface Observer { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + } + + export interface ObserverStatic { + /** + * Creates an observer from the specified OnNext, along with optional OnError, and OnCompleted actions. + * @param {Function} [onNext] Observer's OnNext action implementation. + * @param {Function} [onError] Observer's OnError action implementation. + * @param {Function} [onCompleted] Observer's OnCompleted action implementation. + * @returns {Observer} The observer object implemented using the given actions. + */ + create(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): Observer; + } + + /** + * Supports push-style iteration over an observable sequence. + */ + export var Observer: ObserverStatic; + + export module internals { + /** + * Abstract base class for implementations of the Observer class. + * This base class enforces the grammar of observers where OnError and OnCompleted are terminal messages. + */ + export interface AbstractObserver extends Rx.IObserver, Rx.IDisposable { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + + isStopped: boolean; + + /** + * Disposes the observer, causing it to transition to the stopped state. + */ + dispose(): void; + + fail(e: any): boolean; + + // Must be implemented by other observers + next(value: T): void; + error(error: any): void; + completed(): void; + } + + interface AbstractObserverStatic { + new (): AbstractObserver; + } + + export var AbstractObserver: AbstractObserverStatic + } + + /** + * Class to create an Observer instance from delegate-based implementations of the on* methods. + */ + export interface AnonymousObserver extends Observer { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + } + + interface AnonymousObserverStatic { + /** + * Creates an observer from the specified OnNext, OnError, and OnCompleted actions. + * @param {Any} onNext Observer's OnNext action implementation. + * @param {Any} onError Observer's OnError action implementation. + * @param {Any} onCompleted Observer's OnCompleted action implementation. + */ + new (onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): AnonymousObserver; + } + + export var AnonymousObserver : AnonymousObserverStatic; + + export interface AnonymousObservable extends Observable { } + + export interface ObservableStatic { + /** + * Creates an observable sequence from a specified subscribe method implementation. + * @example + * var res = Rx.Observable.create(function (observer) { return function () { } ); + * var res = Rx.Observable.create(function (observer) { return Rx.Disposable.empty; } ); + * var res = Rx.Observable.create(function (observer) { } ); + * @param {Function} subscribe Implementation of the resulting observable sequence's subscribe method, returning a function that will be wrapped in a Disposable. + * @returns {Observable} The observable sequence with the specified implementation for the Subscribe method. + */ + create(subscribe: (observer: Observer) => IDisposable | Function | void): Observable; + } + +} + +declare module "rx" { export = Rx; } + diff --git a/node_modules/rx/ts/rx.core.es6.d.ts b/node_modules/rx/ts/rx.core.es6.d.ts new file mode 100644 index 0000000..2418688 --- /dev/null +++ b/node_modules/rx/ts/rx.core.es6.d.ts @@ -0,0 +1,561 @@ +declare module Rx { + + // Type alias for observables and promises + export type ObservableOrPromise = IObservable | Observable | Promise; + + export type ArrayLike = Array | { length: number;[index: number]: T; }; + + // Type alias for arrays and array like objects + export type ArrayOrIterable = ArrayLike | Iterable; + + /** + * Promise A+ + */ + export interface Promise extends PromiseLike { } + + /** + * Promise A+ + */ + export interface IPromise extends PromiseLike { } + + /** + * Represents a push-style collection. + */ + export interface IObservable { } + + /** + * Represents a push-style collection. + */ + export interface Observable extends IObservable { } + + export interface IDisposable { + dispose(): void; + } + + export interface Disposable extends IDisposable { + /** Is this value disposed. */ + isDisposed?: boolean; + } + + interface DisposableStatic { + /** + * Provides a set of static methods for creating Disposables. + * @param {Function} dispose Action to run during the first call to dispose. The action is guaranteed to be run at most once. + */ + new (action: () => void): Disposable; + + /** + * Creates a disposable object that invokes the specified action when disposed. + * @param {Function} dispose Action to run during the first call to dispose. The action is guaranteed to be run at most once. + * @return {Disposable} The disposable object that runs the given action upon disposal. + */ + create(action: () => void): Disposable; + + /** + * Gets the disposable that does nothing when disposed. + */ + empty: IDisposable; + + /** + * Validates whether the given object is a disposable + * @param {Object} Object to test whether it has a dispose method + * @returns {Boolean} true if a disposable object, else false. + */ + isDisposable(d: any): boolean; + } + + /** + * Provides a set of static methods for creating Disposables. + * @param {Function} dispose Action to run during the first call to dispose. The action is guaranteed to be run at most once. + */ + export var Disposable: DisposableStatic; + + export module config { + export var Promise: { new (resolver: (resolvePromise: (value: T) => void, rejectPromise: (reason: any) => void) => void): IPromise; }; + } + + export module helpers { + export var noop: () => void; + export var notDefined: (value: any) => boolean; + export var identity: (value: T) => T; + export var defaultNow: () => number; + export var defaultComparer: (left: any, right: any) => boolean; + export var defaultSubComparer: (left: any, right: any) => number; + export var defaultKeySerializer: (key: any) => string; + export var defaultError: (err: any) => void; + export var isPromise: (p: any) => boolean; + export var asArray: (...args: T[]) => T[]; + export var not: (value: any) => boolean; + export var isFunction: (value: any) => boolean; + } + + export type _Selector = (value: T, index: number, observable: Observable) => TResult; + export type _ValueOrSelector = TResult | _Selector; + export type _Predicate = _Selector; + export type _Comparer = (value1: T, value2: T) => TResult; + export type _Accumulator = (acc: TAcc, value: T) => TAcc; + + export module special { + export type _FlatMapResultSelector = (value: T1, selectorValue: T2, index: number, selectorOther: number) => TResult; + } + + export interface IObservable { + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(observer: IObserver): IDisposable; + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): IDisposable; + } + + export interface Observable { + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(observer: IObserver): IDisposable; + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): IDisposable; + + /** + * Subscribes to the next value in the sequence with an optional "this" argument. + * @param {Function} onNext The function to invoke on each element in the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Disposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribeOnNext(onNext: (value: T) => void, thisArg?: any): IDisposable; + /** + * Subscribes to an exceptional condition in the sequence with an optional "this" argument. + * @param {Function} onError The function to invoke upon exceptional termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Disposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribeOnError(onError: (exception: any) => void, thisArg?: any): IDisposable; + /** + * Subscribes to the next value in the sequence with an optional "this" argument. + * @param {Function} onCompleted The function to invoke upon graceful termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Disposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribeOnCompleted(onCompleted: () => void, thisArg?: any): IDisposable; + + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + forEach(observer: IObserver): IDisposable; + + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + forEach(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): IDisposable; + } + + export interface ObservableStatic { + /** + * Determines whether the given object is an Observable + * @param {Any} An object to determine whether it is an Observable + * @returns {Boolean} true if an Observable, else false. + */ + isObservable(o: any): boolean; + } + + export var Observable: ObservableStatic; + + export module internals { + export var inherits: (child: any, parent: any) => void; + export var addProperties: (obj: any, ...sources: any[]) => void; + export var addRef: (xs: Observable, r: { getDisposable(): IDisposable; }) => Observable; + } + + /** + * Represents a group of disposable resources that are disposed together. + * @constructor + */ + export interface CompositeDisposable extends Disposable { + /** + * Adds a disposable to the CompositeDisposable or disposes the disposable if the CompositeDisposable is disposed. + * @param {Mixed} item Disposable to add. + */ + add(item: IDisposable): void; + + /** + * Removes and disposes the first occurrence of a disposable from the CompositeDisposable. + * @param {Mixed} item Disposable to remove. + * @returns {Boolean} true if found; false otherwise. + */ + remove(item: IDisposable): void; + } + + interface CompositeDisposableStatic { + /** + * Represents a group of disposable resources that are disposed together. + * @constructor + */ + new (...disposables: Rx.IDisposable[]): CompositeDisposable; + /** + * Represents a group of disposable resources that are disposed together. + * @constructor + */ + new(disposables: Rx.IDisposable[]): CompositeDisposable; + } + + export var CompositeDisposable: CompositeDisposableStatic; + + export interface SingleAssignmentDisposable { + /** Performs the task of cleaning up resources. */ + dispose(): void; + + /** Is this value disposed. */ + isDisposed: boolean; + + getDisposable(): IDisposable; + + setDisposable(value: IDisposable): void; + } + + interface SingleAssignmentDisposableStatic { + new() : SingleAssignmentDisposable; + } + + export var SingleAssignmentDisposable : SingleAssignmentDisposableStatic; + + export interface SerialDisposable { + /** Performs the task of cleaning up resources. */ + dispose(): void; + + /** Is this value disposed. */ + isDisposed: boolean; + + getDisposable(): IDisposable; + + setDisposable(value: IDisposable): void; + } + + interface SerialDisposableStatic { + new() : SerialDisposable; + } + + export var SerialDisposable : SerialDisposableStatic; + + export interface IScheduler { + /** Gets the current time according to the local machine's system clock. */ + now(): number; + + /** + * Schedules an action to be executed. + * @param state State passed to the action to be executed. + * @param {Function} action Action to be executed. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + schedule(state: TState, action: (scheduler: IScheduler, state: TState) => IDisposable): IDisposable; + + /** + * Schedules an action to be executed after dueTime. + * @param state State passed to the action to be executed. + * @param {Function} action Action to be executed. + * @param {Number} dueTime Relative time after which to execute the action. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + scheduleFuture(state: TState, dueTime: number | Date, action: (scheduler: IScheduler, state: TState) => IDisposable): IDisposable; + } + + export interface SchedulerStatic { + /** Gets the current time according to the local machine's system clock. */ + now(): number; + + /** + * Normalizes the specified TimeSpan value to a positive value. + * @param {Number} timeSpan The time span value to normalize. + * @returns {Number} The specified TimeSpan value if it is zero or positive; otherwise, 0 + */ + normalize(timeSpan: number): number; + + /** Determines whether the given object is a scheduler */ + isScheduler(s: any): boolean; + } + + /** Provides a set of static properties to access commonly used schedulers. */ + export var Scheduler: SchedulerStatic; + + export module internals { + export interface ScheduledItem { + scheduler: IScheduler; + state: TTime; + action: (scheduler: IScheduler, state: any) => IDisposable; + dueTime: TTime; + comparer: (x: TTime, y: TTime) => number; + disposable: SingleAssignmentDisposable; + + invoke(): void; + compareTo(other: ScheduledItem): number; + isCancelled(): boolean; + invokeCore(): IDisposable; + } + + interface ScheduledItemStatic { + new (scheduler: IScheduler, state: any, action: (scheduler: IScheduler, state: any) => IDisposable, dueTime: TTime, comparer?: _Comparer):ScheduledItem; + } + + export var ScheduledItem: ScheduledItemStatic + } + + export interface IScheduler { + /** + * Schedules an action to be executed recursively. + * @param {Mixed} state State passed to the action to be executed. + * @param {Function} action Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in recursive invocation state. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + scheduleRecursive(state: TState, action: (state: TState, action: (state: TState) => void) => void): IDisposable; + + /** + * Schedules an action to be executed recursively after a specified relative due time. + * @param {Mixed} state State passed to the action to be executed. + * @param {Function} action Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in the recursive due time and invocation state. + * @param {Number}dueTime Relative time after which to execute the action for the first time. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + scheduleRecursiveFuture(state: TState, dueTime: TTime, action: (state: TState, action: (state: TState, dueTime: TTime) => void) => void): IDisposable; + } + + export interface IScheduler { + /** + * Schedules a periodic piece of work by dynamically discovering the scheduler's capabilities. The periodic task will be scheduled using window.setInterval for the base implementation. + * @param {Mixed} state Initial state passed to the action upon the first iteration. + * @param {Number} period Period for running the work periodically. + * @param {Function} action Action to be executed, potentially updating the state. + * @returns {Disposable} The disposable object used to cancel the scheduled recurring action (best effort). + */ + schedulePeriodic(state: TState, period: number, action: (state: TState) => TState): IDisposable; + } + + export module internals { + export interface SchedulePeriodicRecursive { + start(): IDisposable; + } + + interface SchedulePeriodicRecursiveStatic { + new (scheduler: any, state: any, period: any, action: any) : SchedulePeriodicRecursive; + } + + export var SchedulePeriodicRecursive: SchedulePeriodicRecursiveStatic; + } + + export interface SchedulerStatic { + immediate: IScheduler; + } + + export interface ICurrentThreadScheduler extends IScheduler { + scheduleRequired(): boolean; + } + + export interface SchedulerStatic { + currentThread: ICurrentThreadScheduler; + } + + export interface SchedulerStatic { + default: IScheduler; + async: IScheduler; + } + + export module internals { + // Priority Queue for Scheduling + export interface PriorityQueue { + length: number; + + isHigherPriority(left: number, right: number): boolean; + percolate(index: number): void; + heapify(index: number): void; + peek(): ScheduledItem; + removeAt(index: number): void; + dequeue(): ScheduledItem; + enqueue(item: ScheduledItem): void; + remove(item: ScheduledItem): boolean; + } + + interface PriorityQueueStatic { + new (capacity: number) : PriorityQueue; + count: number; + } + + export var PriorityQueue : PriorityQueueStatic; + } + + export interface CheckedObserver extends Observer { + checkAccess(): void; + } + + /** + * Supports push-style iteration over an observable sequence. + */ + export interface IObserver { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + } + + export interface Observer { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + } + + export interface ObserverStatic { + /** + * Creates an observer from the specified OnNext, along with optional OnError, and OnCompleted actions. + * @param {Function} [onNext] Observer's OnNext action implementation. + * @param {Function} [onError] Observer's OnError action implementation. + * @param {Function} [onCompleted] Observer's OnCompleted action implementation. + * @returns {Observer} The observer object implemented using the given actions. + */ + create(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): Observer; + } + + /** + * Supports push-style iteration over an observable sequence. + */ + export var Observer: ObserverStatic; + + export module internals { + /** + * Abstract base class for implementations of the Observer class. + * This base class enforces the grammar of observers where OnError and OnCompleted are terminal messages. + */ + export interface AbstractObserver extends Rx.IObserver, Rx.IDisposable { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + + isStopped: boolean; + + /** + * Disposes the observer, causing it to transition to the stopped state. + */ + dispose(): void; + + fail(e: any): boolean; + + // Must be implemented by other observers + next(value: T): void; + error(error: any): void; + completed(): void; + } + + interface AbstractObserverStatic { + new (): AbstractObserver; + } + + export var AbstractObserver: AbstractObserverStatic + } + + /** + * Class to create an Observer instance from delegate-based implementations of the on* methods. + */ + export interface AnonymousObserver extends Observer { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + } + + interface AnonymousObserverStatic { + /** + * Creates an observer from the specified OnNext, OnError, and OnCompleted actions. + * @param {Any} onNext Observer's OnNext action implementation. + * @param {Any} onError Observer's OnError action implementation. + * @param {Any} onCompleted Observer's OnCompleted action implementation. + */ + new (onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): AnonymousObserver; + } + + export var AnonymousObserver : AnonymousObserverStatic; + + export interface AnonymousObservable extends Observable { } + + export interface ObservableStatic { + /** + * Creates an observable sequence from a specified subscribe method implementation. + * @example + * var res = Rx.Observable.create(function (observer) { return function () { } ); + * var res = Rx.Observable.create(function (observer) { return Rx.Disposable.empty; } ); + * var res = Rx.Observable.create(function (observer) { } ); + * @param {Function} subscribe Implementation of the resulting observable sequence's subscribe method, returning a function that will be wrapped in a Disposable. + * @returns {Observable} The observable sequence with the specified implementation for the Subscribe method. + */ + create(subscribe: (observer: Observer) => IDisposable | Function | void): Observable; + } + +} + +declare module "rx" { export = Rx; } + diff --git a/node_modules/rx/ts/rx.core.testing.d.ts b/node_modules/rx/ts/rx.core.testing.d.ts new file mode 100644 index 0000000..e9ffa9a --- /dev/null +++ b/node_modules/rx/ts/rx.core.testing.d.ts @@ -0,0 +1,270 @@ +declare module Rx { + + export interface VirtualTimeScheduler extends IScheduler { + /** + * Adds a relative time value to an absolute time value. + * @param {Number} absolute Absolute virtual time value. + * @param {Number} relative Relative virtual time value to add. + * @return {Number} Resulting absolute virtual time sum value. + */ + add(from: TAbsolute, by: TRelative): TAbsolute; + + /** + * Converts an absolute time to a number + * @param {Any} The absolute time. + * @returns {Number} The absolute time in ms + */ + toAbsoluteTime(duetime: TAbsolute): number; + + /** + * Converts the TimeSpan value to a relative virtual time value. + * @param {Number} timeSpan TimeSpan value to convert. + * @return {Number} Corresponding relative virtual time value. + */ + toRelativeTime(duetime: number): TRelative; + + /** + * Starts the virtual time scheduler. + */ + start(): IDisposable; + + /** + * Stops the virtual time scheduler. + */ + stop(): void; + + /** + * Advances the scheduler's clock to the specified time, running all work till that point. + * @param {Number} time Absolute time to advance the scheduler's clock to. + */ + advanceTo(time: TAbsolute): void; + + /** + * Advances the scheduler's clock by the specified relative time, running all work scheduled for that timespan. + * @param {Number} time Relative time to advance the scheduler's clock by. + */ + advanceBy(time: TRelative): void; + + /** + * Advances the scheduler's clock by the specified relative time. + * @param {Number} time Relative time to advance the scheduler's clock by. + */ + sleep(time: TRelative): void; + + isEnabled: boolean; + + /** + * Gets the next scheduled item to be executed. + * @returns {ScheduledItem} The next scheduled item. + */ + getNext(): internals.ScheduledItem; + } + + export interface Subscription { + /** + * Checks whether the given subscription is equal to the current instance. + * @param other Subscription object to check for equality. + * @returns {Boolean} true if both objects are equal; false otherwise. + */ + equals(other: Subscription): boolean; + /** + * Returns a string representation of the current Subscription value. + * @returns {String} String representation of the current Subscription value. + */ + toString(): string; + } + + interface SubscriptionStatic { + /** + * Creates a new subscription object with the given virtual subscription and unsubscription time. + * + * @constructor + * @param {Number} subscribe Virtual time at which the subscription occurred. + * @param {Number} unsubscribe Virtual time at which the unsubscription occurred. + */ + new (subscribeAt: number, unsubscribeAt?: number): Subscription; + } + + export var Subscription: SubscriptionStatic; + + export interface Recorded { + /** + * Checks whether the given recorded object is equal to the current instance. + * + * @param {Recorded} other Recorded object to check for equality. + * @returns {Boolean} true if both objects are equal; false otherwise. + */ + equals(other: Recorded): boolean; + /** + * Returns a string representation of the current Recorded value. + * + * @returns {String} String representation of the current Recorded value. + */ + toString(): string; + time: number; + value: any; + } + + interface RecordedStatic { + /** + * Creates a new object recording the production of the specified value at the given virtual time. + * + * @constructor + * @param {Number} time Virtual time the value was produced on. + * @param {Mixed} value Value that was produced. + * @param {Function} comparer An optional comparer. + */ + new (time: number, value: any, equalityComparer?: _Comparer): Recorded; + } + + export var Recorded: RecordedStatic; + + export var ReactiveTest: { + /** Default virtual time used for creation of observable sequences in unit tests. */ + created: number; + /** Default virtual time used to subscribe to observable sequences in unit tests. */ + subscribed: number; + /** Default virtual time used to dispose subscriptions in unit tests. */ + disposed: number; + + /** + * Factory method for an OnNext notification record at a given time with a given value or a predicate function. + * + * 1 - ReactiveTest.onNext(200, 42); + * 2 - ReactiveTest.onNext(200, function (x) { return x.length == 2; }); + * + * @param ticks Recorded virtual time the OnNext notification occurs. + * @param value Recorded value stored in the OnNext notification or a predicate. + * @return Recorded OnNext notification. + */ + onNext(ticks: number, value: any): Recorded; + /** + * Factory method for an OnNext notification record at a given time with a given value or a predicate function. + * + * 1 - ReactiveTest.onNext(200, 42); + * 2 - ReactiveTest.onNext(200, function (x) { return x.length == 2; }); + * + * @param ticks Recorded virtual time the OnNext notification occurs. + * @param value Recorded value stored in the OnNext notification or a predicate. + * @return Recorded OnNext notification. + */ + onNext(ticks: number, predicate: (value: any) => boolean): Recorded; + /** + * Factory method for an OnError notification record at a given time with a given error. + * + * 1 - ReactiveTest.onNext(200, new Error('error')); + * 2 - ReactiveTest.onNext(200, function (e) { return e.message === 'error'; }); + * + * @param ticks Recorded virtual time the OnError notification occurs. + * @param exception Recorded exception stored in the OnError notification. + * @return Recorded OnError notification. + */ + onError(ticks: number, exception: any): Recorded; + /** + * Factory method for an OnError notification record at a given time with a given error. + * + * 1 - ReactiveTest.onNext(200, new Error('error')); + * 2 - ReactiveTest.onNext(200, function (e) { return e.message === 'error'; }); + * + * @param ticks Recorded virtual time the OnError notification occurs. + * @param exception Recorded exception stored in the OnError notification. + * @return Recorded OnError notification. + */ + onError(ticks: number, predicate: (exception: any) => boolean): Recorded; + /** + * Factory method for an OnCompleted notification record at a given time. + * + * @param ticks Recorded virtual time the OnCompleted notification occurs. + * @return Recorded OnCompleted notification. + */ + onCompleted(ticks: number): Recorded; + + /** + * Factory method for a subscription record based on a given subscription and disposal time. + * + * @param start Virtual time indicating when the subscription was created. + * @param end Virtual time indicating when the subscription was disposed. + * @return Subscription object. + */ + subscribe(subscribeAt: number, unsubscribeAt?: number): Subscription; + } + + export interface MockObserver extends Observer { + messages: Recorded[]; + } + + interface MockObserverStatic extends ObserverStatic { + new (scheduler: IScheduler): MockObserver; + } + + export var MockObserver: MockObserverStatic; + + + export interface TestScheduler extends VirtualTimeScheduler { + /** + * Creates a cold observable using the specified timestamped notification messages either as an array or arguments. + * @param messages Notifications to surface through the created sequence at their specified virtual time offsets from the sequence subscription time. + * @return Cold observable sequence that can be used to assert the timing of subscriptions and notifications. + */ + createColdObservable(...records: Recorded[]): Observable; + /** + * Creates a hot observable using the specified timestamped notification messages either as an array or arguments. + * @param messages Notifications to surface through the created sequence at their specified absolute virtual times. + * @return Hot observable sequence that can be used to assert the timing of subscriptions and notifications. + */ + createHotObservable(...records: Recorded[]): Observable; + /** + * Creates an observer that records received notification messages and timestamps those. + * @return Observer that can be used to assert the timing of received notifications. + */ + createObserver(): MockObserver; + + /** + * Creates a resolved promise with the given value and ticks + * @param {Number} ticks The absolute time of the resolution. + * @param {Any} value The value to yield at the given tick. + * @returns {MockPromise} A mock Promise which fulfills with the given value. + */ + createResolvedPromise(ticks: number, value: T): IPromise; + /** + * Creates a rejected promise with the given reason and ticks + * @param {Number} ticks The absolute time of the resolution. + * @param {Any} reason The reason for rejection to yield at the given tick. + * @returns {MockPromise} A mock Promise which rejects with the given reason. + */ + createRejectedPromise(ticks: number, value: T): IPromise; + + /** + * Starts the test scheduler and uses the specified virtual times to invoke the factory function, subscribe to the resulting sequence, and dispose the subscription. + * + * @param create Factory method to create an observable sequence. + * @param created Virtual time at which to invoke the factory to create an observable sequence. + * @param subscribed Virtual time at which to subscribe to the created observable sequence. + * @param disposed Virtual time at which to dispose the subscription. + * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. + */ + startWithTiming(create: () => Observable, createdAt: number, subscribedAt: number, disposedAt: number): MockObserver; + /** + * Starts the test scheduler and uses the specified virtual time to dispose the subscription to the sequence obtained through the factory function. + * Default virtual times are used for factory invocation and sequence subscription. + * + * @param create Factory method to create an observable sequence. + * @param disposed Virtual time at which to dispose the subscription. + * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. + */ + startWithDispose(create: () => Observable, disposedAt: number): MockObserver; + /** + * Starts the test scheduler and uses default virtual times to invoke the factory function, to subscribe to the resulting sequence, and to dispose the subscription. + * + * @param create Factory method to create an observable sequence. + * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. + */ + startWithCreate(create: () => Observable): MockObserver; + } + + export var TestScheduler: { + new (): TestScheduler; + } + +} +declare module "rx.core.testing" { export = Rx; } diff --git a/node_modules/rx/ts/rx.core.testing.es6.d.ts b/node_modules/rx/ts/rx.core.testing.es6.d.ts new file mode 100644 index 0000000..e9ffa9a --- /dev/null +++ b/node_modules/rx/ts/rx.core.testing.es6.d.ts @@ -0,0 +1,270 @@ +declare module Rx { + + export interface VirtualTimeScheduler extends IScheduler { + /** + * Adds a relative time value to an absolute time value. + * @param {Number} absolute Absolute virtual time value. + * @param {Number} relative Relative virtual time value to add. + * @return {Number} Resulting absolute virtual time sum value. + */ + add(from: TAbsolute, by: TRelative): TAbsolute; + + /** + * Converts an absolute time to a number + * @param {Any} The absolute time. + * @returns {Number} The absolute time in ms + */ + toAbsoluteTime(duetime: TAbsolute): number; + + /** + * Converts the TimeSpan value to a relative virtual time value. + * @param {Number} timeSpan TimeSpan value to convert. + * @return {Number} Corresponding relative virtual time value. + */ + toRelativeTime(duetime: number): TRelative; + + /** + * Starts the virtual time scheduler. + */ + start(): IDisposable; + + /** + * Stops the virtual time scheduler. + */ + stop(): void; + + /** + * Advances the scheduler's clock to the specified time, running all work till that point. + * @param {Number} time Absolute time to advance the scheduler's clock to. + */ + advanceTo(time: TAbsolute): void; + + /** + * Advances the scheduler's clock by the specified relative time, running all work scheduled for that timespan. + * @param {Number} time Relative time to advance the scheduler's clock by. + */ + advanceBy(time: TRelative): void; + + /** + * Advances the scheduler's clock by the specified relative time. + * @param {Number} time Relative time to advance the scheduler's clock by. + */ + sleep(time: TRelative): void; + + isEnabled: boolean; + + /** + * Gets the next scheduled item to be executed. + * @returns {ScheduledItem} The next scheduled item. + */ + getNext(): internals.ScheduledItem; + } + + export interface Subscription { + /** + * Checks whether the given subscription is equal to the current instance. + * @param other Subscription object to check for equality. + * @returns {Boolean} true if both objects are equal; false otherwise. + */ + equals(other: Subscription): boolean; + /** + * Returns a string representation of the current Subscription value. + * @returns {String} String representation of the current Subscription value. + */ + toString(): string; + } + + interface SubscriptionStatic { + /** + * Creates a new subscription object with the given virtual subscription and unsubscription time. + * + * @constructor + * @param {Number} subscribe Virtual time at which the subscription occurred. + * @param {Number} unsubscribe Virtual time at which the unsubscription occurred. + */ + new (subscribeAt: number, unsubscribeAt?: number): Subscription; + } + + export var Subscription: SubscriptionStatic; + + export interface Recorded { + /** + * Checks whether the given recorded object is equal to the current instance. + * + * @param {Recorded} other Recorded object to check for equality. + * @returns {Boolean} true if both objects are equal; false otherwise. + */ + equals(other: Recorded): boolean; + /** + * Returns a string representation of the current Recorded value. + * + * @returns {String} String representation of the current Recorded value. + */ + toString(): string; + time: number; + value: any; + } + + interface RecordedStatic { + /** + * Creates a new object recording the production of the specified value at the given virtual time. + * + * @constructor + * @param {Number} time Virtual time the value was produced on. + * @param {Mixed} value Value that was produced. + * @param {Function} comparer An optional comparer. + */ + new (time: number, value: any, equalityComparer?: _Comparer): Recorded; + } + + export var Recorded: RecordedStatic; + + export var ReactiveTest: { + /** Default virtual time used for creation of observable sequences in unit tests. */ + created: number; + /** Default virtual time used to subscribe to observable sequences in unit tests. */ + subscribed: number; + /** Default virtual time used to dispose subscriptions in unit tests. */ + disposed: number; + + /** + * Factory method for an OnNext notification record at a given time with a given value or a predicate function. + * + * 1 - ReactiveTest.onNext(200, 42); + * 2 - ReactiveTest.onNext(200, function (x) { return x.length == 2; }); + * + * @param ticks Recorded virtual time the OnNext notification occurs. + * @param value Recorded value stored in the OnNext notification or a predicate. + * @return Recorded OnNext notification. + */ + onNext(ticks: number, value: any): Recorded; + /** + * Factory method for an OnNext notification record at a given time with a given value or a predicate function. + * + * 1 - ReactiveTest.onNext(200, 42); + * 2 - ReactiveTest.onNext(200, function (x) { return x.length == 2; }); + * + * @param ticks Recorded virtual time the OnNext notification occurs. + * @param value Recorded value stored in the OnNext notification or a predicate. + * @return Recorded OnNext notification. + */ + onNext(ticks: number, predicate: (value: any) => boolean): Recorded; + /** + * Factory method for an OnError notification record at a given time with a given error. + * + * 1 - ReactiveTest.onNext(200, new Error('error')); + * 2 - ReactiveTest.onNext(200, function (e) { return e.message === 'error'; }); + * + * @param ticks Recorded virtual time the OnError notification occurs. + * @param exception Recorded exception stored in the OnError notification. + * @return Recorded OnError notification. + */ + onError(ticks: number, exception: any): Recorded; + /** + * Factory method for an OnError notification record at a given time with a given error. + * + * 1 - ReactiveTest.onNext(200, new Error('error')); + * 2 - ReactiveTest.onNext(200, function (e) { return e.message === 'error'; }); + * + * @param ticks Recorded virtual time the OnError notification occurs. + * @param exception Recorded exception stored in the OnError notification. + * @return Recorded OnError notification. + */ + onError(ticks: number, predicate: (exception: any) => boolean): Recorded; + /** + * Factory method for an OnCompleted notification record at a given time. + * + * @param ticks Recorded virtual time the OnCompleted notification occurs. + * @return Recorded OnCompleted notification. + */ + onCompleted(ticks: number): Recorded; + + /** + * Factory method for a subscription record based on a given subscription and disposal time. + * + * @param start Virtual time indicating when the subscription was created. + * @param end Virtual time indicating when the subscription was disposed. + * @return Subscription object. + */ + subscribe(subscribeAt: number, unsubscribeAt?: number): Subscription; + } + + export interface MockObserver extends Observer { + messages: Recorded[]; + } + + interface MockObserverStatic extends ObserverStatic { + new (scheduler: IScheduler): MockObserver; + } + + export var MockObserver: MockObserverStatic; + + + export interface TestScheduler extends VirtualTimeScheduler { + /** + * Creates a cold observable using the specified timestamped notification messages either as an array or arguments. + * @param messages Notifications to surface through the created sequence at their specified virtual time offsets from the sequence subscription time. + * @return Cold observable sequence that can be used to assert the timing of subscriptions and notifications. + */ + createColdObservable(...records: Recorded[]): Observable; + /** + * Creates a hot observable using the specified timestamped notification messages either as an array or arguments. + * @param messages Notifications to surface through the created sequence at their specified absolute virtual times. + * @return Hot observable sequence that can be used to assert the timing of subscriptions and notifications. + */ + createHotObservable(...records: Recorded[]): Observable; + /** + * Creates an observer that records received notification messages and timestamps those. + * @return Observer that can be used to assert the timing of received notifications. + */ + createObserver(): MockObserver; + + /** + * Creates a resolved promise with the given value and ticks + * @param {Number} ticks The absolute time of the resolution. + * @param {Any} value The value to yield at the given tick. + * @returns {MockPromise} A mock Promise which fulfills with the given value. + */ + createResolvedPromise(ticks: number, value: T): IPromise; + /** + * Creates a rejected promise with the given reason and ticks + * @param {Number} ticks The absolute time of the resolution. + * @param {Any} reason The reason for rejection to yield at the given tick. + * @returns {MockPromise} A mock Promise which rejects with the given reason. + */ + createRejectedPromise(ticks: number, value: T): IPromise; + + /** + * Starts the test scheduler and uses the specified virtual times to invoke the factory function, subscribe to the resulting sequence, and dispose the subscription. + * + * @param create Factory method to create an observable sequence. + * @param created Virtual time at which to invoke the factory to create an observable sequence. + * @param subscribed Virtual time at which to subscribe to the created observable sequence. + * @param disposed Virtual time at which to dispose the subscription. + * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. + */ + startWithTiming(create: () => Observable, createdAt: number, subscribedAt: number, disposedAt: number): MockObserver; + /** + * Starts the test scheduler and uses the specified virtual time to dispose the subscription to the sequence obtained through the factory function. + * Default virtual times are used for factory invocation and sequence subscription. + * + * @param create Factory method to create an observable sequence. + * @param disposed Virtual time at which to dispose the subscription. + * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. + */ + startWithDispose(create: () => Observable, disposedAt: number): MockObserver; + /** + * Starts the test scheduler and uses default virtual times to invoke the factory function, to subscribe to the resulting sequence, and to dispose the subscription. + * + * @param create Factory method to create an observable sequence. + * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. + */ + startWithCreate(create: () => Observable): MockObserver; + } + + export var TestScheduler: { + new (): TestScheduler; + } + +} +declare module "rx.core.testing" { export = Rx; } diff --git a/node_modules/rx/ts/rx.d.ts b/node_modules/rx/ts/rx.d.ts new file mode 100644 index 0000000..211a00a --- /dev/null +++ b/node_modules/rx/ts/rx.d.ts @@ -0,0 +1,2507 @@ +declare module Rx { + + // Type alias for observables and promises + export type ObservableOrPromise = IObservable | Observable | Promise; + + export type ArrayLike = Array | { length: number;[index: number]: T; }; + + // Type alias for arrays and array like objects + export type ArrayOrIterable = ArrayLike; + + /** + * Promise A+ + */ + export interface Promise { + then(onFulfilled: (value: T) => R|Promise, onRejected: (error: any) => Promise): Promise; + then(onFulfilled: (value: T) => R|Promise, onRejected?: (error: any) => R): Promise; + } + + /** + * Promise A+ + */ + export interface IPromise extends Promise { } + + /** + * Represents a push-style collection. + */ + export interface IObservable { } + + /** + * Represents a push-style collection. + */ + export interface Observable extends IObservable { } + + export module internals { + export interface EmptyError extends Error { message: string; } + export interface EmptyErrorStatic { new (): EmptyError; } + + export interface ObjectDisposedError extends Error { message: string; } + export interface ObjectDisposedErrorStatic { new (): ObjectDisposedError; } + + export interface ArgumentOutOfRangeError extends Error { message: string; } + export interface ArgumentOutOfRangeErrorStatic { new (): ArgumentOutOfRangeError; } + + export interface NotSupportedError extends Error { message: string; } + export interface NotSupportedErrorStatic { new (): NotSupportedError; } + + export interface NotImplementedError extends Error { message: string; } + export interface NotImplementedErrorStatic { new (): NotImplementedError; } + } + + export module helpers { + export var notImplemented: () => internals.NotImplementedError; + export var notSupported: () => internals.NotSupportedError; + } + + export module internals { + export var bindCallback: (func: Function, thisArg: any, argCount: number) => Function; + } + + export module internals { + export var isEqual : (left: any, right: any) => boolean; + } + + export interface IDisposable { + dispose(): void; + } + + export interface Disposable extends IDisposable { + /** Is this value disposed. */ + isDisposed?: boolean; + } + + interface DisposableStatic { + /** + * Provides a set of static methods for creating Disposables. + * @param {Function} dispose Action to run during the first call to dispose. The action is guaranteed to be run at most once. + */ + new (action: () => void): Disposable; + + /** + * Creates a disposable object that invokes the specified action when disposed. + * @param {Function} dispose Action to run during the first call to dispose. The action is guaranteed to be run at most once. + * @return {Disposable} The disposable object that runs the given action upon disposal. + */ + create(action: () => void): Disposable; + + /** + * Gets the disposable that does nothing when disposed. + */ + empty: IDisposable; + + /** + * Validates whether the given object is a disposable + * @param {Object} Object to test whether it has a dispose method + * @returns {Boolean} true if a disposable object, else false. + */ + isDisposable(d: any): boolean; + } + + /** + * Provides a set of static methods for creating Disposables. + * @param {Function} dispose Action to run during the first call to dispose. The action is guaranteed to be run at most once. + */ + export var Disposable: DisposableStatic; + + export module config { + export var Promise: { new (resolver: (resolvePromise: (value: T) => void, rejectPromise: (reason: any) => void) => void): IPromise; }; + } + + export module helpers { + export var noop: () => void; + export var notDefined: (value: any) => boolean; + export var identity: (value: T) => T; + export var defaultNow: () => number; + export var defaultComparer: (left: any, right: any) => boolean; + export var defaultSubComparer: (left: any, right: any) => number; + export var defaultKeySerializer: (key: any) => string; + export var defaultError: (err: any) => void; + export var isPromise: (p: any) => boolean; + export var asArray: (...args: T[]) => T[]; + export var not: (value: any) => boolean; + export var isFunction: (value: any) => boolean; + } + + export type _Selector = (value: T, index: number, observable: Observable) => TResult; + export type _ValueOrSelector = TResult | _Selector; + export type _Predicate = _Selector; + export type _Comparer = (value1: T, value2: T) => TResult; + export type _Accumulator = (acc: TAcc, value: T) => TAcc; + + export module special { + export type _FlatMapResultSelector = (value: T1, selectorValue: T2, index: number, selectorOther: number) => TResult; + } + + export interface IObservable { + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(observer: IObserver): IDisposable; + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): IDisposable; + } + + export interface Observable { + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(observer: IObserver): IDisposable; + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): IDisposable; + + /** + * Subscribes to the next value in the sequence with an optional "this" argument. + * @param {Function} onNext The function to invoke on each element in the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Disposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribeOnNext(onNext: (value: T) => void, thisArg?: any): IDisposable; + /** + * Subscribes to an exceptional condition in the sequence with an optional "this" argument. + * @param {Function} onError The function to invoke upon exceptional termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Disposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribeOnError(onError: (exception: any) => void, thisArg?: any): IDisposable; + /** + * Subscribes to the next value in the sequence with an optional "this" argument. + * @param {Function} onCompleted The function to invoke upon graceful termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Disposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribeOnCompleted(onCompleted: () => void, thisArg?: any): IDisposable; + + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + forEach(observer: IObserver): IDisposable; + + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + forEach(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): IDisposable; + } + + export interface ObservableStatic { + /** + * Determines whether the given object is an Observable + * @param {Any} An object to determine whether it is an Observable + * @returns {Boolean} true if an Observable, else false. + */ + isObservable(o: any): boolean; + } + + export var Observable: ObservableStatic; + + export module internals { + export var inherits: (child: any, parent: any) => void; + export var addProperties: (obj: any, ...sources: any[]) => void; + export var addRef: (xs: Observable, r: { getDisposable(): IDisposable; }) => Observable; + } + + /** + * Represents a group of disposable resources that are disposed together. + * @constructor + */ + export interface CompositeDisposable extends Disposable { + /** + * Adds a disposable to the CompositeDisposable or disposes the disposable if the CompositeDisposable is disposed. + * @param {Mixed} item Disposable to add. + */ + add(item: IDisposable): void; + + /** + * Removes and disposes the first occurrence of a disposable from the CompositeDisposable. + * @param {Mixed} item Disposable to remove. + * @returns {Boolean} true if found; false otherwise. + */ + remove(item: IDisposable): void; + } + + interface CompositeDisposableStatic { + /** + * Represents a group of disposable resources that are disposed together. + * @constructor + */ + new (...disposables: Rx.IDisposable[]): CompositeDisposable; + /** + * Represents a group of disposable resources that are disposed together. + * @constructor + */ + new(disposables: Rx.IDisposable[]): CompositeDisposable; + } + + export var CompositeDisposable: CompositeDisposableStatic; + + export interface SingleAssignmentDisposable { + /** Performs the task of cleaning up resources. */ + dispose(): void; + + /** Is this value disposed. */ + isDisposed: boolean; + + getDisposable(): IDisposable; + + setDisposable(value: IDisposable): void; + } + + interface SingleAssignmentDisposableStatic { + new() : SingleAssignmentDisposable; + } + + export var SingleAssignmentDisposable : SingleAssignmentDisposableStatic; + + export interface SerialDisposable { + /** Performs the task of cleaning up resources. */ + dispose(): void; + + /** Is this value disposed. */ + isDisposed: boolean; + + getDisposable(): IDisposable; + + setDisposable(value: IDisposable): void; + } + + interface SerialDisposableStatic { + new() : SerialDisposable; + } + + export var SerialDisposable : SerialDisposableStatic; + + /** + * Represents a disposable resource that only disposes its underlying disposable resource when all dependent disposable objects have been disposed. + */ + export interface RefCountDisposable extends Disposable { + + /** Performs the task of cleaning up resources. */ + dispose(): void; + + /** Is this value disposed. */ + isDisposed: boolean; + + /** + * Returns a dependent disposable that when disposed decreases the refcount on the underlying disposable. + * @returns {Disposable} A dependent disposable contributing to the reference count that manages the underlying disposable's lifetime. + */ + getDisposable(): IDisposable; + } + + interface RefCountDisposableStatic { + /** + * Initializes a new instance of the RefCountDisposable with the specified disposable. + * @constructor + * @param {Disposable} disposable Underlying disposable. + */ + new(disposable: IDisposable): RefCountDisposable; + } + + export var RefCountDisposable : RefCountDisposableStatic; + + export interface IScheduler { + /** Gets the current time according to the local machine's system clock. */ + now(): number; + + /** + * Schedules an action to be executed. + * @param state State passed to the action to be executed. + * @param {Function} action Action to be executed. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + schedule(state: TState, action: (scheduler: IScheduler, state: TState) => IDisposable): IDisposable; + + /** + * Schedules an action to be executed after dueTime. + * @param state State passed to the action to be executed. + * @param {Function} action Action to be executed. + * @param {Number} dueTime Relative time after which to execute the action. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + scheduleFuture(state: TState, dueTime: number | Date, action: (scheduler: IScheduler, state: TState) => IDisposable): IDisposable; + } + + export interface SchedulerStatic { + /** Gets the current time according to the local machine's system clock. */ + now(): number; + + /** + * Normalizes the specified TimeSpan value to a positive value. + * @param {Number} timeSpan The time span value to normalize. + * @returns {Number} The specified TimeSpan value if it is zero or positive; otherwise, 0 + */ + normalize(timeSpan: number): number; + + /** Determines whether the given object is a scheduler */ + isScheduler(s: any): boolean; + } + + /** Provides a set of static properties to access commonly used schedulers. */ + export var Scheduler: SchedulerStatic; + + export module internals { + export interface ScheduledItem { + scheduler: IScheduler; + state: TTime; + action: (scheduler: IScheduler, state: any) => IDisposable; + dueTime: TTime; + comparer: (x: TTime, y: TTime) => number; + disposable: SingleAssignmentDisposable; + + invoke(): void; + compareTo(other: ScheduledItem): number; + isCancelled(): boolean; + invokeCore(): IDisposable; + } + + interface ScheduledItemStatic { + new (scheduler: IScheduler, state: any, action: (scheduler: IScheduler, state: any) => IDisposable, dueTime: TTime, comparer?: _Comparer):ScheduledItem; + } + + export var ScheduledItem: ScheduledItemStatic + } + + export interface IScheduler { + /** + * Schedules an action to be executed recursively. + * @param {Mixed} state State passed to the action to be executed. + * @param {Function} action Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in recursive invocation state. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + scheduleRecursive(state: TState, action: (state: TState, action: (state: TState) => void) => void): IDisposable; + + /** + * Schedules an action to be executed recursively after a specified relative due time. + * @param {Mixed} state State passed to the action to be executed. + * @param {Function} action Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in the recursive due time and invocation state. + * @param {Number}dueTime Relative time after which to execute the action for the first time. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + scheduleRecursiveFuture(state: TState, dueTime: TTime, action: (state: TState, action: (state: TState, dueTime: TTime) => void) => void): IDisposable; + } + + export interface IScheduler { + /** + * Schedules a periodic piece of work by dynamically discovering the scheduler's capabilities. The periodic task will be scheduled using window.setInterval for the base implementation. + * @param {Mixed} state Initial state passed to the action upon the first iteration. + * @param {Number} period Period for running the work periodically. + * @param {Function} action Action to be executed, potentially updating the state. + * @returns {Disposable} The disposable object used to cancel the scheduled recurring action (best effort). + */ + schedulePeriodic(state: TState, period: number, action: (state: TState) => TState): IDisposable; + } + + export interface IScheduler { + /** + * Returns a scheduler that wraps the original scheduler, adding exception handling for scheduled actions. + * @param {Function} handler Handler that's run if an exception is caught. The exception will be rethrown if the handler returns false. + * @returns {Scheduler} Wrapper around the original scheduler, enforcing exception handling. + */ + catch(handler: Function): IScheduler; + } + + export module internals { + export interface SchedulePeriodicRecursive { + start(): IDisposable; + } + + interface SchedulePeriodicRecursiveStatic { + new (scheduler: any, state: any, period: any, action: any) : SchedulePeriodicRecursive; + } + + export var SchedulePeriodicRecursive: SchedulePeriodicRecursiveStatic; + } + + export interface SchedulerStatic { + immediate: IScheduler; + } + + export interface ICurrentThreadScheduler extends IScheduler { + scheduleRequired(): boolean; + } + + export interface SchedulerStatic { + currentThread: ICurrentThreadScheduler; + } + + export interface SchedulerStatic { + default: IScheduler; + async: IScheduler; + } + + export module internals { + // Priority Queue for Scheduling + export interface PriorityQueue { + length: number; + + isHigherPriority(left: number, right: number): boolean; + percolate(index: number): void; + heapify(index: number): void; + peek(): ScheduledItem; + removeAt(index: number): void; + dequeue(): ScheduledItem; + enqueue(item: ScheduledItem): void; + remove(item: ScheduledItem): boolean; + } + + interface PriorityQueueStatic { + new (capacity: number) : PriorityQueue; + count: number; + } + + export var PriorityQueue : PriorityQueueStatic; + } + + /** + * Supports push-style iteration over an observable sequence. + */ + export interface IObserver { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + } + + export interface Observer { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + } + + export interface ObserverStatic { + /** + * Creates an observer from the specified OnNext, along with optional OnError, and OnCompleted actions. + * @param {Function} [onNext] Observer's OnNext action implementation. + * @param {Function} [onError] Observer's OnError action implementation. + * @param {Function} [onCompleted] Observer's OnCompleted action implementation. + * @returns {Observer} The observer object implemented using the given actions. + */ + create(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): Observer; + } + + /** + * Supports push-style iteration over an observable sequence. + */ + export var Observer: ObserverStatic; + + /** + * Represents a notification to an observer. + */ + export interface Notification { + /** + * Invokes the delegate corresponding to the notification or the observer's method corresponding to the notification and returns the produced result. + * + * @memberOf Notification + * @param {Any} observerOrOnNext Delegate to invoke for an OnNext notification or Observer to invoke the notification on.. + * @param {Function} onError Delegate to invoke for an OnError notification. + * @param {Function} onCompleted Delegate to invoke for an OnCompleted notification. + * @returns {Any} Result produced by the observation. + */ + accept(observer: IObserver): void; + /** + * Invokes the delegate corresponding to the notification or the observer's method corresponding to the notification and returns the produced result. + * + * @memberOf Notification + * @param {Any} observerOrOnNext Delegate to invoke for an OnNext notification or Observer to invoke the notification on.. + * @param {Function} onError Delegate to invoke for an OnError notification. + * @param {Function} onCompleted Delegate to invoke for an OnCompleted notification. + * @returns {Any} Result produced by the observation. + */ + accept(onNext: (value: T) => TResult, onError: (exception: any) => TResult, onCompleted: () => TResult): TResult; + + /** + * Returns an observable sequence with a single notification. + * + * @memberOf Notifications + * @param {Scheduler} [scheduler] Scheduler to send out the notification calls on. + * @returns {Observable} The observable sequence that surfaces the behavior of the notification upon subscription. + */ + toObservable(scheduler?: IScheduler): Observable; + + hasValue: boolean; + equals(other: Notification): boolean; + kind: string; + value: T; + error: any; + } + + interface NotificationStatic { + new (kind: any, value: any, exception: any, accept: any, acceptObservable: any, toString: any) : Notification; + + /** + * Creates an object that represents an OnNext notification to an observer. + * @param {Any} value The value contained in the notification. + * @returns {Notification} The OnNext notification containing the value. + */ + createOnNext(value: T): Notification; + /** + * Creates an object that represents an OnError notification to an observer. + * @param {Any} error The exception contained in the notification. + * @returns {Notification} The OnError notification containing the exception. + */ + createOnError(exception: any): Notification; + /** + * Creates an object that represents an OnCompleted notification to an observer. + * @returns {Notification} The OnCompleted notification. + */ + createOnCompleted(): Notification; + } + + export var Notification : NotificationStatic; + + export interface Observer { + makeSafe(disposable: IDisposable): Observer; + } + + export module internals { + /** + * Abstract base class for implementations of the Observer class. + * This base class enforces the grammar of observers where OnError and OnCompleted are terminal messages. + */ + export interface AbstractObserver extends Rx.IObserver, Rx.IDisposable { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + + isStopped: boolean; + + /** + * Disposes the observer, causing it to transition to the stopped state. + */ + dispose(): void; + + fail(e: any): boolean; + + // Must be implemented by other observers + next(value: T): void; + error(error: any): void; + completed(): void; + } + + interface AbstractObserverStatic { + new (): AbstractObserver; + } + + export var AbstractObserver: AbstractObserverStatic + } + + /** + * Class to create an Observer instance from delegate-based implementations of the on* methods. + */ + export interface AnonymousObserver extends Observer { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + } + + interface AnonymousObserverStatic { + /** + * Creates an observer from the specified OnNext, OnError, and OnCompleted actions. + * @param {Any} onNext Observer's OnNext action implementation. + * @param {Any} onError Observer's OnError action implementation. + * @param {Any} onCompleted Observer's OnCompleted action implementation. + */ + new (onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): AnonymousObserver; + } + + export var AnonymousObserver : AnonymousObserverStatic; + + export interface CheckedObserver extends Observer { + checkAccess(): void; + } + + export module internals { + export interface ScheduledObserver extends Observer { + ensureActive(): void; + } + } + + export interface Observable { + /** + * Wraps the source sequence in order to run its observer callbacks on the specified scheduler. + * + * This only invokes observer callbacks on a scheduler. In case the subscription and/or unsubscription actions have side-effects + * that require to be run on a scheduler, use subscribeOn. + * + * @param {Scheduler} scheduler Scheduler to notify observers on. + * @returns {Observable} The source sequence whose observations happen on the specified scheduler. + */ + observeOn(scheduler: IScheduler): Observable; + } + + export interface Observable { + /** + * Wraps the source sequence in order to run its subscription and unsubscription logic on the specified scheduler. This operation is not commonly used; + * see the remarks section for more information on the distinction between subscribeOn and observeOn. + + * This only performs the side-effects of subscription and unsubscription on the specified scheduler. In order to invoke observer + * callbacks on a scheduler, use observeOn. + + * @param {Scheduler} scheduler Scheduler to perform subscription and unsubscription actions on. + * @returns {Observable} The source sequence whose subscriptions and unsubscriptions happen on the specified scheduler. + */ + subscribeOn(scheduler: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Converts a Promise to an Observable sequence + * @param {Promise} An ES6 Compliant promise. + * @returns {Observable} An Observable sequence which wraps the existing promise success and failure. + */ + fromPromise(promise: Promise): Observable; + } + + export interface Observable { + /* + * Converts an existing observable sequence to an ES6 Compatible Promise + * @example + * var promise = Rx.Observable.return(42).toPromise(RSVP.Promise); + * + * // With config + * Rx.config.Promise = RSVP.Promise; + * var promise = Rx.Observable.return(42).toPromise(); + * @param {Function} [promiseCtor] The constructor of the promise. If not provided, it looks for it in Rx.config.Promise. + * @returns {Promise} An ES6 compatible promise with the last value from the observable sequence. + */ + toPromise(promiseCtor?: { new (resolver: (resolvePromise: (value: T) => void, rejectPromise: (reason: any) => void) => void): IPromise; }): IPromise; + /* + * Converts an existing observable sequence to an ES6 Compatible Promise + * @example + * var promise = Rx.Observable.return(42).toPromise(RSVP.Promise); + * + * // With config + * Rx.config.Promise = RSVP.Promise; + * var promise = Rx.Observable.return(42).toPromise(); + * @param {Function} [promiseCtor] The constructor of the promise. If not provided, it looks for it in Rx.config.Promise. + * @returns {Promise} An ES6 compatible promise with the last value from the observable sequence. + */ + toPromise>(promiseCtor: { new (resolver: (resolvePromise: (value: T) => void, rejectPromise: (reason: any) => void) => void): TPromise; }): TPromise; + } + + export interface Observable { + /** + * Creates an array from an observable sequence. + * @returns {Observable} An observable sequence containing a single element with a list containing all the elements of the source sequence. + */ + toArray(): Observable; + } + + export interface ObservableStatic { + /** + * Creates an observable sequence from a specified subscribe method implementation. + * @example + * var res = Rx.Observable.create(function (observer) { return function () { } ); + * var res = Rx.Observable.create(function (observer) { return Rx.Disposable.empty; } ); + * var res = Rx.Observable.create(function (observer) { } ); + * @param {Function} subscribe Implementation of the resulting observable sequence's subscribe method, returning a function that will be wrapped in a Disposable. + * @returns {Observable} The observable sequence with the specified implementation for the Subscribe method. + */ + create(subscribe: (observer: Observer) => IDisposable | Function | void): Observable; + } + + export interface ObservableStatic { + /** + * Returns an observable sequence that invokes the specified factory function whenever a new observer subscribes. + * + * @example + * var res = Rx.Observable.defer(function () { return Rx.Observable.fromArray([1,2,3]); }); + * @param {Function} observableFactory Observable factory function to invoke for each observer that subscribes to the resulting sequence or Promise. + * @returns {Observable} An observable sequence whose observers trigger an invocation of the given observable factory function. + */ + defer(observableFactory: () => ObservableOrPromise): Observable; + } + + export interface ObservableStatic { + /** + * Returns an empty observable sequence, using the specified scheduler to send out the single OnCompleted message. + * + * @example + * var res = Rx.Observable.empty(); + * var res = Rx.Observable.empty(Rx.Scheduler.timeout); + * @param {Scheduler} [scheduler] Scheduler to send the termination call on. + * @returns {Observable} An observable sequence with no elements. + */ + empty(scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * This method creates a new Observable sequence from an array-like or iterable object. + * @param {Any} arrayLike An array-like or iterable object to convert to an Observable sequence. + * @param {Function} [mapFn] Map function to call on every element of the array. + * @param {Any} [thisArg] The context to use calling the mapFn if provided. + * @param {Scheduler} [scheduler] Optional scheduler to use for scheduling. If not provided, defaults to Scheduler.currentThread. + */ + from(array: ArrayOrIterable): Observable; + /** + * This method creates a new Observable sequence from an array-like or iterable object. + * @param {Any} arrayLike An array-like or iterable object to convert to an Observable sequence. + * @param {Function} [mapFn] Map function to call on every element of the array. + * @param {Any} [thisArg] The context to use calling the mapFn if provided. + * @param {Scheduler} [scheduler] Optional scheduler to use for scheduling. If not provided, defaults to Scheduler.currentThread. + */ + from(array: ArrayOrIterable, mapFn: (value: T, index: number) => TResult, thisArg?: any, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Converts an array to an observable sequence, using an optional scheduler to enumerate the array. + * @deprecated use Observable.from or Observable.of + * @param {Scheduler} [scheduler] Scheduler to run the enumeration of the input sequence on. + * @returns {Observable} The observable sequence whose elements are pulled from the given enumerable sequence. + */ + fromArray(array: ArrayLike, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Generates an observable sequence by running a state-driven loop producing the sequence's elements, using the specified scheduler to send out observer messages. + * + * @example + * var res = Rx.Observable.generate(0, function (x) { return x < 10; }, function (x) { return x + 1; }, function (x) { return x; }); + * var res = Rx.Observable.generate(0, function (x) { return x < 10; }, function (x) { return x + 1; }, function (x) { return x; }, Rx.Scheduler.timeout); + * @param {Mixed} initialState Initial state. + * @param {Function} condition Condition to terminate generation (upon returning false). + * @param {Function} iterate Iteration step function. + * @param {Function} resultSelector Selector function for results produced in the sequence. + * @param {Scheduler} [scheduler] Scheduler on which to run the generator loop. If not provided, defaults to Scheduler.currentThread. + * @returns {Observable} The generated sequence. + */ + generate(initialState: TState, condition: (state: TState) => boolean, iterate: (state: TState) => TState, resultSelector: (state: TState) => TResult, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins). + * @returns {Observable} An observable sequence whose observers will never get called. + */ + never(): Observable; + } + + export interface ObservableStatic { + /** + * This method creates a new Observable instance with a variable number of arguments, regardless of number or type of the arguments. + * @returns {Observable} The observable sequence whose elements are pulled from the given arguments. + */ + of(...values: T[]): Observable; + + /** + * This method creates a new Observable instance with a variable number of arguments, regardless of number or type of the arguments. + * @param {Scheduler} scheduler A scheduler to use for scheduling the arguments. + * @returns {Observable} The observable sequence whose elements are pulled from the given arguments. + */ + ofWithScheduler(scheduler?: IScheduler, ...values: T[]): Observable; + } + + export interface ObservableStatic { + /** + * Convert an object into an observable sequence of [key, value] pairs. + * @param {Object} obj The object to inspect. + * @param {Scheduler} [scheduler] Scheduler to run the enumeration of the input sequence on. + * @returns {Observable} An observable sequence of [key, value] pairs from the object. + */ + pairs(obj: { [key: string]: T }, scheduler?: IScheduler): Observable<[string, T]>; + /** + * Convert an object into an observable sequence of [key, value] pairs. + * @param {Object} obj The object to inspect. + * @param {Scheduler} [scheduler] Scheduler to run the enumeration of the input sequence on. + * @returns {Observable} An observable sequence of [key, value] pairs from the object. + */ + pairs(obj: { [key: number]: T }, scheduler?: IScheduler): Observable<[number, T]>; + } + + export interface ObservableStatic { + /** + * Generates an observable sequence of integral numbers within a specified range, using the specified scheduler to send out observer messages. + * + * @example + * var res = Rx.Observable.range(0, 10); + * var res = Rx.Observable.range(0, 10, Rx.Scheduler.timeout); + * @param {Number} start The value of the first integer in the sequence. + * @param {Number} count The number of sequential integers to generate. + * @param {Scheduler} [scheduler] Scheduler to run the generator loop on. If not specified, defaults to Scheduler.currentThread. + * @returns {Observable} An observable sequence that contains a range of sequential integral numbers. + */ + range(start: number, count: number, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Generates an observable sequence that repeats the given element the specified number of times, using the specified scheduler to send out observer messages. + * + * @example + * var res = Rx.Observable.repeat(42); + * var res = Rx.Observable.repeat(42, 4); + * 3 - res = Rx.Observable.repeat(42, 4, Rx.Scheduler.timeout); + * 4 - res = Rx.Observable.repeat(42, null, Rx.Scheduler.timeout); + * @param {Mixed} value Element to repeat. + * @param {Number} repeatCount [Optiona] Number of times to repeat the element. If not specified, repeats indefinitely. + * @param {Scheduler} scheduler Scheduler to run the producer loop on. If not specified, defaults to Scheduler.immediate. + * @returns {Observable} An observable sequence that repeats the given element the specified number of times. + */ + repeat(value: T, repeatCount?: number | void, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages. + * There is an alias called 'just' or browsers (value: T, scheduler?: IScheduler): Observable; + /** + * Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages. + * There is an alias called 'just' or browsers (value: T, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single onError message. + * @param {Mixed} error An object used for the sequence's termination. + * @param {Scheduler} scheduler Scheduler to send the exceptional termination call on. If not specified, defaults to Scheduler.immediate. + * @returns {Observable} The observable sequence that terminates exceptionally with the specified exception object. + */ + throw(exception: Error, scheduler?: IScheduler): Observable; + /** + * Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single onError message. + * @param {Mixed} error An object used for the sequence's termination. + * @param {Scheduler} scheduler Scheduler to send the exceptional termination call on. If not specified, defaults to Scheduler.immediate. + * @returns {Observable} The observable sequence that terminates exceptionally with the specified exception object. + */ + throw(exception: any, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime. + * @param {Function} resourceFactory Factory function to obtain a resource object. + * @param {Function} observableFactory Factory function to obtain an observable sequence that depends on the obtained resource. + * @returns {Observable} An observable sequence whose lifetime controls the lifetime of the dependent resource object. + */ + using(resourceFactory: () => TResource, observableFactory: (resource: TResource) => Observable): Observable; + } + + export interface Observable { + /** + * Propagates the observable sequence or Promise that reacts first. + * @param {Observable} rightSource Second observable sequence or Promise. + * @returns {Observable} {Observable} An observable sequence that surfaces either of the given sequences, whichever reacted first. + */ + amb(observable: ObservableOrPromise): Observable; + } + + export interface ObservableStatic { + /** + * Propagates the observable sequence or Promise that reacts first. + * @returns {Observable} An observable sequence that surfaces any of the given sequences, whichever reacted first. + */ + amb(observables: ObservableOrPromise[]): Observable; + /** + * Propagates the observable sequence or Promise that reacts first. + * @returns {Observable} An observable sequence that surfaces any of the given sequences, whichever reacted first. + */ + amb(...observables: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Continues an observable sequence that is terminated by an exception with the next observable sequence. + * @param {Mixed} handlerOrSecond Exception handler function that returns an observable sequence given the error that occurred in the first sequence, or a second observable sequence used to produce results when an error occurred in the first sequence. + * @returns {Observable} An observable sequence containing the first sequence's elements, followed by the elements of the handler sequence in case an exception occurred. + */ + catch(handler: (exception: any) => ObservableOrPromise): Observable; + /** + * Continues an observable sequence that is terminated by an exception with the next observable sequence. + * @param {Mixed} handlerOrSecond Exception handler function that returns an observable sequence given the error that occurred in the first sequence, or a second observable sequence used to produce results when an error occurred in the first sequence. + * @returns {Observable} An observable sequence containing the first sequence's elements, followed by the elements of the handler sequence in case an exception occurred. + */ + catch(second: ObservableOrPromise): Observable; + } + + export interface ObservableStatic { + /** + * Continues an observable sequence that is terminated by an exception with the next observable sequence. + * @param {Array | Arguments} args Arguments or an array to use as the next sequence if an error occurs. + * @returns {Observable} An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + */ + catch(sources: ObservableOrPromise[]): Observable; + /** + * Continues an observable sequence that is terminated by an exception with the next observable sequence. + * @param {Array | Arguments} args Arguments or an array to use as the next sequence if an error occurs. + * @returns {Observable} An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + */ + catch(...sources: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, resultSelector: (v1: T, v2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, ninth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8, v9: T9) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(souces: ObservableOrPromise[], resultSelector: (firstValue: T, ...otherValues: TOther[]) => TResult): Observable; + } + + export interface ObservableStatic { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, resultSelector: (v1: T, v2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, eventh: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, ninth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8, v9: T9) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(souces: ObservableOrPromise[], resultSelector: (...otherValues: TOther[]) => TResult): Observable; + } + + export interface Observable { + /** + * Concatenates all the observable sequences. This takes in either an array or variable arguments to concatenate. + * @returns {Observable} An observable sequence that contains the elements of each given sequence, in sequential order. + */ + concat(...sources: ObservableOrPromise[]): Observable; + } + + export interface ObservableStatic { + /** + * Concatenates all the observable sequences. + * @param {Array | Arguments} args Arguments or an array to concat to the observable sequence. + * @returns {Observable} An observable sequence that contains the elements of each given sequence, in sequential order. + */ + concat(...sources: ObservableOrPromise[]): Observable; + /** + * Concatenates all the observable sequences. + * @param {Array | Arguments} args Arguments or an array to concat to the observable sequence. + * @returns {Observable} An observable sequence that contains the elements of each given sequence, in sequential order. + */ + concat(sources: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Concatenates an observable sequence of observable sequences. + * @returns {Observable} An observable sequence that contains the elements of each observed inner sequence, in sequential order. + */ + concatAll(): T; + } + + export interface Observable { + /** + * Merges an observable sequence of observable sequences into an observable sequence, limiting the number of concurrent subscriptions to inner sequences. + * Or merges two observable sequences into a single observable sequence. + * + * @example + * 1 - merged = sources.merge(1); + * 2 - merged = source.merge(otherSource); + * @param {Mixed} [maxConcurrentOrOther] Maximum number of inner observable sequences being subscribed to concurrently or the second observable sequence. + * @returns {Observable} The observable sequence that merges the elements of the inner sequences. + */ + merge(maxConcurrent: number): T; + /** + * Merges an observable sequence of observable sequences into an observable sequence, limiting the number of concurrent subscriptions to inner sequences. + * Or merges two observable sequences into a single observable sequence. + * + * @example + * 1 - merged = sources.merge(1); + * 2 - merged = source.merge(otherSource); + * @param {Mixed} [maxConcurrentOrOther] Maximum number of inner observable sequences being subscribed to concurrently or the second observable sequence. + * @returns {Observable} The observable sequence that merges the elements of the inner sequences. + */ + merge(other: ObservableOrPromise): Observable; + } + + export interface ObservableStatic { + /** + * Merges all the observable sequences into a single observable sequence. + * The scheduler is optional and if not specified, the immediate scheduler is used. + * @returns {Observable} The observable sequence that merges the elements of the observable sequences. + */ + merge(...sources: ObservableOrPromise[]): Observable; + /** + * Merges all the observable sequences into a single observable sequence. + * The scheduler is optional and if not specified, the immediate scheduler is used. + * @returns {Observable} The observable sequence that merges the elements of the observable sequences. + */ + merge(sources: ObservableOrPromise[]): Observable; + /** + * Merges all the observable sequences into a single observable sequence. + * The scheduler is optional and if not specified, the immediate scheduler is used. + * @returns {Observable} The observable sequence that merges the elements of the observable sequences. + */ + merge(scheduler: IScheduler, ...sources: ObservableOrPromise[]): Observable; + /** + * Merges all the observable sequences into a single observable sequence. + * The scheduler is optional and if not specified, the immediate scheduler is used. + * @returns {Observable} The observable sequence that merges the elements of the observable sequences. + */ + merge(scheduler: IScheduler, sources: ObservableOrPromise[]): Observable; + } + + export interface ObservableStatic { + /** + * Flattens an Observable that emits Observables into one Observable, in a way that allows an Observer to + * receive all successfully emitted items from all of the source Observables without being interrupted by + * an error notification from one of them. + * + * This behaves like Observable.prototype.mergeAll except that if any of the merged Observables notify of an + * error via the Observer's onError, mergeDelayError will refrain from propagating that + * error notification until all of the merged Observables have finished emitting items. + * @param {Array | Arguments} args Arguments or an array to merge. + * @returns {Observable} an Observable that emits all of the items emitted by the Observables emitted by the Observable + */ + mergeDelayError(...sources: ObservableOrPromise[]): Observable; + /** + * Flattens an Observable that emits Observables into one Observable, in a way that allows an Observer to + * receive all successfully emitted items from all of the source Observables without being interrupted by + * an error notification from one of them. + * + * This behaves like Observable.prototype.mergeAll except that if any of the merged Observables notify of an + * error via the Observer's onError, mergeDelayError will refrain from propagating that + * error notification until all of the merged Observables have finished emitting items. + * @param {Array | Arguments} args Arguments or an array to merge. + * @returns {Observable} an Observable that emits all of the items emitted by the Observables emitted by the Observable + */ + mergeDelayError(sources: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Merges an observable sequence of observable sequences into an observable sequence. + * @returns {Observable} The observable sequence that merges the elements of the inner sequences. + */ + mergeAll(): T; + } + + export interface Observable { + /** + * Continues an observable sequence that is terminated normally or by an exception with the next observable sequence. + * @param {Observable} second Second observable sequence used to produce results after the first sequence terminates. + * @returns {Observable} An observable sequence that concatenates the first and second sequence, even if the first sequence terminates exceptionally. + */ + onErrorResumeNext(second: ObservableOrPromise): Observable; + } + + export interface ObservableStatic { + /** + * Continues an observable sequence that is terminated normally or by an exception with the next observable sequence. + * + * @example + * 1 - res = Rx.Observable.onErrorResumeNext(xs, ys, zs); + * 1 - res = Rx.Observable.onErrorResumeNext([xs, ys, zs]); + * @returns {Observable} An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + */ + onErrorResumeNext(...sources: ObservableOrPromise[]): Observable; + /** + * Continues an observable sequence that is terminated normally or by an exception with the next observable sequence. + * + * @example + * 1 - res = Rx.Observable.onErrorResumeNext(xs, ys, zs); + * 1 - res = Rx.Observable.onErrorResumeNext([xs, ys, zs]); + * @returns {Observable} An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + */ + onErrorResumeNext(sources: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Returns the values from the source observable sequence only after the other observable sequence produces a value. + * @param {Observable | Promise} other The observable sequence or Promise that triggers propagation of elements of the source sequence. + * @returns {Observable} An observable sequence containing the elements of the source sequence starting from the point the other sequence triggered propagation. + */ + skipUntil(other: ObservableOrPromise): Observable; + } + + export interface Observable { + /** + * Transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @returns {Observable} The observable sequence that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + switch(): T; + /** + * Transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @returns {Observable} The observable sequence that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + switchLatest(): T; + } + + export interface Observable { + /** + * Returns the values from the source observable sequence until the other observable sequence produces a value. + * @param {Observable | Promise} other Observable sequence or Promise that terminates propagation of elements of the source sequence. + * @returns {Observable} An observable sequence containing the elements of the source sequence up to the point the other sequence interrupted further propagation. + */ + takeUntil(other: ObservableOrPromise): Observable; + } + + export interface Observable { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, resultSelector: (v1: T, v2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, ninth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8, v9: T9) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(souces: ObservableOrPromise[], resultSelector: (firstValue: T, ...otherValues: TOther[]) => TResult): Observable; + } + + export interface ObservableStatic { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(sources: ObservableOrPromise[], resultSelector?: (item1: T1, ...right: T2[]) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, ObservableOrPromise: Observable, resultSelector?: (item1: T1, item2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: Observable, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, source6: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, source6: ObservableOrPromise, source7: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, source6: ObservableOrPromise, source7: ObservableOrPromise, source8: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7, item8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, source6: ObservableOrPromise, source7: ObservableOrPromise, source8: ObservableOrPromise, source9: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7, item8: T8, item9: T9) => TResult): Observable; + } + + export interface Observable { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, resultSelector?: (v1: T, v2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, ninth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8, v9: T9) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(souces: ObservableOrPromise[], resultSelector?: (firstValue: T, ...otherValues: TOther[]) => TResult): Observable; + } + + export interface ObservableStatic { + /** + * Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + * @param arguments Observable sources. + * @returns {Observable} An observable sequence containing lists of elements at corresponding indexes. + */ + zipIterable(...sources: Observable[]): Observable; + /** + * Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + * @param arguments Observable sources. + * @returns {Observable} An observable sequence containing lists of elements at corresponding indexes. + */ + zipIterable(sources: Observable[]): Observable; + } + + export interface Observable { + /** + * Hides the identity of an observable sequence. + * @returns {Observable} An observable sequence that hides the identity of the source sequence. + */ + asObservable(): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more buffers which are produced based on element count information. + * @param {Number} count Length of each buffer. + * @param {Number} [skip] Number of elements to skip between creation of consecutive buffers. If not provided, defaults to the count. + * @returns {Observable} An observable sequence of buffers. + */ + bufferWithCount(count: number, skip?: number): Observable; + } + + export interface Observable { + /** + * Dematerializes the explicit notification values of an observable sequence as implicit notifications. + * @returns {Observable} An observable sequence exhibiting the behavior corresponding to the source sequence's notification values. + */ + dematerialize(): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that contains only distinct contiguous elements according to the keySelector and the comparer. + * + * var obs = observable.distinctUntilChanged(); + * var obs = observable.distinctUntilChanged(function (x) { return x.id; }); + * var obs = observable.distinctUntilChanged(function (x) { return x.id; }, function (x, y) { return x === y; }); + * + * @param {Function} [keySelector] A function to compute the comparison key for each element. If not provided, it projects the value. + * @param {Function} [comparer] Equality comparer for computed key values. If not provided, defaults to an equality comparer function. + * @returns {Observable} An observable sequence only containing the distinct contiguous elements, based on a computed key value, from the source sequence. + */ + distinctUntilChanged(keySelector?: (value: T) => TValue, comparer?: _Comparer): Observable; + } + + export interface Observable { + /** + * Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function | Observer} observerOrOnNext Action to invoke for each element in the observable sequence or an observer. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + do(observer: Observer): Observable; + /** + * Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function | Observer} observerOrOnNext Action to invoke for each element in the observable sequence or an observer. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tap(observer: Observer): Observable; + + /** + * Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function | Observer} observerOrOnNext Action to invoke for each element in the observable sequence or an observer. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + do(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): Observable; + /** + * Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function | Observer} observerOrOnNext Action to invoke for each element in the observable sequence or an observer. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tap(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): Observable; + + /** + * Invokes an action for each element in the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onNext Action to invoke for each element in the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + doOnNext(onNext: (value: T) => void, thisArg?: any): Observable; + /** + * Invokes an action upon exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onError Action to invoke upon exceptional termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + doOnError(onError: (exception: any) => void, thisArg?: any): Observable; + /** + * Invokes an action upon graceful termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onCompleted Action to invoke upon graceful termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + doOnCompleted(onCompleted: () => void, thisArg?: any): Observable; + + /** + * Invokes an action for each element in the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onNext Action to invoke for each element in the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tapOnNext(onNext: (value: T) => void, thisArg?: any): Observable; + /** + * Invokes an action upon exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onError Action to invoke upon exceptional termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tapOnError(onError: (exception: any) => void, thisArg?: any): Observable; + /** + * Invokes an action upon graceful termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onCompleted Action to invoke upon graceful termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tapOnCompleted(onCompleted: () => void, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Invokes a specified action after the source observable sequence terminates gracefully or exceptionally. + * @param {Function} finallyAction Action to invoke after the source observable sequence terminates. + * @returns {Observable} Source sequence with the action-invoking termination behavior applied. + */ + finally(action: () => void): Observable; + + /** + * Invokes a specified action after the source observable sequence terminates gracefully or exceptionally. + * @param {Function} finallyAction Action to invoke after the source observable sequence terminates. + * @returns {Observable} Source sequence with the action-invoking termination behavior applied. + */ + ensure(action: () => void): Observable; + } + + export interface Observable { + /** + * Ignores all elements in an observable sequence leaving only the termination messages. + * @returns {Observable} An empty observable sequence that signals termination, successful or exceptional, of the source sequence. + */ + ignoreElements(): Observable; + } + + export interface Observable { + /** + * Materializes the implicit notifications of an observable sequence as explicit notification values. + * @returns {Observable} An observable sequence containing the materialized notification values from the source sequence. + */ + materialize(): Observable; + } + + export interface Observable { + /** + * Repeats the observable sequence a specified number of times. If the repeat count is not specified, the sequence repeats indefinitely. + * @param {Number} [repeatCount] Number of times to repeat the sequence. If not provided, repeats the sequence indefinitely. + * @returns {Observable} The observable sequence producing the elements of the given sequence repeatedly. + */ + repeat(repeatCount?: number): Observable; + } + + export interface Observable { + /** + * Repeats the source observable sequence the specified number of times or until it successfully terminates. If the retry count is not specified, it retries indefinitely. + * Note if you encounter an error and want it to retry once, then you must use .retry(2); + * + * @example + * var res = retried = retry.repeat(); + * var res = retried = retry.repeat(2); + * @param {Number} [retryCount] Number of times to retry the sequence. If not provided, retry the sequence indefinitely. + * @returns {Observable} An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + */ + retry(retryCount?: number): Observable; + } + + export interface Observable { + /** + * Repeats the source observable sequence upon error each time the notifier emits or until it successfully terminates. + * if the notifier completes, the observable sequence completes. + * + * @example + * var timer = Observable.timer(500); + * var source = observable.retryWhen(timer); + * @param {Observable} [notifier] An observable that triggers the retries or completes the observable with onNext or onCompleted respectively. + * @returns {Observable} An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + */ + retryWhen(notifier: (errors: Observable) => Observable): Observable; + } + + export interface Observable { + /** + * Applies an accumulator function over an observable sequence and returns each intermediate result. The optional seed value is used as the initial accumulator value. + * For aggregation behavior with no intermediate results, see Observable.aggregate. + * @example + * var res = source.scan(function (acc, x) { return acc + x; }); + * var res = source.scan(function (acc, x) { return acc + x; }, 0); + * @param {Function} accumulator An accumulator function to be invoked on each element. + * @param {Mixed} [seed] The initial accumulator value. + * @returns {Observable} An observable sequence containing the accumulated values. + */ + scan(accumulator: _Accumulator, seed?: TAcc): Observable; + /** + * Applies an accumulator function over an observable sequence and returns each intermediate result. The optional seed value is used as the initial accumulator value. + * For aggregation behavior with no intermediate results, see Observable.aggregate. + * @example + * var res = source.scan(function (acc, x) { return acc + x; }); + * var res = source.scan(function (acc, x) { return acc + x; }, 0); + * @param {Function} accumulator An accumulator function to be invoked on each element. + * @param {Mixed} [seed] The initial accumulator value. + * @returns {Observable} An observable sequence containing the accumulated values. + */ + scan(accumulator: _Accumulator, seed?: T): Observable; + } + + export interface Observable { + /** + * Bypasses a specified number of elements at the end of an observable sequence. + * @description + * This operator accumulates a queue with a length enough to store the first `count` elements. As more elements are + * received, elements are taken from the front of the queue and produced on the result sequence. This causes elements to be delayed. + * @param count Number of elements to bypass at the end of the source sequence. + * @returns {Observable} An observable sequence containing the source sequence elements except for the bypassed ones at the end. + */ + skipLast(count: number): Observable; + } + + export interface Observable { + /** + * Prepends a sequence of values to an observable sequence with an optional scheduler and an argument list of values to prepend. + * @example + * var res = source.startWith(1, 2, 3); + * var res = source.startWith(Rx.Scheduler.timeout, 1, 2, 3); + * @param {Arguments} args The specified values to prepend to the observable sequence + * @returns {Observable} The source sequence prepended with the specified values. + */ + startWith(...values: T[]): Observable; + /** + * Prepends a sequence of values to an observable sequence with an optional scheduler and an argument list of values to prepend. + * @example + * var res = source.startWith(1, 2, 3); + * var res = source.startWith(Rx.Scheduler.timeout, 1, 2, 3); + * @param {Arguments} args The specified values to prepend to the observable sequence + * @returns {Observable} The source sequence prepended with the specified values. + */ + startWith(scheduler: IScheduler, ...values: T[]): Observable; + } + + export interface Observable { + /** + * Returns a specified number of contiguous elements from the end of an observable sequence. + * @description + * This operator accumulates a buffer with a length enough to store elements count elements. Upon completion of + * the source sequence, this buffer is drained on the result sequence. This causes the elements to be delayed. + * @param {Number} count Number of elements to take from the end of the source sequence. + * @returns {Observable} An observable sequence containing the specified number of elements from the end of the source sequence. + */ + takeLast(count: number): Observable; + } + + export interface Observable { + /** + * Returns an array with the specified number of contiguous elements from the end of an observable sequence. + * + * @description + * This operator accumulates a buffer with a length enough to store count elements. Upon completion of the + * source sequence, this buffer is produced on the result sequence. + * @param {Number} count Number of elements to take from the end of the source sequence. + * @returns {Observable} An observable sequence containing a single array with the specified number of elements from the end of the source sequence. + */ + takeLastBuffer(count: number): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more windows which are produced based on element count information. + * + * var res = xs.windowWithCount(10); + * var res = xs.windowWithCount(10, 1); + * @param {Number} count Length of each window. + * @param {Number} [skip] Number of elements to skip between creation of consecutive windows. If not specified, defaults to the count. + * @returns {Observable} An observable sequence of windows. + */ + windowWithCount(count: number, skip?: number): Observable>; + } + + export interface Observable { + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + concatMap(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + concatMap(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + concatMap(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + concatMap(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectConcat(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectConcat(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectConcat(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectConcat(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Projects each notification of an observable sequence to an observable sequence and concats the resulting observable sequences into one observable sequence. + * @param {Function} onNext A transform function to apply to each element; the second parameter of the function represents the index of the source element. + * @param {Function} onError A transform function to apply when an error occurs in the source sequence. + * @param {Function} onCompleted A transform function to apply when the end of the source sequence is reached. + * @param {Any} [thisArg] An optional "this" to use to invoke each transform. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + */ + concatMapObserver(onNext: (value: T, i: number) => ObservableOrPromise, onError: (error: any) => ObservableOrPromise, onCompleted: () => ObservableOrPromise, thisArg?: any): Observable; + /** + * Projects each notification of an observable sequence to an observable sequence and concats the resulting observable sequences into one observable sequence. + * @param {Function} onNext A transform function to apply to each element; the second parameter of the function represents the index of the source element. + * @param {Function} onError A transform function to apply when an error occurs in the source sequence. + * @param {Function} onCompleted A transform function to apply when the end of the source sequence is reached. + * @param {Any} [thisArg] An optional "this" to use to invoke each transform. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + */ + selectConcatObserver(onNext: (value: T, i: number) => ObservableOrPromise, onError: (error: any) => ObservableOrPromise, onCompleted: () => ObservableOrPromise, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Returns the elements of the specified sequence or the specified value in a singleton sequence if the sequence is empty. + * + * var res = obs = xs.defaultIfEmpty(); + * 2 - obs = xs.defaultIfEmpty(false); + * + * @memberOf Observable# + * @param defaultValue The value to return if the sequence is empty. If not provided, this defaults to null. + * @returns {Observable} An observable sequence that contains the specified default value if the source is empty; otherwise, the elements of the source itself. + */ + defaultIfEmpty(defaultValue?: T): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that contains only distinct elements according to the keySelector and the comparer. + * Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + * + * @example + * var res = obs = xs.distinct(); + * 2 - obs = xs.distinct(function (x) { return x.id; }); + * 2 - obs = xs.distinct(function (x) { return x.id; }, function (a,b) { return a === b; }); + * @param {Function} [keySelector] A function to compute the comparison key for each element. + * @param {Function} [comparer] Used to compare items in the collection. + * @returns {Observable} An observable sequence only containing the distinct elements, based on a computed key value, from the source sequence. + */ + distinct(keySelector?: (value: T) => TKey, keySerializer?: (key: TKey) => string): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into a new form by incorporating the element's index. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source. + */ + select(selector: _Selector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new form by incorporating the element's index. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source. + */ + map(selector: _Selector, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Retrieves the value of a specified nested property from all elements in + * the Observable sequence. + * @param {Arguments} arguments The nested properties to pluck. + * @returns {Observable} Returns a new Observable sequence of property values. + */ + pluck(prop: string): Observable; + } + + export interface Observable { + /** + * Projects each notification of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * @param {Function} onNext A transform function to apply to each element; the second parameter of the function represents the index of the source element. + * @param {Function} onError A transform function to apply when an error occurs in the source sequence. + * @param {Function} onCompleted A transform function to apply when the end of the source sequence is reached. + * @param {Any} [thisArg] An optional "this" to use to invoke each transform. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + */ + selectManyObserver(onNext: (value: T, index: number) => Observable, onError: (exception: any) => Observable, onCompleted: () => Observable, thisArg?: any): Observable; + /** + * Projects each notification of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * @param {Function} onNext A transform function to apply to each element; the second parameter of the function represents the index of the source element. + * @param {Function} onError A transform function to apply when an error occurs in the source sequence. + * @param {Function} onCompleted A transform function to apply when the end of the source sequence is reached. + * @param {Any} [thisArg] An optional "this" to use to invoke each transform. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + */ + flatMapObserver(onNext: (value: T, index: number) => Observable, onError: (exception: any) => Observable, onCompleted: () => Observable, thisArg?: any): Observable; + } + + + export interface Observable { + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMap(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMap(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMap(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMap(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectMany(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectMany(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectMany(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectMany(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + selectSwitch(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + selectSwitch(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + selectSwitch(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + selectSwitch(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + flatMapLatest(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + flatMapLatest(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + flatMapLatest(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + flatMapLatest(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Bypasses a specified number of elements in an observable sequence and then returns the remaining elements. + * @param {Number} count The number of elements to skip before returning the remaining elements. + * @returns {Observable} An observable sequence that contains the elements that occur after the specified index in the input sequence. + */ + skip(count: number): Observable; + } + + export interface Observable { + /** + * Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. + * The element's index is used in the logic of the predicate function. + * + * var res = source.skipWhile(function (value) { return value < 10; }); + * var res = source.skipWhile(function (value, index) { return value < 10 || index < 10; }); + * @param {Function} predicate A function to test each element for a condition; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. + */ + skipWhile(predicate: _Predicate, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Returns a specified number of contiguous elements from the start of an observable sequence, using the specified scheduler for the edge case of take(0). + * + * var res = source.take(5); + * var res = source.take(0, Rx.Scheduler.timeout); + * @param {Number} count The number of elements to return. + * @param {Scheduler} [scheduler] Scheduler used to produce an OnCompleted message in case = IObservable | Observable | Promise; + + export type ArrayLike = Array | { length: number;[index: number]: T; }; + + // Type alias for arrays and array like objects + export type ArrayOrIterable = ArrayLike | Iterable; + + /** + * Promise A+ + */ + export interface Promise extends PromiseLike { } + + /** + * Promise A+ + */ + export interface IPromise extends PromiseLike { } + + /** + * Represents a push-style collection. + */ + export interface IObservable { } + + /** + * Represents a push-style collection. + */ + export interface Observable extends IObservable { } + + export module internals { + export interface EmptyError extends Error { message: string; } + export interface EmptyErrorStatic { new (): EmptyError; } + + export interface ObjectDisposedError extends Error { message: string; } + export interface ObjectDisposedErrorStatic { new (): ObjectDisposedError; } + + export interface ArgumentOutOfRangeError extends Error { message: string; } + export interface ArgumentOutOfRangeErrorStatic { new (): ArgumentOutOfRangeError; } + + export interface NotSupportedError extends Error { message: string; } + export interface NotSupportedErrorStatic { new (): NotSupportedError; } + + export interface NotImplementedError extends Error { message: string; } + export interface NotImplementedErrorStatic { new (): NotImplementedError; } + } + + export module helpers { + export var notImplemented: () => internals.NotImplementedError; + export var notSupported: () => internals.NotSupportedError; + } + + export module internals { + export var bindCallback: (func: Function, thisArg: any, argCount: number) => Function; + } + + export module internals { + export var isEqual : (left: any, right: any) => boolean; + } + + export interface IDisposable { + dispose(): void; + } + + export interface Disposable extends IDisposable { + /** Is this value disposed. */ + isDisposed?: boolean; + } + + interface DisposableStatic { + /** + * Provides a set of static methods for creating Disposables. + * @param {Function} dispose Action to run during the first call to dispose. The action is guaranteed to be run at most once. + */ + new (action: () => void): Disposable; + + /** + * Creates a disposable object that invokes the specified action when disposed. + * @param {Function} dispose Action to run during the first call to dispose. The action is guaranteed to be run at most once. + * @return {Disposable} The disposable object that runs the given action upon disposal. + */ + create(action: () => void): Disposable; + + /** + * Gets the disposable that does nothing when disposed. + */ + empty: IDisposable; + + /** + * Validates whether the given object is a disposable + * @param {Object} Object to test whether it has a dispose method + * @returns {Boolean} true if a disposable object, else false. + */ + isDisposable(d: any): boolean; + } + + /** + * Provides a set of static methods for creating Disposables. + * @param {Function} dispose Action to run during the first call to dispose. The action is guaranteed to be run at most once. + */ + export var Disposable: DisposableStatic; + + export module config { + export var Promise: { new (resolver: (resolvePromise: (value: T) => void, rejectPromise: (reason: any) => void) => void): IPromise; }; + } + + export module helpers { + export var noop: () => void; + export var notDefined: (value: any) => boolean; + export var identity: (value: T) => T; + export var defaultNow: () => number; + export var defaultComparer: (left: any, right: any) => boolean; + export var defaultSubComparer: (left: any, right: any) => number; + export var defaultKeySerializer: (key: any) => string; + export var defaultError: (err: any) => void; + export var isPromise: (p: any) => boolean; + export var asArray: (...args: T[]) => T[]; + export var not: (value: any) => boolean; + export var isFunction: (value: any) => boolean; + } + + export type _Selector = (value: T, index: number, observable: Observable) => TResult; + export type _ValueOrSelector = TResult | _Selector; + export type _Predicate = _Selector; + export type _Comparer = (value1: T, value2: T) => TResult; + export type _Accumulator = (acc: TAcc, value: T) => TAcc; + + export module special { + export type _FlatMapResultSelector = (value: T1, selectorValue: T2, index: number, selectorOther: number) => TResult; + } + + export interface IObservable { + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(observer: IObserver): IDisposable; + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): IDisposable; + } + + export interface Observable { + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(observer: IObserver): IDisposable; + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): IDisposable; + + /** + * Subscribes to the next value in the sequence with an optional "this" argument. + * @param {Function} onNext The function to invoke on each element in the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Disposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribeOnNext(onNext: (value: T) => void, thisArg?: any): IDisposable; + /** + * Subscribes to an exceptional condition in the sequence with an optional "this" argument. + * @param {Function} onError The function to invoke upon exceptional termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Disposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribeOnError(onError: (exception: any) => void, thisArg?: any): IDisposable; + /** + * Subscribes to the next value in the sequence with an optional "this" argument. + * @param {Function} onCompleted The function to invoke upon graceful termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Disposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribeOnCompleted(onCompleted: () => void, thisArg?: any): IDisposable; + + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + forEach(observer: IObserver): IDisposable; + + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + forEach(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): IDisposable; + } + + export interface ObservableStatic { + /** + * Determines whether the given object is an Observable + * @param {Any} An object to determine whether it is an Observable + * @returns {Boolean} true if an Observable, else false. + */ + isObservable(o: any): boolean; + } + + export var Observable: ObservableStatic; + + export module internals { + export var inherits: (child: any, parent: any) => void; + export var addProperties: (obj: any, ...sources: any[]) => void; + export var addRef: (xs: Observable, r: { getDisposable(): IDisposable; }) => Observable; + } + + /** + * Represents a group of disposable resources that are disposed together. + * @constructor + */ + export interface CompositeDisposable extends Disposable { + /** + * Adds a disposable to the CompositeDisposable or disposes the disposable if the CompositeDisposable is disposed. + * @param {Mixed} item Disposable to add. + */ + add(item: IDisposable): void; + + /** + * Removes and disposes the first occurrence of a disposable from the CompositeDisposable. + * @param {Mixed} item Disposable to remove. + * @returns {Boolean} true if found; false otherwise. + */ + remove(item: IDisposable): void; + } + + interface CompositeDisposableStatic { + /** + * Represents a group of disposable resources that are disposed together. + * @constructor + */ + new (...disposables: Rx.IDisposable[]): CompositeDisposable; + /** + * Represents a group of disposable resources that are disposed together. + * @constructor + */ + new(disposables: Rx.IDisposable[]): CompositeDisposable; + } + + export var CompositeDisposable: CompositeDisposableStatic; + + export interface SingleAssignmentDisposable { + /** Performs the task of cleaning up resources. */ + dispose(): void; + + /** Is this value disposed. */ + isDisposed: boolean; + + getDisposable(): IDisposable; + + setDisposable(value: IDisposable): void; + } + + interface SingleAssignmentDisposableStatic { + new() : SingleAssignmentDisposable; + } + + export var SingleAssignmentDisposable : SingleAssignmentDisposableStatic; + + export interface SerialDisposable { + /** Performs the task of cleaning up resources. */ + dispose(): void; + + /** Is this value disposed. */ + isDisposed: boolean; + + getDisposable(): IDisposable; + + setDisposable(value: IDisposable): void; + } + + interface SerialDisposableStatic { + new() : SerialDisposable; + } + + export var SerialDisposable : SerialDisposableStatic; + + /** + * Represents a disposable resource that only disposes its underlying disposable resource when all dependent disposable objects have been disposed. + */ + export interface RefCountDisposable extends Disposable { + + /** Performs the task of cleaning up resources. */ + dispose(): void; + + /** Is this value disposed. */ + isDisposed: boolean; + + /** + * Returns a dependent disposable that when disposed decreases the refcount on the underlying disposable. + * @returns {Disposable} A dependent disposable contributing to the reference count that manages the underlying disposable's lifetime. + */ + getDisposable(): IDisposable; + } + + interface RefCountDisposableStatic { + /** + * Initializes a new instance of the RefCountDisposable with the specified disposable. + * @constructor + * @param {Disposable} disposable Underlying disposable. + */ + new(disposable: IDisposable): RefCountDisposable; + } + + export var RefCountDisposable : RefCountDisposableStatic; + + export interface IScheduler { + /** Gets the current time according to the local machine's system clock. */ + now(): number; + + /** + * Schedules an action to be executed. + * @param state State passed to the action to be executed. + * @param {Function} action Action to be executed. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + schedule(state: TState, action: (scheduler: IScheduler, state: TState) => IDisposable): IDisposable; + + /** + * Schedules an action to be executed after dueTime. + * @param state State passed to the action to be executed. + * @param {Function} action Action to be executed. + * @param {Number} dueTime Relative time after which to execute the action. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + scheduleFuture(state: TState, dueTime: number | Date, action: (scheduler: IScheduler, state: TState) => IDisposable): IDisposable; + } + + export interface SchedulerStatic { + /** Gets the current time according to the local machine's system clock. */ + now(): number; + + /** + * Normalizes the specified TimeSpan value to a positive value. + * @param {Number} timeSpan The time span value to normalize. + * @returns {Number} The specified TimeSpan value if it is zero or positive; otherwise, 0 + */ + normalize(timeSpan: number): number; + + /** Determines whether the given object is a scheduler */ + isScheduler(s: any): boolean; + } + + /** Provides a set of static properties to access commonly used schedulers. */ + export var Scheduler: SchedulerStatic; + + export module internals { + export interface ScheduledItem { + scheduler: IScheduler; + state: TTime; + action: (scheduler: IScheduler, state: any) => IDisposable; + dueTime: TTime; + comparer: (x: TTime, y: TTime) => number; + disposable: SingleAssignmentDisposable; + + invoke(): void; + compareTo(other: ScheduledItem): number; + isCancelled(): boolean; + invokeCore(): IDisposable; + } + + interface ScheduledItemStatic { + new (scheduler: IScheduler, state: any, action: (scheduler: IScheduler, state: any) => IDisposable, dueTime: TTime, comparer?: _Comparer):ScheduledItem; + } + + export var ScheduledItem: ScheduledItemStatic + } + + export interface IScheduler { + /** + * Schedules an action to be executed recursively. + * @param {Mixed} state State passed to the action to be executed. + * @param {Function} action Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in recursive invocation state. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + scheduleRecursive(state: TState, action: (state: TState, action: (state: TState) => void) => void): IDisposable; + + /** + * Schedules an action to be executed recursively after a specified relative due time. + * @param {Mixed} state State passed to the action to be executed. + * @param {Function} action Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in the recursive due time and invocation state. + * @param {Number}dueTime Relative time after which to execute the action for the first time. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + scheduleRecursiveFuture(state: TState, dueTime: TTime, action: (state: TState, action: (state: TState, dueTime: TTime) => void) => void): IDisposable; + } + + export interface IScheduler { + /** + * Schedules a periodic piece of work by dynamically discovering the scheduler's capabilities. The periodic task will be scheduled using window.setInterval for the base implementation. + * @param {Mixed} state Initial state passed to the action upon the first iteration. + * @param {Number} period Period for running the work periodically. + * @param {Function} action Action to be executed, potentially updating the state. + * @returns {Disposable} The disposable object used to cancel the scheduled recurring action (best effort). + */ + schedulePeriodic(state: TState, period: number, action: (state: TState) => TState): IDisposable; + } + + export interface IScheduler { + /** + * Returns a scheduler that wraps the original scheduler, adding exception handling for scheduled actions. + * @param {Function} handler Handler that's run if an exception is caught. The exception will be rethrown if the handler returns false. + * @returns {Scheduler} Wrapper around the original scheduler, enforcing exception handling. + */ + catch(handler: Function): IScheduler; + } + + export module internals { + export interface SchedulePeriodicRecursive { + start(): IDisposable; + } + + interface SchedulePeriodicRecursiveStatic { + new (scheduler: any, state: any, period: any, action: any) : SchedulePeriodicRecursive; + } + + export var SchedulePeriodicRecursive: SchedulePeriodicRecursiveStatic; + } + + export interface SchedulerStatic { + immediate: IScheduler; + } + + export interface ICurrentThreadScheduler extends IScheduler { + scheduleRequired(): boolean; + } + + export interface SchedulerStatic { + currentThread: ICurrentThreadScheduler; + } + + export interface SchedulerStatic { + default: IScheduler; + async: IScheduler; + } + + export module internals { + // Priority Queue for Scheduling + export interface PriorityQueue { + length: number; + + isHigherPriority(left: number, right: number): boolean; + percolate(index: number): void; + heapify(index: number): void; + peek(): ScheduledItem; + removeAt(index: number): void; + dequeue(): ScheduledItem; + enqueue(item: ScheduledItem): void; + remove(item: ScheduledItem): boolean; + } + + interface PriorityQueueStatic { + new (capacity: number) : PriorityQueue; + count: number; + } + + export var PriorityQueue : PriorityQueueStatic; + } + + /** + * Supports push-style iteration over an observable sequence. + */ + export interface IObserver { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + } + + export interface Observer { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + } + + export interface ObserverStatic { + /** + * Creates an observer from the specified OnNext, along with optional OnError, and OnCompleted actions. + * @param {Function} [onNext] Observer's OnNext action implementation. + * @param {Function} [onError] Observer's OnError action implementation. + * @param {Function} [onCompleted] Observer's OnCompleted action implementation. + * @returns {Observer} The observer object implemented using the given actions. + */ + create(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): Observer; + } + + /** + * Supports push-style iteration over an observable sequence. + */ + export var Observer: ObserverStatic; + + /** + * Represents a notification to an observer. + */ + export interface Notification { + /** + * Invokes the delegate corresponding to the notification or the observer's method corresponding to the notification and returns the produced result. + * + * @memberOf Notification + * @param {Any} observerOrOnNext Delegate to invoke for an OnNext notification or Observer to invoke the notification on.. + * @param {Function} onError Delegate to invoke for an OnError notification. + * @param {Function} onCompleted Delegate to invoke for an OnCompleted notification. + * @returns {Any} Result produced by the observation. + */ + accept(observer: IObserver): void; + /** + * Invokes the delegate corresponding to the notification or the observer's method corresponding to the notification and returns the produced result. + * + * @memberOf Notification + * @param {Any} observerOrOnNext Delegate to invoke for an OnNext notification or Observer to invoke the notification on.. + * @param {Function} onError Delegate to invoke for an OnError notification. + * @param {Function} onCompleted Delegate to invoke for an OnCompleted notification. + * @returns {Any} Result produced by the observation. + */ + accept(onNext: (value: T) => TResult, onError: (exception: any) => TResult, onCompleted: () => TResult): TResult; + + /** + * Returns an observable sequence with a single notification. + * + * @memberOf Notifications + * @param {Scheduler} [scheduler] Scheduler to send out the notification calls on. + * @returns {Observable} The observable sequence that surfaces the behavior of the notification upon subscription. + */ + toObservable(scheduler?: IScheduler): Observable; + + hasValue: boolean; + equals(other: Notification): boolean; + kind: string; + value: T; + error: any; + } + + interface NotificationStatic { + new (kind: any, value: any, exception: any, accept: any, acceptObservable: any, toString: any) : Notification; + + /** + * Creates an object that represents an OnNext notification to an observer. + * @param {Any} value The value contained in the notification. + * @returns {Notification} The OnNext notification containing the value. + */ + createOnNext(value: T): Notification; + /** + * Creates an object that represents an OnError notification to an observer. + * @param {Any} error The exception contained in the notification. + * @returns {Notification} The OnError notification containing the exception. + */ + createOnError(exception: any): Notification; + /** + * Creates an object that represents an OnCompleted notification to an observer. + * @returns {Notification} The OnCompleted notification. + */ + createOnCompleted(): Notification; + } + + export var Notification : NotificationStatic; + + export interface Observer { + makeSafe(disposable: IDisposable): Observer; + } + + export module internals { + /** + * Abstract base class for implementations of the Observer class. + * This base class enforces the grammar of observers where OnError and OnCompleted are terminal messages. + */ + export interface AbstractObserver extends Rx.IObserver, Rx.IDisposable { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + + isStopped: boolean; + + /** + * Disposes the observer, causing it to transition to the stopped state. + */ + dispose(): void; + + fail(e: any): boolean; + + // Must be implemented by other observers + next(value: T): void; + error(error: any): void; + completed(): void; + } + + interface AbstractObserverStatic { + new (): AbstractObserver; + } + + export var AbstractObserver: AbstractObserverStatic + } + + /** + * Class to create an Observer instance from delegate-based implementations of the on* methods. + */ + export interface AnonymousObserver extends Observer { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + } + + interface AnonymousObserverStatic { + /** + * Creates an observer from the specified OnNext, OnError, and OnCompleted actions. + * @param {Any} onNext Observer's OnNext action implementation. + * @param {Any} onError Observer's OnError action implementation. + * @param {Any} onCompleted Observer's OnCompleted action implementation. + */ + new (onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): AnonymousObserver; + } + + export var AnonymousObserver : AnonymousObserverStatic; + + export interface CheckedObserver extends Observer { + checkAccess(): void; + } + + export module internals { + export interface ScheduledObserver extends Observer { + ensureActive(): void; + } + } + + export interface Observable { + /** + * Wraps the source sequence in order to run its observer callbacks on the specified scheduler. + * + * This only invokes observer callbacks on a scheduler. In case the subscription and/or unsubscription actions have side-effects + * that require to be run on a scheduler, use subscribeOn. + * + * @param {Scheduler} scheduler Scheduler to notify observers on. + * @returns {Observable} The source sequence whose observations happen on the specified scheduler. + */ + observeOn(scheduler: IScheduler): Observable; + } + + export interface Observable { + /** + * Wraps the source sequence in order to run its subscription and unsubscription logic on the specified scheduler. This operation is not commonly used; + * see the remarks section for more information on the distinction between subscribeOn and observeOn. + + * This only performs the side-effects of subscription and unsubscription on the specified scheduler. In order to invoke observer + * callbacks on a scheduler, use observeOn. + + * @param {Scheduler} scheduler Scheduler to perform subscription and unsubscription actions on. + * @returns {Observable} The source sequence whose subscriptions and unsubscriptions happen on the specified scheduler. + */ + subscribeOn(scheduler: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Converts a Promise to an Observable sequence + * @param {Promise} An ES6 Compliant promise. + * @returns {Observable} An Observable sequence which wraps the existing promise success and failure. + */ + fromPromise(promise: Promise): Observable; + } + + export interface Observable { + /* + * Converts an existing observable sequence to an ES6 Compatible Promise + * @example + * var promise = Rx.Observable.return(42).toPromise(RSVP.Promise); + * + * // With config + * Rx.config.Promise = RSVP.Promise; + * var promise = Rx.Observable.return(42).toPromise(); + * @param {Function} [promiseCtor] The constructor of the promise. If not provided, it looks for it in Rx.config.Promise. + * @returns {Promise} An ES6 compatible promise with the last value from the observable sequence. + */ + toPromise(promiseCtor?: { new (resolver: (resolvePromise: (value: T) => void, rejectPromise: (reason: any) => void) => void): IPromise; }): IPromise; + /* + * Converts an existing observable sequence to an ES6 Compatible Promise + * @example + * var promise = Rx.Observable.return(42).toPromise(RSVP.Promise); + * + * // With config + * Rx.config.Promise = RSVP.Promise; + * var promise = Rx.Observable.return(42).toPromise(); + * @param {Function} [promiseCtor] The constructor of the promise. If not provided, it looks for it in Rx.config.Promise. + * @returns {Promise} An ES6 compatible promise with the last value from the observable sequence. + */ + toPromise>(promiseCtor: { new (resolver: (resolvePromise: (value: T) => void, rejectPromise: (reason: any) => void) => void): TPromise; }): TPromise; + } + + export interface Observable { + /** + * Creates an array from an observable sequence. + * @returns {Observable} An observable sequence containing a single element with a list containing all the elements of the source sequence. + */ + toArray(): Observable; + } + + export interface ObservableStatic { + /** + * Creates an observable sequence from a specified subscribe method implementation. + * @example + * var res = Rx.Observable.create(function (observer) { return function () { } ); + * var res = Rx.Observable.create(function (observer) { return Rx.Disposable.empty; } ); + * var res = Rx.Observable.create(function (observer) { } ); + * @param {Function} subscribe Implementation of the resulting observable sequence's subscribe method, returning a function that will be wrapped in a Disposable. + * @returns {Observable} The observable sequence with the specified implementation for the Subscribe method. + */ + create(subscribe: (observer: Observer) => IDisposable | Function | void): Observable; + } + + export interface ObservableStatic { + /** + * Returns an observable sequence that invokes the specified factory function whenever a new observer subscribes. + * + * @example + * var res = Rx.Observable.defer(function () { return Rx.Observable.fromArray([1,2,3]); }); + * @param {Function} observableFactory Observable factory function to invoke for each observer that subscribes to the resulting sequence or Promise. + * @returns {Observable} An observable sequence whose observers trigger an invocation of the given observable factory function. + */ + defer(observableFactory: () => ObservableOrPromise): Observable; + } + + export interface ObservableStatic { + /** + * Returns an empty observable sequence, using the specified scheduler to send out the single OnCompleted message. + * + * @example + * var res = Rx.Observable.empty(); + * var res = Rx.Observable.empty(Rx.Scheduler.timeout); + * @param {Scheduler} [scheduler] Scheduler to send the termination call on. + * @returns {Observable} An observable sequence with no elements. + */ + empty(scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * This method creates a new Observable sequence from an array-like or iterable object. + * @param {Any} arrayLike An array-like or iterable object to convert to an Observable sequence. + * @param {Function} [mapFn] Map function to call on every element of the array. + * @param {Any} [thisArg] The context to use calling the mapFn if provided. + * @param {Scheduler} [scheduler] Optional scheduler to use for scheduling. If not provided, defaults to Scheduler.currentThread. + */ + from(array: ArrayOrIterable): Observable; + /** + * This method creates a new Observable sequence from an array-like or iterable object. + * @param {Any} arrayLike An array-like or iterable object to convert to an Observable sequence. + * @param {Function} [mapFn] Map function to call on every element of the array. + * @param {Any} [thisArg] The context to use calling the mapFn if provided. + * @param {Scheduler} [scheduler] Optional scheduler to use for scheduling. If not provided, defaults to Scheduler.currentThread. + */ + from(array: ArrayOrIterable, mapFn: (value: T, index: number) => TResult, thisArg?: any, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Converts an array to an observable sequence, using an optional scheduler to enumerate the array. + * @deprecated use Observable.from or Observable.of + * @param {Scheduler} [scheduler] Scheduler to run the enumeration of the input sequence on. + * @returns {Observable} The observable sequence whose elements are pulled from the given enumerable sequence. + */ + fromArray(array: ArrayLike, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Generates an observable sequence by running a state-driven loop producing the sequence's elements, using the specified scheduler to send out observer messages. + * + * @example + * var res = Rx.Observable.generate(0, function (x) { return x < 10; }, function (x) { return x + 1; }, function (x) { return x; }); + * var res = Rx.Observable.generate(0, function (x) { return x < 10; }, function (x) { return x + 1; }, function (x) { return x; }, Rx.Scheduler.timeout); + * @param {Mixed} initialState Initial state. + * @param {Function} condition Condition to terminate generation (upon returning false). + * @param {Function} iterate Iteration step function. + * @param {Function} resultSelector Selector function for results produced in the sequence. + * @param {Scheduler} [scheduler] Scheduler on which to run the generator loop. If not provided, defaults to Scheduler.currentThread. + * @returns {Observable} The generated sequence. + */ + generate(initialState: TState, condition: (state: TState) => boolean, iterate: (state: TState) => TState, resultSelector: (state: TState) => TResult, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins). + * @returns {Observable} An observable sequence whose observers will never get called. + */ + never(): Observable; + } + + export interface ObservableStatic { + /** + * This method creates a new Observable instance with a variable number of arguments, regardless of number or type of the arguments. + * @returns {Observable} The observable sequence whose elements are pulled from the given arguments. + */ + of(...values: T[]): Observable; + + /** + * This method creates a new Observable instance with a variable number of arguments, regardless of number or type of the arguments. + * @param {Scheduler} scheduler A scheduler to use for scheduling the arguments. + * @returns {Observable} The observable sequence whose elements are pulled from the given arguments. + */ + ofWithScheduler(scheduler?: IScheduler, ...values: T[]): Observable; + } + + export interface ObservableStatic { + /** + * Convert an object into an observable sequence of [key, value] pairs. + * @param {Object} obj The object to inspect. + * @param {Scheduler} [scheduler] Scheduler to run the enumeration of the input sequence on. + * @returns {Observable} An observable sequence of [key, value] pairs from the object. + */ + pairs(obj: { [key: string]: T }, scheduler?: IScheduler): Observable<[string, T]>; + /** + * Convert an object into an observable sequence of [key, value] pairs. + * @param {Object} obj The object to inspect. + * @param {Scheduler} [scheduler] Scheduler to run the enumeration of the input sequence on. + * @returns {Observable} An observable sequence of [key, value] pairs from the object. + */ + pairs(obj: { [key: number]: T }, scheduler?: IScheduler): Observable<[number, T]>; + } + + export interface ObservableStatic { + /** + * Generates an observable sequence of integral numbers within a specified range, using the specified scheduler to send out observer messages. + * + * @example + * var res = Rx.Observable.range(0, 10); + * var res = Rx.Observable.range(0, 10, Rx.Scheduler.timeout); + * @param {Number} start The value of the first integer in the sequence. + * @param {Number} count The number of sequential integers to generate. + * @param {Scheduler} [scheduler] Scheduler to run the generator loop on. If not specified, defaults to Scheduler.currentThread. + * @returns {Observable} An observable sequence that contains a range of sequential integral numbers. + */ + range(start: number, count: number, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Generates an observable sequence that repeats the given element the specified number of times, using the specified scheduler to send out observer messages. + * + * @example + * var res = Rx.Observable.repeat(42); + * var res = Rx.Observable.repeat(42, 4); + * 3 - res = Rx.Observable.repeat(42, 4, Rx.Scheduler.timeout); + * 4 - res = Rx.Observable.repeat(42, null, Rx.Scheduler.timeout); + * @param {Mixed} value Element to repeat. + * @param {Number} repeatCount [Optiona] Number of times to repeat the element. If not specified, repeats indefinitely. + * @param {Scheduler} scheduler Scheduler to run the producer loop on. If not specified, defaults to Scheduler.immediate. + * @returns {Observable} An observable sequence that repeats the given element the specified number of times. + */ + repeat(value: T, repeatCount?: number | void, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages. + * There is an alias called 'just' or browsers (value: T, scheduler?: IScheduler): Observable; + /** + * Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages. + * There is an alias called 'just' or browsers (value: T, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single onError message. + * @param {Mixed} error An object used for the sequence's termination. + * @param {Scheduler} scheduler Scheduler to send the exceptional termination call on. If not specified, defaults to Scheduler.immediate. + * @returns {Observable} The observable sequence that terminates exceptionally with the specified exception object. + */ + throw(exception: Error, scheduler?: IScheduler): Observable; + /** + * Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single onError message. + * @param {Mixed} error An object used for the sequence's termination. + * @param {Scheduler} scheduler Scheduler to send the exceptional termination call on. If not specified, defaults to Scheduler.immediate. + * @returns {Observable} The observable sequence that terminates exceptionally with the specified exception object. + */ + throw(exception: any, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime. + * @param {Function} resourceFactory Factory function to obtain a resource object. + * @param {Function} observableFactory Factory function to obtain an observable sequence that depends on the obtained resource. + * @returns {Observable} An observable sequence whose lifetime controls the lifetime of the dependent resource object. + */ + using(resourceFactory: () => TResource, observableFactory: (resource: TResource) => Observable): Observable; + } + + export interface Observable { + /** + * Propagates the observable sequence or Promise that reacts first. + * @param {Observable} rightSource Second observable sequence or Promise. + * @returns {Observable} {Observable} An observable sequence that surfaces either of the given sequences, whichever reacted first. + */ + amb(observable: ObservableOrPromise): Observable; + } + + export interface ObservableStatic { + /** + * Propagates the observable sequence or Promise that reacts first. + * @returns {Observable} An observable sequence that surfaces any of the given sequences, whichever reacted first. + */ + amb(observables: ObservableOrPromise[]): Observable; + /** + * Propagates the observable sequence or Promise that reacts first. + * @returns {Observable} An observable sequence that surfaces any of the given sequences, whichever reacted first. + */ + amb(...observables: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Continues an observable sequence that is terminated by an exception with the next observable sequence. + * @param {Mixed} handlerOrSecond Exception handler function that returns an observable sequence given the error that occurred in the first sequence, or a second observable sequence used to produce results when an error occurred in the first sequence. + * @returns {Observable} An observable sequence containing the first sequence's elements, followed by the elements of the handler sequence in case an exception occurred. + */ + catch(handler: (exception: any) => ObservableOrPromise): Observable; + /** + * Continues an observable sequence that is terminated by an exception with the next observable sequence. + * @param {Mixed} handlerOrSecond Exception handler function that returns an observable sequence given the error that occurred in the first sequence, or a second observable sequence used to produce results when an error occurred in the first sequence. + * @returns {Observable} An observable sequence containing the first sequence's elements, followed by the elements of the handler sequence in case an exception occurred. + */ + catch(second: ObservableOrPromise): Observable; + } + + export interface ObservableStatic { + /** + * Continues an observable sequence that is terminated by an exception with the next observable sequence. + * @param {Array | Arguments} args Arguments or an array to use as the next sequence if an error occurs. + * @returns {Observable} An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + */ + catch(sources: ObservableOrPromise[]): Observable; + /** + * Continues an observable sequence that is terminated by an exception with the next observable sequence. + * @param {Array | Arguments} args Arguments or an array to use as the next sequence if an error occurs. + * @returns {Observable} An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + */ + catch(...sources: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, resultSelector: (v1: T, v2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, ninth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8, v9: T9) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(souces: ObservableOrPromise[], resultSelector: (firstValue: T, ...otherValues: TOther[]) => TResult): Observable; + } + + export interface ObservableStatic { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, resultSelector: (v1: T, v2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, eventh: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, ninth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8, v9: T9) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(souces: ObservableOrPromise[], resultSelector: (...otherValues: TOther[]) => TResult): Observable; + } + + export interface Observable { + /** + * Concatenates all the observable sequences. This takes in either an array or variable arguments to concatenate. + * @returns {Observable} An observable sequence that contains the elements of each given sequence, in sequential order. + */ + concat(...sources: ObservableOrPromise[]): Observable; + } + + export interface ObservableStatic { + /** + * Concatenates all the observable sequences. + * @param {Array | Arguments} args Arguments or an array to concat to the observable sequence. + * @returns {Observable} An observable sequence that contains the elements of each given sequence, in sequential order. + */ + concat(...sources: ObservableOrPromise[]): Observable; + /** + * Concatenates all the observable sequences. + * @param {Array | Arguments} args Arguments or an array to concat to the observable sequence. + * @returns {Observable} An observable sequence that contains the elements of each given sequence, in sequential order. + */ + concat(sources: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Concatenates an observable sequence of observable sequences. + * @returns {Observable} An observable sequence that contains the elements of each observed inner sequence, in sequential order. + */ + concatAll(): T; + } + + export interface Observable { + /** + * Merges an observable sequence of observable sequences into an observable sequence, limiting the number of concurrent subscriptions to inner sequences. + * Or merges two observable sequences into a single observable sequence. + * + * @example + * 1 - merged = sources.merge(1); + * 2 - merged = source.merge(otherSource); + * @param {Mixed} [maxConcurrentOrOther] Maximum number of inner observable sequences being subscribed to concurrently or the second observable sequence. + * @returns {Observable} The observable sequence that merges the elements of the inner sequences. + */ + merge(maxConcurrent: number): T; + /** + * Merges an observable sequence of observable sequences into an observable sequence, limiting the number of concurrent subscriptions to inner sequences. + * Or merges two observable sequences into a single observable sequence. + * + * @example + * 1 - merged = sources.merge(1); + * 2 - merged = source.merge(otherSource); + * @param {Mixed} [maxConcurrentOrOther] Maximum number of inner observable sequences being subscribed to concurrently or the second observable sequence. + * @returns {Observable} The observable sequence that merges the elements of the inner sequences. + */ + merge(other: ObservableOrPromise): Observable; + } + + export interface ObservableStatic { + /** + * Merges all the observable sequences into a single observable sequence. + * The scheduler is optional and if not specified, the immediate scheduler is used. + * @returns {Observable} The observable sequence that merges the elements of the observable sequences. + */ + merge(...sources: ObservableOrPromise[]): Observable; + /** + * Merges all the observable sequences into a single observable sequence. + * The scheduler is optional and if not specified, the immediate scheduler is used. + * @returns {Observable} The observable sequence that merges the elements of the observable sequences. + */ + merge(sources: ObservableOrPromise[]): Observable; + /** + * Merges all the observable sequences into a single observable sequence. + * The scheduler is optional and if not specified, the immediate scheduler is used. + * @returns {Observable} The observable sequence that merges the elements of the observable sequences. + */ + merge(scheduler: IScheduler, ...sources: ObservableOrPromise[]): Observable; + /** + * Merges all the observable sequences into a single observable sequence. + * The scheduler is optional and if not specified, the immediate scheduler is used. + * @returns {Observable} The observable sequence that merges the elements of the observable sequences. + */ + merge(scheduler: IScheduler, sources: ObservableOrPromise[]): Observable; + } + + export interface ObservableStatic { + /** + * Flattens an Observable that emits Observables into one Observable, in a way that allows an Observer to + * receive all successfully emitted items from all of the source Observables without being interrupted by + * an error notification from one of them. + * + * This behaves like Observable.prototype.mergeAll except that if any of the merged Observables notify of an + * error via the Observer's onError, mergeDelayError will refrain from propagating that + * error notification until all of the merged Observables have finished emitting items. + * @param {Array | Arguments} args Arguments or an array to merge. + * @returns {Observable} an Observable that emits all of the items emitted by the Observables emitted by the Observable + */ + mergeDelayError(...sources: ObservableOrPromise[]): Observable; + /** + * Flattens an Observable that emits Observables into one Observable, in a way that allows an Observer to + * receive all successfully emitted items from all of the source Observables without being interrupted by + * an error notification from one of them. + * + * This behaves like Observable.prototype.mergeAll except that if any of the merged Observables notify of an + * error via the Observer's onError, mergeDelayError will refrain from propagating that + * error notification until all of the merged Observables have finished emitting items. + * @param {Array | Arguments} args Arguments or an array to merge. + * @returns {Observable} an Observable that emits all of the items emitted by the Observables emitted by the Observable + */ + mergeDelayError(sources: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Merges an observable sequence of observable sequences into an observable sequence. + * @returns {Observable} The observable sequence that merges the elements of the inner sequences. + */ + mergeAll(): T; + } + + export interface Observable { + /** + * Continues an observable sequence that is terminated normally or by an exception with the next observable sequence. + * @param {Observable} second Second observable sequence used to produce results after the first sequence terminates. + * @returns {Observable} An observable sequence that concatenates the first and second sequence, even if the first sequence terminates exceptionally. + */ + onErrorResumeNext(second: ObservableOrPromise): Observable; + } + + export interface ObservableStatic { + /** + * Continues an observable sequence that is terminated normally or by an exception with the next observable sequence. + * + * @example + * 1 - res = Rx.Observable.onErrorResumeNext(xs, ys, zs); + * 1 - res = Rx.Observable.onErrorResumeNext([xs, ys, zs]); + * @returns {Observable} An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + */ + onErrorResumeNext(...sources: ObservableOrPromise[]): Observable; + /** + * Continues an observable sequence that is terminated normally or by an exception with the next observable sequence. + * + * @example + * 1 - res = Rx.Observable.onErrorResumeNext(xs, ys, zs); + * 1 - res = Rx.Observable.onErrorResumeNext([xs, ys, zs]); + * @returns {Observable} An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + */ + onErrorResumeNext(sources: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Returns the values from the source observable sequence only after the other observable sequence produces a value. + * @param {Observable | Promise} other The observable sequence or Promise that triggers propagation of elements of the source sequence. + * @returns {Observable} An observable sequence containing the elements of the source sequence starting from the point the other sequence triggered propagation. + */ + skipUntil(other: ObservableOrPromise): Observable; + } + + export interface Observable { + /** + * Transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @returns {Observable} The observable sequence that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + switch(): T; + /** + * Transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @returns {Observable} The observable sequence that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + switchLatest(): T; + } + + export interface Observable { + /** + * Returns the values from the source observable sequence until the other observable sequence produces a value. + * @param {Observable | Promise} other Observable sequence or Promise that terminates propagation of elements of the source sequence. + * @returns {Observable} An observable sequence containing the elements of the source sequence up to the point the other sequence interrupted further propagation. + */ + takeUntil(other: ObservableOrPromise): Observable; + } + + export interface Observable { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, resultSelector: (v1: T, v2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, ninth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8, v9: T9) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(souces: ObservableOrPromise[], resultSelector: (firstValue: T, ...otherValues: TOther[]) => TResult): Observable; + } + + export interface ObservableStatic { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(sources: ObservableOrPromise[], resultSelector?: (item1: T1, ...right: T2[]) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, ObservableOrPromise: Observable, resultSelector?: (item1: T1, item2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: Observable, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, source6: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, source6: ObservableOrPromise, source7: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, source6: ObservableOrPromise, source7: ObservableOrPromise, source8: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7, item8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, source6: ObservableOrPromise, source7: ObservableOrPromise, source8: ObservableOrPromise, source9: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7, item8: T8, item9: T9) => TResult): Observable; + } + + export interface Observable { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, resultSelector?: (v1: T, v2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, ninth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8, v9: T9) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(souces: ObservableOrPromise[], resultSelector?: (firstValue: T, ...otherValues: TOther[]) => TResult): Observable; + } + + export interface ObservableStatic { + /** + * Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + * @param arguments Observable sources. + * @returns {Observable} An observable sequence containing lists of elements at corresponding indexes. + */ + zipIterable(...sources: Observable[]): Observable; + /** + * Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + * @param arguments Observable sources. + * @returns {Observable} An observable sequence containing lists of elements at corresponding indexes. + */ + zipIterable(sources: Observable[]): Observable; + } + + export interface Observable { + /** + * Hides the identity of an observable sequence. + * @returns {Observable} An observable sequence that hides the identity of the source sequence. + */ + asObservable(): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more buffers which are produced based on element count information. + * @param {Number} count Length of each buffer. + * @param {Number} [skip] Number of elements to skip between creation of consecutive buffers. If not provided, defaults to the count. + * @returns {Observable} An observable sequence of buffers. + */ + bufferWithCount(count: number, skip?: number): Observable; + } + + export interface Observable { + /** + * Dematerializes the explicit notification values of an observable sequence as implicit notifications. + * @returns {Observable} An observable sequence exhibiting the behavior corresponding to the source sequence's notification values. + */ + dematerialize(): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that contains only distinct contiguous elements according to the keySelector and the comparer. + * + * var obs = observable.distinctUntilChanged(); + * var obs = observable.distinctUntilChanged(function (x) { return x.id; }); + * var obs = observable.distinctUntilChanged(function (x) { return x.id; }, function (x, y) { return x === y; }); + * + * @param {Function} [keySelector] A function to compute the comparison key for each element. If not provided, it projects the value. + * @param {Function} [comparer] Equality comparer for computed key values. If not provided, defaults to an equality comparer function. + * @returns {Observable} An observable sequence only containing the distinct contiguous elements, based on a computed key value, from the source sequence. + */ + distinctUntilChanged(keySelector?: (value: T) => TValue, comparer?: _Comparer): Observable; + } + + export interface Observable { + /** + * Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function | Observer} observerOrOnNext Action to invoke for each element in the observable sequence or an observer. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + do(observer: Observer): Observable; + /** + * Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function | Observer} observerOrOnNext Action to invoke for each element in the observable sequence or an observer. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tap(observer: Observer): Observable; + + /** + * Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function | Observer} observerOrOnNext Action to invoke for each element in the observable sequence or an observer. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + do(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): Observable; + /** + * Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function | Observer} observerOrOnNext Action to invoke for each element in the observable sequence or an observer. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tap(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): Observable; + + /** + * Invokes an action for each element in the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onNext Action to invoke for each element in the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + doOnNext(onNext: (value: T) => void, thisArg?: any): Observable; + /** + * Invokes an action upon exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onError Action to invoke upon exceptional termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + doOnError(onError: (exception: any) => void, thisArg?: any): Observable; + /** + * Invokes an action upon graceful termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onCompleted Action to invoke upon graceful termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + doOnCompleted(onCompleted: () => void, thisArg?: any): Observable; + + /** + * Invokes an action for each element in the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onNext Action to invoke for each element in the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tapOnNext(onNext: (value: T) => void, thisArg?: any): Observable; + /** + * Invokes an action upon exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onError Action to invoke upon exceptional termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tapOnError(onError: (exception: any) => void, thisArg?: any): Observable; + /** + * Invokes an action upon graceful termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onCompleted Action to invoke upon graceful termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tapOnCompleted(onCompleted: () => void, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Invokes a specified action after the source observable sequence terminates gracefully or exceptionally. + * @param {Function} finallyAction Action to invoke after the source observable sequence terminates. + * @returns {Observable} Source sequence with the action-invoking termination behavior applied. + */ + finally(action: () => void): Observable; + + /** + * Invokes a specified action after the source observable sequence terminates gracefully or exceptionally. + * @param {Function} finallyAction Action to invoke after the source observable sequence terminates. + * @returns {Observable} Source sequence with the action-invoking termination behavior applied. + */ + ensure(action: () => void): Observable; + } + + export interface Observable { + /** + * Ignores all elements in an observable sequence leaving only the termination messages. + * @returns {Observable} An empty observable sequence that signals termination, successful or exceptional, of the source sequence. + */ + ignoreElements(): Observable; + } + + export interface Observable { + /** + * Materializes the implicit notifications of an observable sequence as explicit notification values. + * @returns {Observable} An observable sequence containing the materialized notification values from the source sequence. + */ + materialize(): Observable; + } + + export interface Observable { + /** + * Repeats the observable sequence a specified number of times. If the repeat count is not specified, the sequence repeats indefinitely. + * @param {Number} [repeatCount] Number of times to repeat the sequence. If not provided, repeats the sequence indefinitely. + * @returns {Observable} The observable sequence producing the elements of the given sequence repeatedly. + */ + repeat(repeatCount?: number): Observable; + } + + export interface Observable { + /** + * Repeats the source observable sequence the specified number of times or until it successfully terminates. If the retry count is not specified, it retries indefinitely. + * Note if you encounter an error and want it to retry once, then you must use .retry(2); + * + * @example + * var res = retried = retry.repeat(); + * var res = retried = retry.repeat(2); + * @param {Number} [retryCount] Number of times to retry the sequence. If not provided, retry the sequence indefinitely. + * @returns {Observable} An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + */ + retry(retryCount?: number): Observable; + } + + export interface Observable { + /** + * Repeats the source observable sequence upon error each time the notifier emits or until it successfully terminates. + * if the notifier completes, the observable sequence completes. + * + * @example + * var timer = Observable.timer(500); + * var source = observable.retryWhen(timer); + * @param {Observable} [notifier] An observable that triggers the retries or completes the observable with onNext or onCompleted respectively. + * @returns {Observable} An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + */ + retryWhen(notifier: (errors: Observable) => Observable): Observable; + } + + export interface Observable { + /** + * Applies an accumulator function over an observable sequence and returns each intermediate result. The optional seed value is used as the initial accumulator value. + * For aggregation behavior with no intermediate results, see Observable.aggregate. + * @example + * var res = source.scan(function (acc, x) { return acc + x; }); + * var res = source.scan(function (acc, x) { return acc + x; }, 0); + * @param {Function} accumulator An accumulator function to be invoked on each element. + * @param {Mixed} [seed] The initial accumulator value. + * @returns {Observable} An observable sequence containing the accumulated values. + */ + scan(accumulator: _Accumulator, seed?: TAcc): Observable; + /** + * Applies an accumulator function over an observable sequence and returns each intermediate result. The optional seed value is used as the initial accumulator value. + * For aggregation behavior with no intermediate results, see Observable.aggregate. + * @example + * var res = source.scan(function (acc, x) { return acc + x; }); + * var res = source.scan(function (acc, x) { return acc + x; }, 0); + * @param {Function} accumulator An accumulator function to be invoked on each element. + * @param {Mixed} [seed] The initial accumulator value. + * @returns {Observable} An observable sequence containing the accumulated values. + */ + scan(accumulator: _Accumulator, seed?: T): Observable; + } + + export interface Observable { + /** + * Bypasses a specified number of elements at the end of an observable sequence. + * @description + * This operator accumulates a queue with a length enough to store the first `count` elements. As more elements are + * received, elements are taken from the front of the queue and produced on the result sequence. This causes elements to be delayed. + * @param count Number of elements to bypass at the end of the source sequence. + * @returns {Observable} An observable sequence containing the source sequence elements except for the bypassed ones at the end. + */ + skipLast(count: number): Observable; + } + + export interface Observable { + /** + * Prepends a sequence of values to an observable sequence with an optional scheduler and an argument list of values to prepend. + * @example + * var res = source.startWith(1, 2, 3); + * var res = source.startWith(Rx.Scheduler.timeout, 1, 2, 3); + * @param {Arguments} args The specified values to prepend to the observable sequence + * @returns {Observable} The source sequence prepended with the specified values. + */ + startWith(...values: T[]): Observable; + /** + * Prepends a sequence of values to an observable sequence with an optional scheduler and an argument list of values to prepend. + * @example + * var res = source.startWith(1, 2, 3); + * var res = source.startWith(Rx.Scheduler.timeout, 1, 2, 3); + * @param {Arguments} args The specified values to prepend to the observable sequence + * @returns {Observable} The source sequence prepended with the specified values. + */ + startWith(scheduler: IScheduler, ...values: T[]): Observable; + } + + export interface Observable { + /** + * Returns a specified number of contiguous elements from the end of an observable sequence. + * @description + * This operator accumulates a buffer with a length enough to store elements count elements. Upon completion of + * the source sequence, this buffer is drained on the result sequence. This causes the elements to be delayed. + * @param {Number} count Number of elements to take from the end of the source sequence. + * @returns {Observable} An observable sequence containing the specified number of elements from the end of the source sequence. + */ + takeLast(count: number): Observable; + } + + export interface Observable { + /** + * Returns an array with the specified number of contiguous elements from the end of an observable sequence. + * + * @description + * This operator accumulates a buffer with a length enough to store count elements. Upon completion of the + * source sequence, this buffer is produced on the result sequence. + * @param {Number} count Number of elements to take from the end of the source sequence. + * @returns {Observable} An observable sequence containing a single array with the specified number of elements from the end of the source sequence. + */ + takeLastBuffer(count: number): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more windows which are produced based on element count information. + * + * var res = xs.windowWithCount(10); + * var res = xs.windowWithCount(10, 1); + * @param {Number} count Length of each window. + * @param {Number} [skip] Number of elements to skip between creation of consecutive windows. If not specified, defaults to the count. + * @returns {Observable} An observable sequence of windows. + */ + windowWithCount(count: number, skip?: number): Observable>; + } + + export interface Observable { + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + concatMap(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + concatMap(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + concatMap(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + concatMap(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectConcat(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectConcat(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectConcat(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectConcat(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Projects each notification of an observable sequence to an observable sequence and concats the resulting observable sequences into one observable sequence. + * @param {Function} onNext A transform function to apply to each element; the second parameter of the function represents the index of the source element. + * @param {Function} onError A transform function to apply when an error occurs in the source sequence. + * @param {Function} onCompleted A transform function to apply when the end of the source sequence is reached. + * @param {Any} [thisArg] An optional "this" to use to invoke each transform. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + */ + concatMapObserver(onNext: (value: T, i: number) => ObservableOrPromise, onError: (error: any) => ObservableOrPromise, onCompleted: () => ObservableOrPromise, thisArg?: any): Observable; + /** + * Projects each notification of an observable sequence to an observable sequence and concats the resulting observable sequences into one observable sequence. + * @param {Function} onNext A transform function to apply to each element; the second parameter of the function represents the index of the source element. + * @param {Function} onError A transform function to apply when an error occurs in the source sequence. + * @param {Function} onCompleted A transform function to apply when the end of the source sequence is reached. + * @param {Any} [thisArg] An optional "this" to use to invoke each transform. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + */ + selectConcatObserver(onNext: (value: T, i: number) => ObservableOrPromise, onError: (error: any) => ObservableOrPromise, onCompleted: () => ObservableOrPromise, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Returns the elements of the specified sequence or the specified value in a singleton sequence if the sequence is empty. + * + * var res = obs = xs.defaultIfEmpty(); + * 2 - obs = xs.defaultIfEmpty(false); + * + * @memberOf Observable# + * @param defaultValue The value to return if the sequence is empty. If not provided, this defaults to null. + * @returns {Observable} An observable sequence that contains the specified default value if the source is empty; otherwise, the elements of the source itself. + */ + defaultIfEmpty(defaultValue?: T): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that contains only distinct elements according to the keySelector and the comparer. + * Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + * + * @example + * var res = obs = xs.distinct(); + * 2 - obs = xs.distinct(function (x) { return x.id; }); + * 2 - obs = xs.distinct(function (x) { return x.id; }, function (a,b) { return a === b; }); + * @param {Function} [keySelector] A function to compute the comparison key for each element. + * @param {Function} [comparer] Used to compare items in the collection. + * @returns {Observable} An observable sequence only containing the distinct elements, based on a computed key value, from the source sequence. + */ + distinct(keySelector?: (value: T) => TKey, keySerializer?: (key: TKey) => string): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into a new form by incorporating the element's index. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source. + */ + select(selector: _Selector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new form by incorporating the element's index. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source. + */ + map(selector: _Selector, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Retrieves the value of a specified nested property from all elements in + * the Observable sequence. + * @param {Arguments} arguments The nested properties to pluck. + * @returns {Observable} Returns a new Observable sequence of property values. + */ + pluck(prop: string): Observable; + } + + export interface Observable { + /** + * Projects each notification of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * @param {Function} onNext A transform function to apply to each element; the second parameter of the function represents the index of the source element. + * @param {Function} onError A transform function to apply when an error occurs in the source sequence. + * @param {Function} onCompleted A transform function to apply when the end of the source sequence is reached. + * @param {Any} [thisArg] An optional "this" to use to invoke each transform. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + */ + selectManyObserver(onNext: (value: T, index: number) => Observable, onError: (exception: any) => Observable, onCompleted: () => Observable, thisArg?: any): Observable; + /** + * Projects each notification of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * @param {Function} onNext A transform function to apply to each element; the second parameter of the function represents the index of the source element. + * @param {Function} onError A transform function to apply when an error occurs in the source sequence. + * @param {Function} onCompleted A transform function to apply when the end of the source sequence is reached. + * @param {Any} [thisArg] An optional "this" to use to invoke each transform. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + */ + flatMapObserver(onNext: (value: T, index: number) => Observable, onError: (exception: any) => Observable, onCompleted: () => Observable, thisArg?: any): Observable; + } + + + export interface Observable { + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMap(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMap(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMap(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMap(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectMany(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectMany(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectMany(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectMany(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + selectSwitch(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + selectSwitch(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + selectSwitch(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + selectSwitch(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + flatMapLatest(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + flatMapLatest(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + flatMapLatest(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + flatMapLatest(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Bypasses a specified number of elements in an observable sequence and then returns the remaining elements. + * @param {Number} count The number of elements to skip before returning the remaining elements. + * @returns {Observable} An observable sequence that contains the elements that occur after the specified index in the input sequence. + */ + skip(count: number): Observable; + } + + export interface Observable { + /** + * Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. + * The element's index is used in the logic of the predicate function. + * + * var res = source.skipWhile(function (value) { return value < 10; }); + * var res = source.skipWhile(function (value, index) { return value < 10 || index < 10; }); + * @param {Function} predicate A function to test each element for a condition; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. + */ + skipWhile(predicate: _Predicate, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Returns a specified number of contiguous elements from the start of an observable sequence, using the specified scheduler for the edge case of take(0). + * + * var res = source.take(5); + * var res = source.take(0, Rx.Scheduler.timeout); + * @param {Number} count The number of elements to return. + * @param {Scheduler} [scheduler] Scheduler used to produce an OnCompleted message in case { + /** + * Returns an observable sequence that is the result of invoking the selector on the source sequence, without sharing subscriptions. + * This operator allows for a fluent style of writing queries that use the same sequence multiple times. + * + * @param {Function} selector Selector function which can use the source sequence as many times as needed, without sharing subscriptions to the source sequence. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + let(selector: (source: Observable) => Observable): Observable; + } + + export interface ObservableStatic { + /** + * Determines whether an observable collection contains values. + * + * @example + * 1 - res = Rx.Observable.if(condition, obs1); + * 2 - res = Rx.Observable.if(condition, obs1, obs2); + * 3 - res = Rx.Observable.if(condition, obs1, scheduler); + * @param {Function} condition The condition which determines if the thenSource or elseSource will be run. + * @param {Observable} thenSource The observable sequence or Promise that will be run if the condition function returns true. + * @param {Observable} [elseSource] The observable sequence or Promise that will be run if the condition function returns false. If this is not provided, it defaults to Rx.Observabe.Empty with the specified scheduler. + * @returns {Observable} An observable sequence which is either the thenSource or elseSource. + */ + if(condition: () => boolean, thenSource: ObservableOrPromise, elseSourceOrScheduler?: ObservableOrPromise | IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Concatenates the observable sequences obtained by running the specified result selector for each element in source. + * There is an alias for this method called 'forIn' for browsers (sources: T[], resultSelector: _Selector, thisArg?: any): Observable; + /** + * Concatenates the observable sequences obtained by running the specified result selector for each element in source. + * There is an alias for this method called 'forIn' for browsers (sources: T[], resultSelector: _Selector, thisArg?: any): Observable; + } + + export interface ObservableStatic { + /** + * Repeats source as long as condition holds emulating a while loop. + * There is an alias for this method called 'whileDo' for browsers (condition: () => boolean, source: ObservableOrPromise): Observable; + /** + * Repeats source as long as condition holds emulating a while loop. + * There is an alias for this method called 'whileDo' for browsers (condition: () => boolean, source: ObservableOrPromise): Observable; + } + + export interface Observable { + /** + * Repeats source as long as condition holds emulating a do while loop. + * + * @param {Function} condition The condition which determines if the source will be repeated. + * @param {Observable} source The observable sequence that will be run if the condition function returns true. + * @returns {Observable} An observable sequence which is repeated as long as the condition holds. + */ + doWhile(condition: () => boolean): Observable; + } + + export interface ObservableStatic { + /** + * Uses selector to determine which source in sources to use. + * @param {Function} selector The function which extracts the value for to test in a case statement. + * @param {Array} sources A object which has keys which correspond to the case statement labels. + * @param {Observable} [elseSource] The observable sequence or Promise that will be run if the sources are not matched. If this is not provided, it defaults to Rx.Observabe.empty with the specified scheduler. + * + * @returns {Observable} An observable sequence which is determined by a case statement. + */ + case(selector: () => string, sources: { [key: string]: ObservableOrPromise; }, schedulerOrElseSource?: IScheduler | ObservableOrPromise): Observable; + /** + * Uses selector to determine which source in sources to use. + * @param {Function} selector The function which extracts the value for to test in a case statement. + * @param {Array} sources A object which has keys which correspond to the case statement labels. + * @param {Observable} [elseSource] The observable sequence or Promise that will be run if the sources are not matched. If this is not provided, it defaults to Rx.Observabe.empty with the specified scheduler. + * + * @returns {Observable} An observable sequence which is determined by a case statement. + */ + case(selector: () => number, sources: { [key: number]: ObservableOrPromise; }, schedulerOrElseSource?: IScheduler | ObservableOrPromise): Observable; + } + + export interface Observable { + /** + * Expands an observable sequence by recursively invoking selector. + * + * @param {Function} selector Selector function to invoke for each produced element, resulting in another sequence to which the selector will be invoked recursively again. + * @param {Scheduler} [scheduler] Scheduler on which to perform the expansion. If not provided, this defaults to the current thread scheduler. + * @returns {Observable} An observable sequence containing all the elements produced by the recursive expansion. + */ + expand(selector: (item: T) => Observable, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Runs all observable sequences in parallel and collect their last elements. + * + * @example + * 1 - res = Rx.Observable.forkJoin([obs1, obs2]); + * 1 - res = Rx.Observable.forkJoin(obs1, obs2, ...); + * @returns {Observable} An observable sequence with an array collecting the last elements of all the input sequences. + */ + forkJoin(sources: ObservableOrPromise[]): Observable; + + /** + * Runs all observable sequences in parallel and collect their last elements. + * + * @example + * 1 - res = Rx.Observable.forkJoin([obs1, obs2]); + * 1 - res = Rx.Observable.forkJoin(obs1, obs2, ...); + * @returns {Observable} An observable sequence with an array collecting the last elements of all the input sequences. + */ + forkJoin(...args: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Runs two observable sequences in parallel and combines their last elemenets. + * + * @param {Observable} second Second observable sequence. + * @param {Function} resultSelector Result selector function to invoke with the last elements of both sequences. + * @returns {Observable} An observable sequence with the result of calling the selector function with the last elements of both input sequences. + */ + forkJoin(second: ObservableOrPromise, resultSelector: (left: T, right: TSecond) => TResult): Observable; + } + + export interface Observable { + /** + * Comonadic bind operator. + * @param {Function} selector A transform function to apply to each element. + * @param {Object} scheduler Scheduler used to execute the operation. If not specified, defaults to the ImmediateScheduler. + * @returns {Observable} An observable sequence which results from the comonadic bind operation. + */ + manySelect(selector: _Selector, TResult>, scheduler?: IScheduler): Observable; + /** + * Comonadic bind operator. + * @param {Function} selector A transform function to apply to each element. + * @param {Object} scheduler Scheduler used to execute the operation. If not specified, defaults to the ImmediateScheduler. + * @returns {Observable} An observable sequence which results from the comonadic bind operation. + */ + extend(selector: _Selector, TResult>, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Performs a exclusive waiting for the first to finish before subscribing to another observable. + * Observables that come in between subscriptions will be dropped on the floor. + * @returns {Observable} A exclusive observable with only the results that happen when subscribed. + */ + switchFirst(): T; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + selectSwitchFirst(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + selectSwitchFirst(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + selectSwitchFirst(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + selectSwitchFirst(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + flatMapFirst(selector: _ValueOrSelector>): Observable; + + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + flatMapFirst(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + flatMapFirst(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + flatMapFirst(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + } + + export interface Observable { + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectManyWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectManyWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectManyWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectManyWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMapWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>): Observable; + + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMapWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMapWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMapWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + } + +} +declare module "rx.experimental" { export = Rx; } diff --git a/node_modules/rx/ts/rx.experimental.es6.d.ts b/node_modules/rx/ts/rx.experimental.es6.d.ts new file mode 100644 index 0000000..3dd3c39 --- /dev/null +++ b/node_modules/rx/ts/rx.experimental.es6.d.ts @@ -0,0 +1,423 @@ +declare module Rx { + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on the source sequence, without sharing subscriptions. + * This operator allows for a fluent style of writing queries that use the same sequence multiple times. + * + * @param {Function} selector Selector function which can use the source sequence as many times as needed, without sharing subscriptions to the source sequence. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + let(selector: (source: Observable) => Observable): Observable; + } + + export interface ObservableStatic { + /** + * Determines whether an observable collection contains values. + * + * @example + * 1 - res = Rx.Observable.if(condition, obs1); + * 2 - res = Rx.Observable.if(condition, obs1, obs2); + * 3 - res = Rx.Observable.if(condition, obs1, scheduler); + * @param {Function} condition The condition which determines if the thenSource or elseSource will be run. + * @param {Observable} thenSource The observable sequence or Promise that will be run if the condition function returns true. + * @param {Observable} [elseSource] The observable sequence or Promise that will be run if the condition function returns false. If this is not provided, it defaults to Rx.Observabe.Empty with the specified scheduler. + * @returns {Observable} An observable sequence which is either the thenSource or elseSource. + */ + if(condition: () => boolean, thenSource: ObservableOrPromise, elseSourceOrScheduler?: ObservableOrPromise | IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Concatenates the observable sequences obtained by running the specified result selector for each element in source. + * There is an alias for this method called 'forIn' for browsers (sources: T[], resultSelector: _Selector, thisArg?: any): Observable; + /** + * Concatenates the observable sequences obtained by running the specified result selector for each element in source. + * There is an alias for this method called 'forIn' for browsers (sources: T[], resultSelector: _Selector, thisArg?: any): Observable; + } + + export interface ObservableStatic { + /** + * Repeats source as long as condition holds emulating a while loop. + * There is an alias for this method called 'whileDo' for browsers (condition: () => boolean, source: ObservableOrPromise): Observable; + /** + * Repeats source as long as condition holds emulating a while loop. + * There is an alias for this method called 'whileDo' for browsers (condition: () => boolean, source: ObservableOrPromise): Observable; + } + + export interface Observable { + /** + * Repeats source as long as condition holds emulating a do while loop. + * + * @param {Function} condition The condition which determines if the source will be repeated. + * @param {Observable} source The observable sequence that will be run if the condition function returns true. + * @returns {Observable} An observable sequence which is repeated as long as the condition holds. + */ + doWhile(condition: () => boolean): Observable; + } + + export interface ObservableStatic { + /** + * Uses selector to determine which source in sources to use. + * @param {Function} selector The function which extracts the value for to test in a case statement. + * @param {Array} sources A object which has keys which correspond to the case statement labels. + * @param {Observable} [elseSource] The observable sequence or Promise that will be run if the sources are not matched. If this is not provided, it defaults to Rx.Observabe.empty with the specified scheduler. + * + * @returns {Observable} An observable sequence which is determined by a case statement. + */ + case(selector: () => string, sources: { [key: string]: ObservableOrPromise; }, schedulerOrElseSource?: IScheduler | ObservableOrPromise): Observable; + /** + * Uses selector to determine which source in sources to use. + * @param {Function} selector The function which extracts the value for to test in a case statement. + * @param {Array} sources A object which has keys which correspond to the case statement labels. + * @param {Observable} [elseSource] The observable sequence or Promise that will be run if the sources are not matched. If this is not provided, it defaults to Rx.Observabe.empty with the specified scheduler. + * + * @returns {Observable} An observable sequence which is determined by a case statement. + */ + case(selector: () => number, sources: { [key: number]: ObservableOrPromise; }, schedulerOrElseSource?: IScheduler | ObservableOrPromise): Observable; + } + + export interface Observable { + /** + * Expands an observable sequence by recursively invoking selector. + * + * @param {Function} selector Selector function to invoke for each produced element, resulting in another sequence to which the selector will be invoked recursively again. + * @param {Scheduler} [scheduler] Scheduler on which to perform the expansion. If not provided, this defaults to the current thread scheduler. + * @returns {Observable} An observable sequence containing all the elements produced by the recursive expansion. + */ + expand(selector: (item: T) => Observable, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Runs all observable sequences in parallel and collect their last elements. + * + * @example + * 1 - res = Rx.Observable.forkJoin([obs1, obs2]); + * 1 - res = Rx.Observable.forkJoin(obs1, obs2, ...); + * @returns {Observable} An observable sequence with an array collecting the last elements of all the input sequences. + */ + forkJoin(sources: ObservableOrPromise[]): Observable; + + /** + * Runs all observable sequences in parallel and collect their last elements. + * + * @example + * 1 - res = Rx.Observable.forkJoin([obs1, obs2]); + * 1 - res = Rx.Observable.forkJoin(obs1, obs2, ...); + * @returns {Observable} An observable sequence with an array collecting the last elements of all the input sequences. + */ + forkJoin(...args: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Runs two observable sequences in parallel and combines their last elemenets. + * + * @param {Observable} second Second observable sequence. + * @param {Function} resultSelector Result selector function to invoke with the last elements of both sequences. + * @returns {Observable} An observable sequence with the result of calling the selector function with the last elements of both input sequences. + */ + forkJoin(second: ObservableOrPromise, resultSelector: (left: T, right: TSecond) => TResult): Observable; + } + + export interface Observable { + /** + * Comonadic bind operator. + * @param {Function} selector A transform function to apply to each element. + * @param {Object} scheduler Scheduler used to execute the operation. If not specified, defaults to the ImmediateScheduler. + * @returns {Observable} An observable sequence which results from the comonadic bind operation. + */ + manySelect(selector: _Selector, TResult>, scheduler?: IScheduler): Observable; + /** + * Comonadic bind operator. + * @param {Function} selector A transform function to apply to each element. + * @param {Object} scheduler Scheduler used to execute the operation. If not specified, defaults to the ImmediateScheduler. + * @returns {Observable} An observable sequence which results from the comonadic bind operation. + */ + extend(selector: _Selector, TResult>, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Performs a exclusive waiting for the first to finish before subscribing to another observable. + * Observables that come in between subscriptions will be dropped on the floor. + * @returns {Observable} A exclusive observable with only the results that happen when subscribed. + */ + switchFirst(): T; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + selectSwitchFirst(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + selectSwitchFirst(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + selectSwitchFirst(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + selectSwitchFirst(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + flatMapFirst(selector: _ValueOrSelector>): Observable; + + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + flatMapFirst(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + flatMapFirst(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence which performs a exclusive waiting for the first to finish before subscribing to another observable. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time performs a exclusive waiting for the first to finish before subscribing to another observable. + */ + flatMapFirst(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + } + + export interface Observable { + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectManyWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectManyWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectManyWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectManyWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMapWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>): Observable; + + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMapWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMapWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.flatMapWithMaxConcurrent(5, Rx.Observable.fromArray([1,2,3])); + * @param selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMapWithMaxConcurrent(maxConcurrent: number, selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + } + +} +declare module "rx.experimental" { export = Rx; } diff --git a/node_modules/rx/ts/rx.joinpatterns.d.ts b/node_modules/rx/ts/rx.joinpatterns.d.ts new file mode 100644 index 0000000..78b1f99 --- /dev/null +++ b/node_modules/rx/ts/rx.joinpatterns.d.ts @@ -0,0 +1,143 @@ +declare module Rx { + + export class Plan { } + + export interface Pattern2 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern3; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2) => TR): Plan; + } + interface Pattern3 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern4; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3) => TR): Plan; + } + interface Pattern4 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern5; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3, item4: T4) => TR): Plan; + } + interface Pattern5 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern6; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5) => TR): Plan; + } + interface Pattern6 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern7; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6) => TR): Plan; + } + interface Pattern7 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern8; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7) => TR): Plan; + } + interface Pattern8 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern9; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7, item8: T8) => TR): Plan; + } + interface Pattern9 { + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7, item8: T8, item9: T9) => TR): Plan; + } + + export interface Observable { + /** + * Creates a pattern that matches when both observable sequences have an available value. + * + * @param right Observable sequence to match with the current sequence. + * @return {Pattern} Pattern object that matches when both observable sequences have an available value. + */ + and(right: Observable): Pattern2; + } + + export interface Observable { + /** + * Matches when the observable sequence has an available value and projects the value. + * + * @param {Function} selector Selector that will be invoked for values in the source sequence. + * @returns {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T) => TR): Plan; + } + + export interface ObservableStatic { + /** + * Joins together the results from several patterns. + * + * @param plans A series of plans (specified as an Array of as a series of arguments) created by use of the Then operator on patterns. + * @returns {Observable} Observable sequence with the results form matching several patterns. + */ + when(plan: Plan): Observable; + } + +} +declare module "rx.joinpatterns" { export = Rx; } diff --git a/node_modules/rx/ts/rx.joinpatterns.es6.d.ts b/node_modules/rx/ts/rx.joinpatterns.es6.d.ts new file mode 100644 index 0000000..78b1f99 --- /dev/null +++ b/node_modules/rx/ts/rx.joinpatterns.es6.d.ts @@ -0,0 +1,143 @@ +declare module Rx { + + export class Plan { } + + export interface Pattern2 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern3; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2) => TR): Plan; + } + interface Pattern3 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern4; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3) => TR): Plan; + } + interface Pattern4 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern5; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3, item4: T4) => TR): Plan; + } + interface Pattern5 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern6; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5) => TR): Plan; + } + interface Pattern6 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern7; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6) => TR): Plan; + } + interface Pattern7 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern8; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7) => TR): Plan; + } + interface Pattern8 { + /** + * Creates a pattern that matches the current plan matches and when the specified observable sequences has an available value. + * @param other Observable sequence to match in addition to the current pattern. + * @return {Pattern} Pattern object that matches when all observable sequences in the pattern have an available value. + */ + and(other: Observable): Pattern9; + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7, item8: T8) => TR): Plan; + } + interface Pattern9 { + /** + * Matches when all observable sequences in the pattern (specified using a chain of and operators) have an available value and projects the values. + * @param {Function} selector Selector that will be invoked with available values from the source sequences, in the same order of the sequences in the pattern. + * @return {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7, item8: T8, item9: T9) => TR): Plan; + } + + export interface Observable { + /** + * Creates a pattern that matches when both observable sequences have an available value. + * + * @param right Observable sequence to match with the current sequence. + * @return {Pattern} Pattern object that matches when both observable sequences have an available value. + */ + and(right: Observable): Pattern2; + } + + export interface Observable { + /** + * Matches when the observable sequence has an available value and projects the value. + * + * @param {Function} selector Selector that will be invoked for values in the source sequence. + * @returns {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator. + */ + thenDo(selector: (item1: T) => TR): Plan; + } + + export interface ObservableStatic { + /** + * Joins together the results from several patterns. + * + * @param plans A series of plans (specified as an Array of as a series of arguments) created by use of the Then operator on patterns. + * @returns {Observable} Observable sequence with the results form matching several patterns. + */ + when(plan: Plan): Observable; + } + +} +declare module "rx.joinpatterns" { export = Rx; } diff --git a/node_modules/rx/ts/rx.lite.d.ts b/node_modules/rx/ts/rx.lite.d.ts new file mode 100644 index 0000000..80175b7 --- /dev/null +++ b/node_modules/rx/ts/rx.lite.d.ts @@ -0,0 +1,3061 @@ +declare module Rx { + + // Type alias for observables and promises + export type ObservableOrPromise = IObservable | Observable | Promise; + + export type ArrayLike = Array | { length: number;[index: number]: T; }; + + // Type alias for arrays and array like objects + export type ArrayOrIterable = ArrayLike; + + /** + * Promise A+ + */ + export interface Promise { + then(onFulfilled: (value: T) => R|Promise, onRejected: (error: any) => Promise): Promise; + then(onFulfilled: (value: T) => R|Promise, onRejected?: (error: any) => R): Promise; + } + + /** + * Promise A+ + */ + export interface IPromise extends Promise { } + + /** + * Represents a push-style collection. + */ + export interface IObservable { } + + /** + * Represents a push-style collection. + */ + export interface Observable extends IObservable { } + + export module internals { + export interface EmptyError extends Error { message: string; } + export interface EmptyErrorStatic { new (): EmptyError; } + + export interface ObjectDisposedError extends Error { message: string; } + export interface ObjectDisposedErrorStatic { new (): ObjectDisposedError; } + + export interface ArgumentOutOfRangeError extends Error { message: string; } + export interface ArgumentOutOfRangeErrorStatic { new (): ArgumentOutOfRangeError; } + + export interface NotSupportedError extends Error { message: string; } + export interface NotSupportedErrorStatic { new (): NotSupportedError; } + + export interface NotImplementedError extends Error { message: string; } + export interface NotImplementedErrorStatic { new (): NotImplementedError; } + } + + export module helpers { + export var notImplemented: () => internals.NotImplementedError; + export var notSupported: () => internals.NotSupportedError; + } + + export module internals { + export var bindCallback: (func: Function, thisArg: any, argCount: number) => Function; + } + + export module internals { + export var isEqual : (left: any, right: any) => boolean; + } + + export interface IDisposable { + dispose(): void; + } + + export interface Disposable extends IDisposable { + /** Is this value disposed. */ + isDisposed?: boolean; + } + + interface DisposableStatic { + /** + * Provides a set of static methods for creating Disposables. + * @param {Function} dispose Action to run during the first call to dispose. The action is guaranteed to be run at most once. + */ + new (action: () => void): Disposable; + + /** + * Creates a disposable object that invokes the specified action when disposed. + * @param {Function} dispose Action to run during the first call to dispose. The action is guaranteed to be run at most once. + * @return {Disposable} The disposable object that runs the given action upon disposal. + */ + create(action: () => void): Disposable; + + /** + * Gets the disposable that does nothing when disposed. + */ + empty: IDisposable; + + /** + * Validates whether the given object is a disposable + * @param {Object} Object to test whether it has a dispose method + * @returns {Boolean} true if a disposable object, else false. + */ + isDisposable(d: any): boolean; + } + + /** + * Provides a set of static methods for creating Disposables. + * @param {Function} dispose Action to run during the first call to dispose. The action is guaranteed to be run at most once. + */ + export var Disposable: DisposableStatic; + + export module config { + export var Promise: { new (resolver: (resolvePromise: (value: T) => void, rejectPromise: (reason: any) => void) => void): IPromise; }; + } + + export module helpers { + export var noop: () => void; + export var notDefined: (value: any) => boolean; + export var identity: (value: T) => T; + export var defaultNow: () => number; + export var defaultComparer: (left: any, right: any) => boolean; + export var defaultSubComparer: (left: any, right: any) => number; + export var defaultKeySerializer: (key: any) => string; + export var defaultError: (err: any) => void; + export var isPromise: (p: any) => boolean; + export var asArray: (...args: T[]) => T[]; + export var not: (value: any) => boolean; + export var isFunction: (value: any) => boolean; + } + + export type _Selector = (value: T, index: number, observable: Observable) => TResult; + export type _ValueOrSelector = TResult | _Selector; + export type _Predicate = _Selector; + export type _Comparer = (value1: T, value2: T) => TResult; + export type _Accumulator = (acc: TAcc, value: T) => TAcc; + + export module special { + export type _FlatMapResultSelector = (value: T1, selectorValue: T2, index: number, selectorOther: number) => TResult; + } + + export interface IObservable { + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(observer: IObserver): IDisposable; + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): IDisposable; + } + + export interface Observable { + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(observer: IObserver): IDisposable; + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): IDisposable; + + /** + * Subscribes to the next value in the sequence with an optional "this" argument. + * @param {Function} onNext The function to invoke on each element in the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Disposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribeOnNext(onNext: (value: T) => void, thisArg?: any): IDisposable; + /** + * Subscribes to an exceptional condition in the sequence with an optional "this" argument. + * @param {Function} onError The function to invoke upon exceptional termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Disposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribeOnError(onError: (exception: any) => void, thisArg?: any): IDisposable; + /** + * Subscribes to the next value in the sequence with an optional "this" argument. + * @param {Function} onCompleted The function to invoke upon graceful termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Disposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribeOnCompleted(onCompleted: () => void, thisArg?: any): IDisposable; + + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + forEach(observer: IObserver): IDisposable; + + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + forEach(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): IDisposable; + } + + export interface ObservableStatic { + /** + * Determines whether the given object is an Observable + * @param {Any} An object to determine whether it is an Observable + * @returns {Boolean} true if an Observable, else false. + */ + isObservable(o: any): boolean; + } + + export var Observable: ObservableStatic; + + export module internals { + export var inherits: (child: any, parent: any) => void; + export var addProperties: (obj: any, ...sources: any[]) => void; + export var addRef: (xs: Observable, r: { getDisposable(): IDisposable; }) => Observable; + } + + /** + * Represents a group of disposable resources that are disposed together. + * @constructor + */ + export interface CompositeDisposable extends Disposable { + /** + * Adds a disposable to the CompositeDisposable or disposes the disposable if the CompositeDisposable is disposed. + * @param {Mixed} item Disposable to add. + */ + add(item: IDisposable): void; + + /** + * Removes and disposes the first occurrence of a disposable from the CompositeDisposable. + * @param {Mixed} item Disposable to remove. + * @returns {Boolean} true if found; false otherwise. + */ + remove(item: IDisposable): void; + } + + interface CompositeDisposableStatic { + /** + * Represents a group of disposable resources that are disposed together. + * @constructor + */ + new (...disposables: Rx.IDisposable[]): CompositeDisposable; + /** + * Represents a group of disposable resources that are disposed together. + * @constructor + */ + new(disposables: Rx.IDisposable[]): CompositeDisposable; + } + + export var CompositeDisposable: CompositeDisposableStatic; + + export interface SingleAssignmentDisposable { + /** Performs the task of cleaning up resources. */ + dispose(): void; + + /** Is this value disposed. */ + isDisposed: boolean; + + getDisposable(): IDisposable; + + setDisposable(value: IDisposable): void; + } + + interface SingleAssignmentDisposableStatic { + new() : SingleAssignmentDisposable; + } + + export var SingleAssignmentDisposable : SingleAssignmentDisposableStatic; + + export interface SerialDisposable { + /** Performs the task of cleaning up resources. */ + dispose(): void; + + /** Is this value disposed. */ + isDisposed: boolean; + + getDisposable(): IDisposable; + + setDisposable(value: IDisposable): void; + } + + interface SerialDisposableStatic { + new() : SerialDisposable; + } + + export var SerialDisposable : SerialDisposableStatic; + + /** + * Represents a disposable resource that only disposes its underlying disposable resource when all dependent disposable objects have been disposed. + */ + export interface RefCountDisposable extends Disposable { + + /** Performs the task of cleaning up resources. */ + dispose(): void; + + /** Is this value disposed. */ + isDisposed: boolean; + + /** + * Returns a dependent disposable that when disposed decreases the refcount on the underlying disposable. + * @returns {Disposable} A dependent disposable contributing to the reference count that manages the underlying disposable's lifetime. + */ + getDisposable(): IDisposable; + } + + interface RefCountDisposableStatic { + /** + * Initializes a new instance of the RefCountDisposable with the specified disposable. + * @constructor + * @param {Disposable} disposable Underlying disposable. + */ + new(disposable: IDisposable): RefCountDisposable; + } + + export var RefCountDisposable : RefCountDisposableStatic; + + export interface IScheduler { + /** Gets the current time according to the local machine's system clock. */ + now(): number; + + /** + * Schedules an action to be executed. + * @param state State passed to the action to be executed. + * @param {Function} action Action to be executed. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + schedule(state: TState, action: (scheduler: IScheduler, state: TState) => IDisposable): IDisposable; + + /** + * Schedules an action to be executed after dueTime. + * @param state State passed to the action to be executed. + * @param {Function} action Action to be executed. + * @param {Number} dueTime Relative time after which to execute the action. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + scheduleFuture(state: TState, dueTime: number | Date, action: (scheduler: IScheduler, state: TState) => IDisposable): IDisposable; + } + + export interface SchedulerStatic { + /** Gets the current time according to the local machine's system clock. */ + now(): number; + + /** + * Normalizes the specified TimeSpan value to a positive value. + * @param {Number} timeSpan The time span value to normalize. + * @returns {Number} The specified TimeSpan value if it is zero or positive; otherwise, 0 + */ + normalize(timeSpan: number): number; + + /** Determines whether the given object is a scheduler */ + isScheduler(s: any): boolean; + } + + /** Provides a set of static properties to access commonly used schedulers. */ + export var Scheduler: SchedulerStatic; + + export module internals { + export interface ScheduledItem { + scheduler: IScheduler; + state: TTime; + action: (scheduler: IScheduler, state: any) => IDisposable; + dueTime: TTime; + comparer: (x: TTime, y: TTime) => number; + disposable: SingleAssignmentDisposable; + + invoke(): void; + compareTo(other: ScheduledItem): number; + isCancelled(): boolean; + invokeCore(): IDisposable; + } + + interface ScheduledItemStatic { + new (scheduler: IScheduler, state: any, action: (scheduler: IScheduler, state: any) => IDisposable, dueTime: TTime, comparer?: _Comparer):ScheduledItem; + } + + export var ScheduledItem: ScheduledItemStatic + } + + export interface IScheduler { + /** + * Schedules an action to be executed recursively. + * @param {Mixed} state State passed to the action to be executed. + * @param {Function} action Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in recursive invocation state. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + scheduleRecursive(state: TState, action: (state: TState, action: (state: TState) => void) => void): IDisposable; + + /** + * Schedules an action to be executed recursively after a specified relative due time. + * @param {Mixed} state State passed to the action to be executed. + * @param {Function} action Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in the recursive due time and invocation state. + * @param {Number}dueTime Relative time after which to execute the action for the first time. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + scheduleRecursiveFuture(state: TState, dueTime: TTime, action: (state: TState, action: (state: TState, dueTime: TTime) => void) => void): IDisposable; + } + + export interface IScheduler { + /** + * Schedules a periodic piece of work by dynamically discovering the scheduler's capabilities. The periodic task will be scheduled using window.setInterval for the base implementation. + * @param {Mixed} state Initial state passed to the action upon the first iteration. + * @param {Number} period Period for running the work periodically. + * @param {Function} action Action to be executed, potentially updating the state. + * @returns {Disposable} The disposable object used to cancel the scheduled recurring action (best effort). + */ + schedulePeriodic(state: TState, period: number, action: (state: TState) => TState): IDisposable; + } + + export interface SchedulerStatic { + immediate: IScheduler; + } + + export interface ICurrentThreadScheduler extends IScheduler { + scheduleRequired(): boolean; + } + + export interface SchedulerStatic { + currentThread: ICurrentThreadScheduler; + } + + export module internals { + export interface SchedulePeriodicRecursive { + start(): IDisposable; + } + + interface SchedulePeriodicRecursiveStatic { + new (scheduler: any, state: any, period: any, action: any) : SchedulePeriodicRecursive; + } + + export var SchedulePeriodicRecursive: SchedulePeriodicRecursiveStatic; + } + + export interface SchedulerStatic { + default: IScheduler; + async: IScheduler; + } + + export module internals { + // Priority Queue for Scheduling + export interface PriorityQueue { + length: number; + + isHigherPriority(left: number, right: number): boolean; + percolate(index: number): void; + heapify(index: number): void; + peek(): ScheduledItem; + removeAt(index: number): void; + dequeue(): ScheduledItem; + enqueue(item: ScheduledItem): void; + remove(item: ScheduledItem): boolean; + } + + interface PriorityQueueStatic { + new (capacity: number) : PriorityQueue; + count: number; + } + + export var PriorityQueue : PriorityQueueStatic; + } + + /** + * Supports push-style iteration over an observable sequence. + */ + export interface IObserver { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + } + + export interface Observer { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + } + + export interface ObserverStatic { + /** + * Creates an observer from the specified OnNext, along with optional OnError, and OnCompleted actions. + * @param {Function} [onNext] Observer's OnNext action implementation. + * @param {Function} [onError] Observer's OnError action implementation. + * @param {Function} [onCompleted] Observer's OnCompleted action implementation. + * @returns {Observer} The observer object implemented using the given actions. + */ + create(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): Observer; + } + + /** + * Supports push-style iteration over an observable sequence. + */ + export var Observer: ObserverStatic; + + /** + * Represents a notification to an observer. + */ + export interface Notification { + /** + * Invokes the delegate corresponding to the notification or the observer's method corresponding to the notification and returns the produced result. + * + * @memberOf Notification + * @param {Any} observerOrOnNext Delegate to invoke for an OnNext notification or Observer to invoke the notification on.. + * @param {Function} onError Delegate to invoke for an OnError notification. + * @param {Function} onCompleted Delegate to invoke for an OnCompleted notification. + * @returns {Any} Result produced by the observation. + */ + accept(observer: IObserver): void; + /** + * Invokes the delegate corresponding to the notification or the observer's method corresponding to the notification and returns the produced result. + * + * @memberOf Notification + * @param {Any} observerOrOnNext Delegate to invoke for an OnNext notification or Observer to invoke the notification on.. + * @param {Function} onError Delegate to invoke for an OnError notification. + * @param {Function} onCompleted Delegate to invoke for an OnCompleted notification. + * @returns {Any} Result produced by the observation. + */ + accept(onNext: (value: T) => TResult, onError: (exception: any) => TResult, onCompleted: () => TResult): TResult; + + /** + * Returns an observable sequence with a single notification. + * + * @memberOf Notifications + * @param {Scheduler} [scheduler] Scheduler to send out the notification calls on. + * @returns {Observable} The observable sequence that surfaces the behavior of the notification upon subscription. + */ + toObservable(scheduler?: IScheduler): Observable; + + hasValue: boolean; + equals(other: Notification): boolean; + kind: string; + value: T; + error: any; + } + + interface NotificationStatic { + new (kind: any, value: any, exception: any, accept: any, acceptObservable: any, toString: any) : Notification; + + /** + * Creates an object that represents an OnNext notification to an observer. + * @param {Any} value The value contained in the notification. + * @returns {Notification} The OnNext notification containing the value. + */ + createOnNext(value: T): Notification; + /** + * Creates an object that represents an OnError notification to an observer. + * @param {Any} error The exception contained in the notification. + * @returns {Notification} The OnError notification containing the exception. + */ + createOnError(exception: any): Notification; + /** + * Creates an object that represents an OnCompleted notification to an observer. + * @returns {Notification} The OnCompleted notification. + */ + createOnCompleted(): Notification; + } + + export var Notification : NotificationStatic; + + export module internals { + /** + * Abstract base class for implementations of the Observer class. + * This base class enforces the grammar of observers where OnError and OnCompleted are terminal messages. + */ + export interface AbstractObserver extends Rx.IObserver, Rx.IDisposable { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + + isStopped: boolean; + + /** + * Disposes the observer, causing it to transition to the stopped state. + */ + dispose(): void; + + fail(e: any): boolean; + + // Must be implemented by other observers + next(value: T): void; + error(error: any): void; + completed(): void; + } + + interface AbstractObserverStatic { + new (): AbstractObserver; + } + + export var AbstractObserver: AbstractObserverStatic + } + + /** + * Class to create an Observer instance from delegate-based implementations of the on* methods. + */ + export interface AnonymousObserver extends Observer { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + } + + interface AnonymousObserverStatic { + /** + * Creates an observer from the specified OnNext, OnError, and OnCompleted actions. + * @param {Any} onNext Observer's OnNext action implementation. + * @param {Any} onError Observer's OnError action implementation. + * @param {Any} onCompleted Observer's OnCompleted action implementation. + */ + new (onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): AnonymousObserver; + } + + export var AnonymousObserver : AnonymousObserverStatic; + + export module internals { + export interface ScheduledObserver extends Observer { + ensureActive(): void; + } + } + + export interface Observable { + /** + * Creates an array from an observable sequence. + * @returns {Observable} An observable sequence containing a single element with a list containing all the elements of the source sequence. + */ + toArray(): Observable; + } + + export interface ObservableStatic { + /** + * Creates an observable sequence from a specified subscribe method implementation. + * @example + * var res = Rx.Observable.create(function (observer) { return function () { } ); + * var res = Rx.Observable.create(function (observer) { return Rx.Disposable.empty; } ); + * var res = Rx.Observable.create(function (observer) { } ); + * @param {Function} subscribe Implementation of the resulting observable sequence's subscribe method, returning a function that will be wrapped in a Disposable. + * @returns {Observable} The observable sequence with the specified implementation for the Subscribe method. + */ + create(subscribe: (observer: Observer) => IDisposable | Function | void): Observable; + } + + export interface ObservableStatic { + /** + * Returns an observable sequence that invokes the specified factory function whenever a new observer subscribes. + * + * @example + * var res = Rx.Observable.defer(function () { return Rx.Observable.fromArray([1,2,3]); }); + * @param {Function} observableFactory Observable factory function to invoke for each observer that subscribes to the resulting sequence or Promise. + * @returns {Observable} An observable sequence whose observers trigger an invocation of the given observable factory function. + */ + defer(observableFactory: () => ObservableOrPromise): Observable; + } + + export interface ObservableStatic { + /** + * Returns an empty observable sequence, using the specified scheduler to send out the single OnCompleted message. + * + * @example + * var res = Rx.Observable.empty(); + * var res = Rx.Observable.empty(Rx.Scheduler.timeout); + * @param {Scheduler} [scheduler] Scheduler to send the termination call on. + * @returns {Observable} An observable sequence with no elements. + */ + empty(scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * This method creates a new Observable sequence from an array-like or iterable object. + * @param {Any} arrayLike An array-like or iterable object to convert to an Observable sequence. + * @param {Function} [mapFn] Map function to call on every element of the array. + * @param {Any} [thisArg] The context to use calling the mapFn if provided. + * @param {Scheduler} [scheduler] Optional scheduler to use for scheduling. If not provided, defaults to Scheduler.currentThread. + */ + from(array: ArrayOrIterable): Observable; + /** + * This method creates a new Observable sequence from an array-like or iterable object. + * @param {Any} arrayLike An array-like or iterable object to convert to an Observable sequence. + * @param {Function} [mapFn] Map function to call on every element of the array. + * @param {Any} [thisArg] The context to use calling the mapFn if provided. + * @param {Scheduler} [scheduler] Optional scheduler to use for scheduling. If not provided, defaults to Scheduler.currentThread. + */ + from(array: ArrayOrIterable, mapFn: (value: T, index: number) => TResult, thisArg?: any, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Converts an array to an observable sequence, using an optional scheduler to enumerate the array. + * @deprecated use Observable.from or Observable.of + * @param {Scheduler} [scheduler] Scheduler to run the enumeration of the input sequence on. + * @returns {Observable} The observable sequence whose elements are pulled from the given enumerable sequence. + */ + fromArray(array: ArrayLike, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins). + * @returns {Observable} An observable sequence whose observers will never get called. + */ + never(): Observable; + } + + export interface ObservableStatic { + /** + * This method creates a new Observable instance with a variable number of arguments, regardless of number or type of the arguments. + * @returns {Observable} The observable sequence whose elements are pulled from the given arguments. + */ + of(...values: T[]): Observable; + + /** + * This method creates a new Observable instance with a variable number of arguments, regardless of number or type of the arguments. + * @param {Scheduler} scheduler A scheduler to use for scheduling the arguments. + * @returns {Observable} The observable sequence whose elements are pulled from the given arguments. + */ + ofWithScheduler(scheduler?: IScheduler, ...values: T[]): Observable; + } + + export interface ObservableStatic { + /** + * Convert an object into an observable sequence of [key, value] pairs. + * @param {Object} obj The object to inspect. + * @param {Scheduler} [scheduler] Scheduler to run the enumeration of the input sequence on. + * @returns {Observable} An observable sequence of [key, value] pairs from the object. + */ + pairs(obj: { [key: string]: T }, scheduler?: IScheduler): Observable<[string, T]>; + /** + * Convert an object into an observable sequence of [key, value] pairs. + * @param {Object} obj The object to inspect. + * @param {Scheduler} [scheduler] Scheduler to run the enumeration of the input sequence on. + * @returns {Observable} An observable sequence of [key, value] pairs from the object. + */ + pairs(obj: { [key: number]: T }, scheduler?: IScheduler): Observable<[number, T]>; + } + + export interface ObservableStatic { + /** + * Generates an observable sequence of integral numbers within a specified range, using the specified scheduler to send out observer messages. + * + * @example + * var res = Rx.Observable.range(0, 10); + * var res = Rx.Observable.range(0, 10, Rx.Scheduler.timeout); + * @param {Number} start The value of the first integer in the sequence. + * @param {Number} count The number of sequential integers to generate. + * @param {Scheduler} [scheduler] Scheduler to run the generator loop on. If not specified, defaults to Scheduler.currentThread. + * @returns {Observable} An observable sequence that contains a range of sequential integral numbers. + */ + range(start: number, count: number, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Generates an observable sequence that repeats the given element the specified number of times, using the specified scheduler to send out observer messages. + * + * @example + * var res = Rx.Observable.repeat(42); + * var res = Rx.Observable.repeat(42, 4); + * 3 - res = Rx.Observable.repeat(42, 4, Rx.Scheduler.timeout); + * 4 - res = Rx.Observable.repeat(42, null, Rx.Scheduler.timeout); + * @param {Mixed} value Element to repeat. + * @param {Number} repeatCount [Optiona] Number of times to repeat the element. If not specified, repeats indefinitely. + * @param {Scheduler} scheduler Scheduler to run the producer loop on. If not specified, defaults to Scheduler.immediate. + * @returns {Observable} An observable sequence that repeats the given element the specified number of times. + */ + repeat(value: T, repeatCount?: number | void, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages. + * There is an alias called 'just' or browsers (value: T, scheduler?: IScheduler): Observable; + /** + * Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages. + * There is an alias called 'just' or browsers (value: T, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single onError message. + * @param {Mixed} error An object used for the sequence's termination. + * @param {Scheduler} scheduler Scheduler to send the exceptional termination call on. If not specified, defaults to Scheduler.immediate. + * @returns {Observable} The observable sequence that terminates exceptionally with the specified exception object. + */ + throw(exception: Error, scheduler?: IScheduler): Observable; + /** + * Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single onError message. + * @param {Mixed} error An object used for the sequence's termination. + * @param {Scheduler} scheduler Scheduler to send the exceptional termination call on. If not specified, defaults to Scheduler.immediate. + * @returns {Observable} The observable sequence that terminates exceptionally with the specified exception object. + */ + throw(exception: any, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Continues an observable sequence that is terminated by an exception with the next observable sequence. + * @param {Mixed} handlerOrSecond Exception handler function that returns an observable sequence given the error that occurred in the first sequence, or a second observable sequence used to produce results when an error occurred in the first sequence. + * @returns {Observable} An observable sequence containing the first sequence's elements, followed by the elements of the handler sequence in case an exception occurred. + */ + catch(handler: (exception: any) => ObservableOrPromise): Observable; + /** + * Continues an observable sequence that is terminated by an exception with the next observable sequence. + * @param {Mixed} handlerOrSecond Exception handler function that returns an observable sequence given the error that occurred in the first sequence, or a second observable sequence used to produce results when an error occurred in the first sequence. + * @returns {Observable} An observable sequence containing the first sequence's elements, followed by the elements of the handler sequence in case an exception occurred. + */ + catch(second: ObservableOrPromise): Observable; + } + + export interface ObservableStatic { + /** + * Continues an observable sequence that is terminated by an exception with the next observable sequence. + * @param {Array | Arguments} args Arguments or an array to use as the next sequence if an error occurs. + * @returns {Observable} An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + */ + catch(sources: ObservableOrPromise[]): Observable; + /** + * Continues an observable sequence that is terminated by an exception with the next observable sequence. + * @param {Array | Arguments} args Arguments or an array to use as the next sequence if an error occurs. + * @returns {Observable} An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + */ + catch(...sources: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, resultSelector: (v1: T, v2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, ninth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8, v9: T9) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(souces: ObservableOrPromise[], resultSelector: (firstValue: T, ...otherValues: TOther[]) => TResult): Observable; + } + + export interface ObservableStatic { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, resultSelector: (v1: T, v2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, eventh: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, ninth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8, v9: T9) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(souces: ObservableOrPromise[], resultSelector: (...otherValues: TOther[]) => TResult): Observable; + } + + export interface Observable { + /** + * Concatenates all the observable sequences. This takes in either an array or variable arguments to concatenate. + * @returns {Observable} An observable sequence that contains the elements of each given sequence, in sequential order. + */ + concat(...sources: ObservableOrPromise[]): Observable; + } + + export interface ObservableStatic { + /** + * Concatenates all the observable sequences. + * @param {Array | Arguments} args Arguments or an array to concat to the observable sequence. + * @returns {Observable} An observable sequence that contains the elements of each given sequence, in sequential order. + */ + concat(...sources: ObservableOrPromise[]): Observable; + /** + * Concatenates all the observable sequences. + * @param {Array | Arguments} args Arguments or an array to concat to the observable sequence. + * @returns {Observable} An observable sequence that contains the elements of each given sequence, in sequential order. + */ + concat(sources: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Concatenates an observable sequence of observable sequences. + * @returns {Observable} An observable sequence that contains the elements of each observed inner sequence, in sequential order. + */ + concatAll(): T; + } + + export interface Observable { + /** + * Merges an observable sequence of observable sequences into an observable sequence, limiting the number of concurrent subscriptions to inner sequences. + * Or merges two observable sequences into a single observable sequence. + * + * @example + * 1 - merged = sources.merge(1); + * 2 - merged = source.merge(otherSource); + * @param {Mixed} [maxConcurrentOrOther] Maximum number of inner observable sequences being subscribed to concurrently or the second observable sequence. + * @returns {Observable} The observable sequence that merges the elements of the inner sequences. + */ + merge(maxConcurrent: number): T; + /** + * Merges an observable sequence of observable sequences into an observable sequence, limiting the number of concurrent subscriptions to inner sequences. + * Or merges two observable sequences into a single observable sequence. + * + * @example + * 1 - merged = sources.merge(1); + * 2 - merged = source.merge(otherSource); + * @param {Mixed} [maxConcurrentOrOther] Maximum number of inner observable sequences being subscribed to concurrently or the second observable sequence. + * @returns {Observable} The observable sequence that merges the elements of the inner sequences. + */ + merge(other: ObservableOrPromise): Observable; + } + + export interface ObservableStatic { + /** + * Merges all the observable sequences into a single observable sequence. + * The scheduler is optional and if not specified, the immediate scheduler is used. + * @returns {Observable} The observable sequence that merges the elements of the observable sequences. + */ + merge(...sources: ObservableOrPromise[]): Observable; + /** + * Merges all the observable sequences into a single observable sequence. + * The scheduler is optional and if not specified, the immediate scheduler is used. + * @returns {Observable} The observable sequence that merges the elements of the observable sequences. + */ + merge(sources: ObservableOrPromise[]): Observable; + /** + * Merges all the observable sequences into a single observable sequence. + * The scheduler is optional and if not specified, the immediate scheduler is used. + * @returns {Observable} The observable sequence that merges the elements of the observable sequences. + */ + merge(scheduler: IScheduler, ...sources: ObservableOrPromise[]): Observable; + /** + * Merges all the observable sequences into a single observable sequence. + * The scheduler is optional and if not specified, the immediate scheduler is used. + * @returns {Observable} The observable sequence that merges the elements of the observable sequences. + */ + merge(scheduler: IScheduler, sources: ObservableOrPromise[]): Observable; + } + + export interface ObservableStatic { + /** + * Flattens an Observable that emits Observables into one Observable, in a way that allows an Observer to + * receive all successfully emitted items from all of the source Observables without being interrupted by + * an error notification from one of them. + * + * This behaves like Observable.prototype.mergeAll except that if any of the merged Observables notify of an + * error via the Observer's onError, mergeDelayError will refrain from propagating that + * error notification until all of the merged Observables have finished emitting items. + * @param {Array | Arguments} args Arguments or an array to merge. + * @returns {Observable} an Observable that emits all of the items emitted by the Observables emitted by the Observable + */ + mergeDelayError(...sources: ObservableOrPromise[]): Observable; + /** + * Flattens an Observable that emits Observables into one Observable, in a way that allows an Observer to + * receive all successfully emitted items from all of the source Observables without being interrupted by + * an error notification from one of them. + * + * This behaves like Observable.prototype.mergeAll except that if any of the merged Observables notify of an + * error via the Observer's onError, mergeDelayError will refrain from propagating that + * error notification until all of the merged Observables have finished emitting items. + * @param {Array | Arguments} args Arguments or an array to merge. + * @returns {Observable} an Observable that emits all of the items emitted by the Observables emitted by the Observable + */ + mergeDelayError(sources: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Merges an observable sequence of observable sequences into an observable sequence. + * @returns {Observable} The observable sequence that merges the elements of the inner sequences. + */ + mergeAll(): T; + } + + export interface Observable { + /** + * Returns the values from the source observable sequence only after the other observable sequence produces a value. + * @param {Observable | Promise} other The observable sequence or Promise that triggers propagation of elements of the source sequence. + * @returns {Observable} An observable sequence containing the elements of the source sequence starting from the point the other sequence triggered propagation. + */ + skipUntil(other: ObservableOrPromise): Observable; + } + + export interface Observable { + /** + * Transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @returns {Observable} The observable sequence that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + switch(): T; + /** + * Transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @returns {Observable} The observable sequence that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + switchLatest(): T; + } + + export interface Observable { + /** + * Returns the values from the source observable sequence until the other observable sequence produces a value. + * @param {Observable | Promise} other Observable sequence or Promise that terminates propagation of elements of the source sequence. + * @returns {Observable} An observable sequence containing the elements of the source sequence up to the point the other sequence interrupted further propagation. + */ + takeUntil(other: ObservableOrPromise): Observable; + } + + export interface Observable { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, resultSelector: (v1: T, v2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, ninth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8, v9: T9) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(souces: ObservableOrPromise[], resultSelector: (firstValue: T, ...otherValues: TOther[]) => TResult): Observable; + } + + export interface ObservableStatic { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(sources: ObservableOrPromise[], resultSelector?: (item1: T1, ...right: T2[]) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, ObservableOrPromise: Observable, resultSelector?: (item1: T1, item2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: Observable, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, source6: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, source6: ObservableOrPromise, source7: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, source6: ObservableOrPromise, source7: ObservableOrPromise, source8: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7, item8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, source6: ObservableOrPromise, source7: ObservableOrPromise, source8: ObservableOrPromise, source9: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7, item8: T8, item9: T9) => TResult): Observable; + } + + export interface Observable { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, resultSelector?: (v1: T, v2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, ninth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8, v9: T9) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(souces: ObservableOrPromise[], resultSelector?: (firstValue: T, ...otherValues: TOther[]) => TResult): Observable; + } + + export interface ObservableStatic { + /** + * Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + * @param arguments Observable sources. + * @returns {Observable} An observable sequence containing lists of elements at corresponding indexes. + */ + zipIterable(...sources: Observable[]): Observable; + /** + * Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + * @param arguments Observable sources. + * @returns {Observable} An observable sequence containing lists of elements at corresponding indexes. + */ + zipIterable(sources: Observable[]): Observable; + } + + export interface Observable { + /** + * Hides the identity of an observable sequence. + * @returns {Observable} An observable sequence that hides the identity of the source sequence. + */ + asObservable(): Observable; + } + + export interface Observable { + /** + * Dematerializes the explicit notification values of an observable sequence as implicit notifications. + * @returns {Observable} An observable sequence exhibiting the behavior corresponding to the source sequence's notification values. + */ + dematerialize(): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that contains only distinct contiguous elements according to the keySelector and the comparer. + * + * var obs = observable.distinctUntilChanged(); + * var obs = observable.distinctUntilChanged(function (x) { return x.id; }); + * var obs = observable.distinctUntilChanged(function (x) { return x.id; }, function (x, y) { return x === y; }); + * + * @param {Function} [keySelector] A function to compute the comparison key for each element. If not provided, it projects the value. + * @param {Function} [comparer] Equality comparer for computed key values. If not provided, defaults to an equality comparer function. + * @returns {Observable} An observable sequence only containing the distinct contiguous elements, based on a computed key value, from the source sequence. + */ + distinctUntilChanged(keySelector?: (value: T) => TValue, comparer?: _Comparer): Observable; + } + + export interface Observable { + /** + * Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function | Observer} observerOrOnNext Action to invoke for each element in the observable sequence or an observer. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + do(observer: Observer): Observable; + /** + * Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function | Observer} observerOrOnNext Action to invoke for each element in the observable sequence or an observer. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tap(observer: Observer): Observable; + + /** + * Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function | Observer} observerOrOnNext Action to invoke for each element in the observable sequence or an observer. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + do(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): Observable; + /** + * Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function | Observer} observerOrOnNext Action to invoke for each element in the observable sequence or an observer. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tap(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): Observable; + + /** + * Invokes an action for each element in the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onNext Action to invoke for each element in the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + doOnNext(onNext: (value: T) => void, thisArg?: any): Observable; + /** + * Invokes an action upon exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onError Action to invoke upon exceptional termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + doOnError(onError: (exception: any) => void, thisArg?: any): Observable; + /** + * Invokes an action upon graceful termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onCompleted Action to invoke upon graceful termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + doOnCompleted(onCompleted: () => void, thisArg?: any): Observable; + + /** + * Invokes an action for each element in the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onNext Action to invoke for each element in the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tapOnNext(onNext: (value: T) => void, thisArg?: any): Observable; + /** + * Invokes an action upon exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onError Action to invoke upon exceptional termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tapOnError(onError: (exception: any) => void, thisArg?: any): Observable; + /** + * Invokes an action upon graceful termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onCompleted Action to invoke upon graceful termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tapOnCompleted(onCompleted: () => void, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Invokes a specified action after the source observable sequence terminates gracefully or exceptionally. + * @param {Function} finallyAction Action to invoke after the source observable sequence terminates. + * @returns {Observable} Source sequence with the action-invoking termination behavior applied. + */ + finally(action: () => void): Observable; + + /** + * Invokes a specified action after the source observable sequence terminates gracefully or exceptionally. + * @param {Function} finallyAction Action to invoke after the source observable sequence terminates. + * @returns {Observable} Source sequence with the action-invoking termination behavior applied. + */ + ensure(action: () => void): Observable; + } + + export interface Observable { + /** + * Ignores all elements in an observable sequence leaving only the termination messages. + * @returns {Observable} An empty observable sequence that signals termination, successful or exceptional, of the source sequence. + */ + ignoreElements(): Observable; + } + + export interface Observable { + /** + * Materializes the implicit notifications of an observable sequence as explicit notification values. + * @returns {Observable} An observable sequence containing the materialized notification values from the source sequence. + */ + materialize(): Observable; + } + + export interface Observable { + /** + * Repeats the observable sequence a specified number of times. If the repeat count is not specified, the sequence repeats indefinitely. + * @param {Number} [repeatCount] Number of times to repeat the sequence. If not provided, repeats the sequence indefinitely. + * @returns {Observable} The observable sequence producing the elements of the given sequence repeatedly. + */ + repeat(repeatCount?: number): Observable; + } + + export interface Observable { + /** + * Repeats the source observable sequence the specified number of times or until it successfully terminates. If the retry count is not specified, it retries indefinitely. + * Note if you encounter an error and want it to retry once, then you must use .retry(2); + * + * @example + * var res = retried = retry.repeat(); + * var res = retried = retry.repeat(2); + * @param {Number} [retryCount] Number of times to retry the sequence. If not provided, retry the sequence indefinitely. + * @returns {Observable} An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + */ + retry(retryCount?: number): Observable; + } + + export interface Observable { + /** + * Repeats the source observable sequence upon error each time the notifier emits or until it successfully terminates. + * if the notifier completes, the observable sequence completes. + * + * @example + * var timer = Observable.timer(500); + * var source = observable.retryWhen(timer); + * @param {Observable} [notifier] An observable that triggers the retries or completes the observable with onNext or onCompleted respectively. + * @returns {Observable} An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + */ + retryWhen(notifier: (errors: Observable) => Observable): Observable; + } + + export interface Observable { + /** + * Applies an accumulator function over an observable sequence and returns each intermediate result. The optional seed value is used as the initial accumulator value. + * For aggregation behavior with no intermediate results, see Observable.aggregate. + * @example + * var res = source.scan(function (acc, x) { return acc + x; }); + * var res = source.scan(function (acc, x) { return acc + x; }, 0); + * @param {Function} accumulator An accumulator function to be invoked on each element. + * @param {Mixed} [seed] The initial accumulator value. + * @returns {Observable} An observable sequence containing the accumulated values. + */ + scan(accumulator: _Accumulator, seed?: TAcc): Observable; + /** + * Applies an accumulator function over an observable sequence and returns each intermediate result. The optional seed value is used as the initial accumulator value. + * For aggregation behavior with no intermediate results, see Observable.aggregate. + * @example + * var res = source.scan(function (acc, x) { return acc + x; }); + * var res = source.scan(function (acc, x) { return acc + x; }, 0); + * @param {Function} accumulator An accumulator function to be invoked on each element. + * @param {Mixed} [seed] The initial accumulator value. + * @returns {Observable} An observable sequence containing the accumulated values. + */ + scan(accumulator: _Accumulator, seed?: T): Observable; + } + + export interface Observable { + /** + * Bypasses a specified number of elements at the end of an observable sequence. + * @description + * This operator accumulates a queue with a length enough to store the first `count` elements. As more elements are + * received, elements are taken from the front of the queue and produced on the result sequence. This causes elements to be delayed. + * @param count Number of elements to bypass at the end of the source sequence. + * @returns {Observable} An observable sequence containing the source sequence elements except for the bypassed ones at the end. + */ + skipLast(count: number): Observable; + } + + export interface Observable { + /** + * Prepends a sequence of values to an observable sequence with an optional scheduler and an argument list of values to prepend. + * @example + * var res = source.startWith(1, 2, 3); + * var res = source.startWith(Rx.Scheduler.timeout, 1, 2, 3); + * @param {Arguments} args The specified values to prepend to the observable sequence + * @returns {Observable} The source sequence prepended with the specified values. + */ + startWith(...values: T[]): Observable; + /** + * Prepends a sequence of values to an observable sequence with an optional scheduler and an argument list of values to prepend. + * @example + * var res = source.startWith(1, 2, 3); + * var res = source.startWith(Rx.Scheduler.timeout, 1, 2, 3); + * @param {Arguments} args The specified values to prepend to the observable sequence + * @returns {Observable} The source sequence prepended with the specified values. + */ + startWith(scheduler: IScheduler, ...values: T[]): Observable; + } + + export interface Observable { + /** + * Returns a specified number of contiguous elements from the end of an observable sequence. + * @description + * This operator accumulates a buffer with a length enough to store elements count elements. Upon completion of + * the source sequence, this buffer is drained on the result sequence. This causes the elements to be delayed. + * @param {Number} count Number of elements to take from the end of the source sequence. + * @returns {Observable} An observable sequence containing the specified number of elements from the end of the source sequence. + */ + takeLast(count: number): Observable; + } + + export interface Observable { + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + concatMap(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + concatMap(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + concatMap(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + concatMap(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectConcat(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectConcat(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectConcat(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectConcat(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into a new form by incorporating the element's index. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source. + */ + select(selector: _Selector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new form by incorporating the element's index. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source. + */ + map(selector: _Selector, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Retrieves the value of a specified nested property from all elements in + * the Observable sequence. + * @param {Arguments} arguments The nested properties to pluck. + * @returns {Observable} Returns a new Observable sequence of property values. + */ + pluck(prop: string): Observable; + } + + + export interface Observable { + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMap(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMap(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMap(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMap(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectMany(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectMany(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectMany(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectMany(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + selectSwitch(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + selectSwitch(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + selectSwitch(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + selectSwitch(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + flatMapLatest(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + flatMapLatest(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + flatMapLatest(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + flatMapLatest(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Bypasses a specified number of elements in an observable sequence and then returns the remaining elements. + * @param {Number} count The number of elements to skip before returning the remaining elements. + * @returns {Observable} An observable sequence that contains the elements that occur after the specified index in the input sequence. + */ + skip(count: number): Observable; + } + + export interface Observable { + /** + * Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. + * The element's index is used in the logic of the predicate function. + * + * var res = source.skipWhile(function (value) { return value < 10; }); + * var res = source.skipWhile(function (value, index) { return value < 10 || index < 10; }); + * @param {Function} predicate A function to test each element for a condition; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. + */ + skipWhile(predicate: _Predicate, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Returns a specified number of contiguous elements from the start of an observable sequence, using the specified scheduler for the edge case of take(0). + * + * var res = source.take(5); + * var res = source.take(0, Rx.Scheduler.timeout); + * @param {Number} count The number of elements to return. + * @param {Scheduler} [scheduler] Scheduler used to produce an OnCompleted message in case | (() => ISubject)): ConnectableObservable; + /** + * Multicasts the source sequence notifications through an instantiated subject into all uses of the sequence within a selector function. Each + * subscription to the resulting sequence causes a separate multicast invocation, exposing the sequence resulting from the selector function's + * invocation. For specializations with fixed subject types, see Publish, PublishLast, and Replay. + * + * @example + * 1 - res = source.multicast(observable); + * 2 - res = source.multicast(function () { return new Subject(); }, function (x) { return x; }); + * + * @param {Function|Subject} subjectOrSubjectSelector + * 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 which can use the multicasted source sequence subject to the policies enforced by the created subject. Specified only if (subjectSelector: ISubject | (() => ISubject), selector: (source: ConnectableObservable) => Observable): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence. + * This operator is a specialization of Multicast using a regular Subject. + * + * @example + * var resres = source.publish(); + * var res = source.publish(function (x) { return x; }); + * + * @param {Function} [selector] 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. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publish(): ConnectableObservable; + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence. + * This operator is a specialization of Multicast using a regular Subject. + * + * @example + * var resres = source.publish(); + * var res = source.publish(function (x) { return x; }); + * + * @param {Function} [selector] 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. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publish(selector: (source: ConnectableObservable) => Observable): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence. + * This operator is a specialization of publish which creates a subscription when the number of observers goes from zero to one, then shares that subscription with all subsequent observers until the number of observers returns to zero, at which point the subscription is disposed. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence. + */ + share(): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + * This operator is a specialization of Multicast using a AsyncSubject. + * + * @example + * var res = source.publishLast(); + * var res = source.publishLast(function (x) { return x; }); + * + * @param 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 only receive the last notification of the source. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishLast(): ConnectableObservable; + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + * This operator is a specialization of Multicast using a AsyncSubject. + * + * @example + * var res = source.publishLast(); + * var res = source.publishLast(function (x) { return x; }); + * + * @param 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 only receive the last notification of the source. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishLast(selector: (source: ConnectableObservable) => Observable): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + * This operator is a specialization of Multicast using a BehaviorSubject. + * + * @example + * var res = source.publishValue(42); + * var res = source.publishValue(function (x) { return x.select(function (y) { return y * y; }) }, 42); + * + * @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 immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + * @param {Mixed} initialValue Initial value received by observers upon subscription. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishValue(initialValue: T): ConnectableObservable; + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + * This operator is a specialization of Multicast using a BehaviorSubject. + * + * @example + * var res = source.publishValue(42); + * var res = source.publishValue(function (x) { return x.select(function (y) { return y * y; }) }, 42); + * + * @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 immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + * @param {Mixed} initialValue Initial value received by observers upon subscription. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishValue(selector: (source: ConnectableObservable) => Observable, initialValue: T): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence and starts with an initialValue. + * This operator is a specialization of publishValue which creates a subscription when the number of observers goes from zero to one, then shares that subscription with all subsequent observers until the number of observers returns to zero, at which point the subscription is disposed. + * @param {Mixed} initialValue Initial value received by observers upon subscription. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence. + */ + shareValue(initialValue: T): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + * This operator is a specialization of Multicast using a ReplaySubject. + * + * @example + * var res = source.replay(null, 3); + * var res = source.replay(null, 3, 500); + * var res = source.replay(null, 3, 500, scheduler); + * var res = source.replay(function (x) { return x.take(6).repeat(); }, 3, 500, scheduler); + * + * @param 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 the notifications of the source subject to the specified replay buffer trimming policy. + * @param bufferSize [Optional] Maximum element count of the replay buffer. + * @param windowSize [Optional] Maximum time length of the replay buffer. + * @param scheduler [Optional] Scheduler where connected observers within the selector function will be invoked on. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + replay(selector?: void, bufferSize?: number, window?: number, scheduler?: IScheduler): ConnectableObservable; // hack to catch first omitted parameter + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + * This operator is a specialization of Multicast using a ReplaySubject. + * + * @example + * var res = source.replay(null, 3); + * var res = source.replay(null, 3, 500); + * var res = source.replay(null, 3, 500, scheduler); + * var res = source.replay(function (x) { return x.take(6).repeat(); }, 3, 500, scheduler); + * + * @param 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 the notifications of the source subject to the specified replay buffer trimming policy. + * @param bufferSize [Optional] Maximum element count of the replay buffer. + * @param windowSize [Optional] Maximum time length of the replay buffer. + * @param scheduler [Optional] Scheduler where connected observers within the selector function will be invoked on. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + replay(selector: (source: ConnectableObservable) => Observable, bufferSize?: number, window?: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + * This operator is a specialization of replay which creates a subscription when the number of observers goes from zero to one, then shares that subscription with all subsequent observers until the number of observers returns to zero, at which point the subscription is disposed. + * + * @example + * var res = source.shareReplay(3); + * var res = source.shareReplay(3, 500); + * var res = source.shareReplay(3, 500, scheduler); + * + + * @param bufferSize [Optional] Maximum element count of the replay buffer. + * @param window [Optional] Maximum time length of the replay buffer. + * @param scheduler [Optional] Scheduler where connected observers within the selector function will be invoked on. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence. + */ + shareReplay(bufferSize?: number, window?: number, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Returns an observable sequence that produces a value after each period. + * + * @example + * 1 - res = Rx.Observable.interval(1000); + * 2 - res = Rx.Observable.interval(1000, Rx.Scheduler.timeout); + * + * @param {Number} period Period for producing the values in the resulting sequence (specified as an integer denoting milliseconds). + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, Rx.Scheduler.timeout is used. + * @returns {Observable} An observable sequence that produces a value after each period. + */ + interval(period: number, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Returns an observable sequence that produces a value after dueTime has elapsed and then after each period. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) at which to produce the first value. + * @param {Mixed} [periodOrScheduler] Period to produce subsequent values (specified as an integer denoting milliseconds), or the scheduler to run the timer on. If not specified, the resulting timer is not recurring. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence that produces a value after due time has elapsed and then each period. + */ + timer(dueTime: number, period: number, scheduler?: IScheduler): Observable; + /** + * Returns an observable sequence that produces a value after dueTime has elapsed and then after each period. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) at which to produce the first value. + * @param {Mixed} [periodOrScheduler] Period to produce subsequent values (specified as an integer denoting milliseconds), or the scheduler to run the timer on. If not specified, the resulting timer is not recurring. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence that produces a value after due time has elapsed and then each period. + */ + timer(dueTime: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Time shifts the observable sequence by dueTime. The relative time intervals between the values are preserved. + * + * @example + * 1 - res = Rx.Observable.delay(new Date()); + * 2 - res = Rx.Observable.delay(new Date(), Rx.Scheduler.timeout); + * + * 3 - res = Rx.Observable.delay(5000); + * 4 - res = Rx.Observable.delay(5000, 1000, Rx.Scheduler.timeout); + * @memberOf Observable# + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) by which to shift the observable sequence. + * @param {Scheduler} [scheduler] Scheduler to run the delay timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} Time-shifted sequence. + */ + delay(dueTime: Date, scheduler?: IScheduler): Observable; + /** + * Time shifts the observable sequence by dueTime. The relative time intervals between the values are preserved. + * + * @example + * 1 - res = Rx.Observable.delay(new Date()); + * 2 - res = Rx.Observable.delay(new Date(), Rx.Scheduler.timeout); + * + * 3 - res = Rx.Observable.delay(5000); + * 4 - res = Rx.Observable.delay(5000, 1000, Rx.Scheduler.timeout); + * @memberOf Observable# + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) by which to shift the observable sequence. + * @param {Scheduler} [scheduler] Scheduler to run the delay timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} Time-shifted sequence. + */ + delay(dueTime: number, scheduler?: IScheduler): Observable; + + /** + * Time shifts the observable sequence based on a subscription delay and a delay selector function for each element. + * + * @example + * 1 - res = source.delayWithSelector(function (x) { return Rx.Scheduler.timer(5000); }); // with selector only + * 1 - res = source.delayWithSelector(Rx.Observable.timer(2000), function (x) { return Rx.Observable.timer(x); }); // with delay and selector + * + * @param {Observable} [subscriptionDelay] Sequence indicating the delay for the subscription to the source. + * @param {Function} delayDurationSelector Selector function to retrieve a sequence indicating the delay for each given element. + * @returns {Observable} Time-shifted sequence. + */ + delay(delayDurationSelector: (item: T) => ObservableOrPromise): Observable; + + /** + * Time shifts the observable sequence based on a subscription delay and a delay selector function for each element. + * + * @example + * 1 - res = source.delayWithSelector(function (x) { return Rx.Scheduler.timer(5000); }); // with selector only + * 1 - res = source.delayWithSelector(Rx.Observable.timer(2000), function (x) { return Rx.Observable.timer(x); }); // with delay and selector + * + * @param {Observable} [subscriptionDelay] Sequence indicating the delay for the subscription to the source. + * @param {Function} delayDurationSelector Selector function to retrieve a sequence indicating the delay for each given element. + * @returns {Observable} Time-shifted sequence. + */ + delay(subscriptionDelay: Observable, delayDurationSelector: (item: T) => ObservableOrPromise): Observable; + } + + export interface Observable { + /** + * Ignores values from an observable sequence which are followed by another value before dueTime. + * @param {Number} dueTime Duration of the debounce period for each value (specified as an integer denoting milliseconds). + * @param {Scheduler} [scheduler] Scheduler to run the debounce timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The debounced sequence. + */ + debounce(dueTime: number, scheduler?: IScheduler): Observable; + + /** + * Ignores values from an observable sequence which are followed by another value within a computed throttle duration. + * @param {Function} durationSelector Selector function to retrieve a sequence indicating the throttle duration for each given element. + * @returns {Observable} The debounced sequence. + */ + debounce(debounceDurationSelector: (item: T) => ObservableOrPromise): Observable; + } + + export interface Timestamp { + value: T; + timestamp: number; + } + + export interface Observable { + /** + * Records the timestamp for each value in an observable sequence. + * + * @example + * 1 - res = source.timestamp(); // produces { value: x, timestamp: ts } + * 2 - res = source.timestamp(Rx.Scheduler.default); + * + * @param {Scheduler} [scheduler] Scheduler used to compute timestamps. If not specified, the default scheduler is used. + * @returns {Observable} An observable sequence with timestamp information on values. + */ + timestamp(scheduler?: IScheduler): Observable>; + } + + export interface Observable { + /** + * Samples the observable sequence at each interval. + * + * @example + * 1 - res = source.sample(sampleObservable); // Sampler tick sequence + * 2 - res = source.sample(5000); // 5 seconds + * 2 - res = source.sample(5000, Rx.Scheduler.timeout); // 5 seconds + * + * @param {Mixed} intervalOrSampler Interval at which to sample (specified as an integer denoting milliseconds) or Sampler Observable. + * @param {Scheduler} [scheduler] Scheduler to run the sampling timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Sampled observable sequence. + */ + sample(intervalOrSampler: number, scheduler?: IScheduler): Observable; + /** + * Samples the observable sequence at each interval. + * + * @example + * 1 - res = source.sample(sampleObservable); // Sampler tick sequence + * 2 - res = source.sample(5000); // 5 seconds + * 2 - res = source.sample(5000, Rx.Scheduler.timeout); // 5 seconds + * + * @param {Mixed} intervalOrSampler Interval at which to sample (specified as an integer denoting milliseconds) or Sampler Observable. + * @param {Scheduler} [scheduler] Scheduler to run the sampling timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Sampled observable sequence. + */ + sample(sampler: Observable, scheduler?: IScheduler): Observable; + /** + * Samples the observable sequence at each interval. + * + * @example + * 1 - res = source.sample(sampleObservable); // Sampler tick sequence + * 2 - res = source.sample(5000); // 5 seconds + * 2 - res = source.sample(5000, Rx.Scheduler.timeout); // 5 seconds + * + * @param {Mixed} intervalOrSampler Interval at which to sample (specified as an integer denoting milliseconds) or Sampler Observable. + * @param {Scheduler} [scheduler] Scheduler to run the sampling timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Sampled observable sequence. + */ + throttleLatest(interval: number, scheduler?: IScheduler): Observable; + /** + * Samples the observable sequence at each interval. + * + * @example + * 1 - res = source.sample(sampleObservable); // Sampler tick sequence + * 2 - res = source.sample(5000); // 5 seconds + * 2 - res = source.sample(5000, Rx.Scheduler.timeout); // 5 seconds + * + * @param {Mixed} intervalOrSampler Interval at which to sample (specified as an integer denoting milliseconds) or Sampler Observable. + * @param {Scheduler} [scheduler] Scheduler to run the sampling timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Sampled observable sequence. + */ + throttleLatest(sampler: Observable, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Returns the source observable sequence or the other observable sequence if dueTime elapses. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) when a timeout occurs. + * @param {Scheduler} [scheduler] Scheduler to run the timeout timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(dueTime: Date, scheduler?: IScheduler): Observable; + + /** + * Returns the source observable sequence or the other observable sequence if dueTime elapses. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) when a timeout occurs. + * @param {Observable} [other] Sequence to return in case of a timeout. If not specified, a timeout error throwing sequence will be used. + * @param {Scheduler} [scheduler] Scheduler to run the timeout timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(dueTime: Date, other?: Observable, scheduler?: IScheduler): Observable; + /** + * Returns the source observable sequence or the other observable sequence if dueTime elapses. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) when a timeout occurs. + * @param {Observable} [other] Sequence to return in case of a timeout. If not specified, a timeout error throwing sequence will be used. + * @param {Scheduler} [scheduler] Scheduler to run the timeout timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(dueTime: number, scheduler?: IScheduler): Observable; + /** + * Returns the source observable sequence or the other observable sequence if dueTime elapses. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) when a timeout occurs. + * @param {Observable} [other] Sequence to return in case of a timeout. If not specified, a timeout error throwing sequence will be used. + * @param {Scheduler} [scheduler] Scheduler to run the timeout timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(dueTime: number, other?: Observable, scheduler?: IScheduler): Observable; + + /** + * Returns the source observable sequence, switching to the other observable sequence if a timeout is signaled. + * @param {Function} timeoutDurationSelector Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(timeoutdurationSelector: (item: T) => Observable): Observable; + + /** + * Returns the source observable sequence, switching to the other observable sequence if a timeout is signaled. + * @param {Function} timeoutDurationSelector Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + * @param {Observable} other Sequence to return in case of a timeout. If not provided, this is set to Observable.throwException(). + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(timeoutdurationSelector: (item: T) => Observable, other: Observable): Observable; + + /** + * Returns the source observable sequence, switching to the other observable sequence if a timeout is signaled. + * @param {Observable} [firstTimeout] Observable sequence that represents the timeout for the first element. If not provided, this defaults to Observable.never(). + * @param {Function} timeoutDurationSelector Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + * @param {Observable} [other] Sequence to return in case of a timeout. If not provided, this is set to Observable.throwException(). + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(firstTimeout: Observable, timeoutdurationSelector: (item: T) => Observable, other?: Observable): Observable; + } + + export interface Observable { + /** + * Returns an Observable that emits only the first item emitted by the source Observable during sequential time windows of a specified duration. + * @param {Number} windowDuration time to wait before emitting another item after emitting the last item + * @param {Scheduler} [scheduler] the Scheduler to use internally to manage the timers that handle timeout for each item. If not provided, defaults to Scheduler.timeout. + * @returns {Observable} An Observable that performs the throttle operation. + */ + throttle(windowDuration: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Pauses the underlying observable sequence based upon the observable sequence which yields true/false. + * @example + * var pauser = new Rx.Subject(); + * var source = Rx.Observable.interval(100).pausable(pauser); + * @param {Observable} pauser The observable sequence used to pause the underlying sequence. + * @returns {Observable} The observable sequence which is paused based upon the pauser. + */ + pausable(pauser?: Observable): PausableObservable; + } + + export interface PausableObservable extends Observable { + pause(): void; + resume(): void; + } + + export interface Observable { + /** + * Pauses the underlying observable sequence based upon the observable sequence which yields true/false, + * and yields the values that were buffered while paused. + * @example + * var pauser = new Rx.Subject(); + * var source = Rx.Observable.interval(100).pausableBuffered(pauser); + * @param {Observable} pauser The observable sequence used to pause the underlying sequence. + * @returns {Observable} The observable sequence which is paused based upon the pauser. + */ + pausableBuffered(pauser?: Observable): PausableObservable; + } + + export interface Observable { + /** + * Attaches a controller to the observable sequence with the ability to queue. + * @example + * var source = Rx.Observable.interval(100).controlled(); + * source.request(3); // Reads 3 values + * @param {bool} enableQueue truthy value to determine if values should be queued pending the next request + * @param {Scheduler} scheduler determines how the requests will be scheduled + * @returns {Observable} The observable sequence which only propagates values on request. + */ + controlled(enableQueue?: boolean, scheduler?: IScheduler): ControlledObservable; + } + + export interface ControlledObservable extends Observable { + request(numberOfItems?: number): IDisposable; + } + + export interface Observable { + /** + * Pipes the existing Observable sequence into a Node.js Stream. + * @param {Stream} dest The destination Node.js stream. + * @returns {Stream} The destination stream. + */ + pipe(dest: TDest): TDest; + // TODO: Add link to node.d.ts some where + } + + export interface Observable { + /** + * Executes a transducer to transform the observable sequence + * @param {Transducer} transducer A transducer to execute + * @returns {Observable} An Observable sequence containing the results from the transducer. + */ + transduce(transducer: any): any; + //TODO: Setup transducer + } + + export interface AnonymousObservable extends Observable { } + + export interface AsyncSubject extends Subject { } + + interface AsyncSubjectStatic { + /** + * Creates a subject that can only receive one value and that value is cached for all future observations. + * @constructor + */ + new (): AsyncSubject; + } + + /** + * Represents the result of an asynchronous operation. + * The last value before the OnCompleted notification, or the error received through OnError, is sent to all subscribed observers. + */ + export var AsyncSubject: AsyncSubjectStatic; + + export interface AnonymousSubject extends Subject { } + + interface AnonymousSubjectStatic { + /** + * Creates a subject that can only receive one value and that value is cached for all future observations. + * @constructor + */ + new (): AnonymousSubject; + } + + /** + * Represents the result of an asynchronous operation. + * The last value before the OnCompleted notification, or the error received through OnError, is sent to all subscribed observers. + */ + export var AnonymousSubject: AnonymousSubjectStatic; + + export interface BehaviorSubject extends Subject { + /** + * Gets the current value or throws an exception. + * Value is frozen after onCompleted is called. + * After onError is called always throws the specified exception. + * An exception is always thrown after dispose is called. + * @returns {Mixed} The initial value passed to the constructor until onNext is called; after which, the last value passed to onNext. + */ + getValue(): T; + } + + interface BehaviorSubjectStatic { + /** + * Initializes a new instance of the BehaviorSubject class which creates a subject that caches its last value and starts with the specified value. + * @param {Mixed} value Initial value sent to observers when no other value has been received by the subject yet. + */ + new (initialValue: T): BehaviorSubject; + } + + /** + * Represents a value that changes over time. + * Observers can subscribe to the subject to receive the last (or initial) value and all subsequent notifications. + */ + export var BehaviorSubject: BehaviorSubjectStatic; + + export interface ReplaySubject extends Subject { } + + interface ReplaySubjectStatic { + /** + * Initializes a new instance of the ReplaySubject class with the specified buffer size, window size and scheduler. + * @param {Number} [bufferSize] Maximum element count of the replay buffer. + * @param {Number} [windowSize] Maximum time length of the replay buffer. + * @param {Scheduler} [scheduler] Scheduler the observers are invoked on. + */ + new (bufferSize?: number, window?: number, scheduler?: IScheduler): ReplaySubject; + } + + /** + * Represents an object that is both an observable sequence as well as an observer. + * Each notification is broadcasted to all subscribed and future observers, subject to buffer trimming policies. + */ + export var ReplaySubject: ReplaySubjectStatic; + + /** + * Used to pause and resume streams. + */ + export interface Pauser { + /** + * Pauses the underlying sequence. + */ + pause(): void; + + /** + * Resumes the underlying sequence. + */ + resume(): void; + } + +} + +declare module "rx" { export = Rx; } +declare module "rx.lite" { export = Rx; } diff --git a/node_modules/rx/ts/rx.lite.es6.d.ts b/node_modules/rx/ts/rx.lite.es6.d.ts new file mode 100644 index 0000000..8ed976a --- /dev/null +++ b/node_modules/rx/ts/rx.lite.es6.d.ts @@ -0,0 +1,3058 @@ +declare module Rx { + + // Type alias for observables and promises + export type ObservableOrPromise = IObservable | Observable | Promise; + + export type ArrayLike = Array | { length: number;[index: number]: T; }; + + // Type alias for arrays and array like objects + export type ArrayOrIterable = ArrayLike | Iterable; + + /** + * Promise A+ + */ + export interface Promise extends PromiseLike { } + + /** + * Promise A+ + */ + export interface IPromise extends PromiseLike { } + + /** + * Represents a push-style collection. + */ + export interface IObservable { } + + /** + * Represents a push-style collection. + */ + export interface Observable extends IObservable { } + + export module internals { + export interface EmptyError extends Error { message: string; } + export interface EmptyErrorStatic { new (): EmptyError; } + + export interface ObjectDisposedError extends Error { message: string; } + export interface ObjectDisposedErrorStatic { new (): ObjectDisposedError; } + + export interface ArgumentOutOfRangeError extends Error { message: string; } + export interface ArgumentOutOfRangeErrorStatic { new (): ArgumentOutOfRangeError; } + + export interface NotSupportedError extends Error { message: string; } + export interface NotSupportedErrorStatic { new (): NotSupportedError; } + + export interface NotImplementedError extends Error { message: string; } + export interface NotImplementedErrorStatic { new (): NotImplementedError; } + } + + export module helpers { + export var notImplemented: () => internals.NotImplementedError; + export var notSupported: () => internals.NotSupportedError; + } + + export module internals { + export var bindCallback: (func: Function, thisArg: any, argCount: number) => Function; + } + + export module internals { + export var isEqual : (left: any, right: any) => boolean; + } + + export interface IDisposable { + dispose(): void; + } + + export interface Disposable extends IDisposable { + /** Is this value disposed. */ + isDisposed?: boolean; + } + + interface DisposableStatic { + /** + * Provides a set of static methods for creating Disposables. + * @param {Function} dispose Action to run during the first call to dispose. The action is guaranteed to be run at most once. + */ + new (action: () => void): Disposable; + + /** + * Creates a disposable object that invokes the specified action when disposed. + * @param {Function} dispose Action to run during the first call to dispose. The action is guaranteed to be run at most once. + * @return {Disposable} The disposable object that runs the given action upon disposal. + */ + create(action: () => void): Disposable; + + /** + * Gets the disposable that does nothing when disposed. + */ + empty: IDisposable; + + /** + * Validates whether the given object is a disposable + * @param {Object} Object to test whether it has a dispose method + * @returns {Boolean} true if a disposable object, else false. + */ + isDisposable(d: any): boolean; + } + + /** + * Provides a set of static methods for creating Disposables. + * @param {Function} dispose Action to run during the first call to dispose. The action is guaranteed to be run at most once. + */ + export var Disposable: DisposableStatic; + + export module config { + export var Promise: { new (resolver: (resolvePromise: (value: T) => void, rejectPromise: (reason: any) => void) => void): IPromise; }; + } + + export module helpers { + export var noop: () => void; + export var notDefined: (value: any) => boolean; + export var identity: (value: T) => T; + export var defaultNow: () => number; + export var defaultComparer: (left: any, right: any) => boolean; + export var defaultSubComparer: (left: any, right: any) => number; + export var defaultKeySerializer: (key: any) => string; + export var defaultError: (err: any) => void; + export var isPromise: (p: any) => boolean; + export var asArray: (...args: T[]) => T[]; + export var not: (value: any) => boolean; + export var isFunction: (value: any) => boolean; + } + + export type _Selector = (value: T, index: number, observable: Observable) => TResult; + export type _ValueOrSelector = TResult | _Selector; + export type _Predicate = _Selector; + export type _Comparer = (value1: T, value2: T) => TResult; + export type _Accumulator = (acc: TAcc, value: T) => TAcc; + + export module special { + export type _FlatMapResultSelector = (value: T1, selectorValue: T2, index: number, selectorOther: number) => TResult; + } + + export interface IObservable { + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(observer: IObserver): IDisposable; + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): IDisposable; + } + + export interface Observable { + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(observer: IObserver): IDisposable; + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribe(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): IDisposable; + + /** + * Subscribes to the next value in the sequence with an optional "this" argument. + * @param {Function} onNext The function to invoke on each element in the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Disposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribeOnNext(onNext: (value: T) => void, thisArg?: any): IDisposable; + /** + * Subscribes to an exceptional condition in the sequence with an optional "this" argument. + * @param {Function} onError The function to invoke upon exceptional termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Disposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribeOnError(onError: (exception: any) => void, thisArg?: any): IDisposable; + /** + * Subscribes to the next value in the sequence with an optional "this" argument. + * @param {Function} onCompleted The function to invoke upon graceful termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Disposable} A disposable handling the subscriptions and unsubscriptions. + */ + subscribeOnCompleted(onCompleted: () => void, thisArg?: any): IDisposable; + + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + forEach(observer: IObserver): IDisposable; + + /** + * Subscribes an o to the observable sequence. + * @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. + * @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. + */ + forEach(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): IDisposable; + } + + export interface ObservableStatic { + /** + * Determines whether the given object is an Observable + * @param {Any} An object to determine whether it is an Observable + * @returns {Boolean} true if an Observable, else false. + */ + isObservable(o: any): boolean; + } + + export var Observable: ObservableStatic; + + export module internals { + export var inherits: (child: any, parent: any) => void; + export var addProperties: (obj: any, ...sources: any[]) => void; + export var addRef: (xs: Observable, r: { getDisposable(): IDisposable; }) => Observable; + } + + /** + * Represents a group of disposable resources that are disposed together. + * @constructor + */ + export interface CompositeDisposable extends Disposable { + /** + * Adds a disposable to the CompositeDisposable or disposes the disposable if the CompositeDisposable is disposed. + * @param {Mixed} item Disposable to add. + */ + add(item: IDisposable): void; + + /** + * Removes and disposes the first occurrence of a disposable from the CompositeDisposable. + * @param {Mixed} item Disposable to remove. + * @returns {Boolean} true if found; false otherwise. + */ + remove(item: IDisposable): void; + } + + interface CompositeDisposableStatic { + /** + * Represents a group of disposable resources that are disposed together. + * @constructor + */ + new (...disposables: Rx.IDisposable[]): CompositeDisposable; + /** + * Represents a group of disposable resources that are disposed together. + * @constructor + */ + new(disposables: Rx.IDisposable[]): CompositeDisposable; + } + + export var CompositeDisposable: CompositeDisposableStatic; + + export interface SingleAssignmentDisposable { + /** Performs the task of cleaning up resources. */ + dispose(): void; + + /** Is this value disposed. */ + isDisposed: boolean; + + getDisposable(): IDisposable; + + setDisposable(value: IDisposable): void; + } + + interface SingleAssignmentDisposableStatic { + new() : SingleAssignmentDisposable; + } + + export var SingleAssignmentDisposable : SingleAssignmentDisposableStatic; + + export interface SerialDisposable { + /** Performs the task of cleaning up resources. */ + dispose(): void; + + /** Is this value disposed. */ + isDisposed: boolean; + + getDisposable(): IDisposable; + + setDisposable(value: IDisposable): void; + } + + interface SerialDisposableStatic { + new() : SerialDisposable; + } + + export var SerialDisposable : SerialDisposableStatic; + + /** + * Represents a disposable resource that only disposes its underlying disposable resource when all dependent disposable objects have been disposed. + */ + export interface RefCountDisposable extends Disposable { + + /** Performs the task of cleaning up resources. */ + dispose(): void; + + /** Is this value disposed. */ + isDisposed: boolean; + + /** + * Returns a dependent disposable that when disposed decreases the refcount on the underlying disposable. + * @returns {Disposable} A dependent disposable contributing to the reference count that manages the underlying disposable's lifetime. + */ + getDisposable(): IDisposable; + } + + interface RefCountDisposableStatic { + /** + * Initializes a new instance of the RefCountDisposable with the specified disposable. + * @constructor + * @param {Disposable} disposable Underlying disposable. + */ + new(disposable: IDisposable): RefCountDisposable; + } + + export var RefCountDisposable : RefCountDisposableStatic; + + export interface IScheduler { + /** Gets the current time according to the local machine's system clock. */ + now(): number; + + /** + * Schedules an action to be executed. + * @param state State passed to the action to be executed. + * @param {Function} action Action to be executed. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + schedule(state: TState, action: (scheduler: IScheduler, state: TState) => IDisposable): IDisposable; + + /** + * Schedules an action to be executed after dueTime. + * @param state State passed to the action to be executed. + * @param {Function} action Action to be executed. + * @param {Number} dueTime Relative time after which to execute the action. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + scheduleFuture(state: TState, dueTime: number | Date, action: (scheduler: IScheduler, state: TState) => IDisposable): IDisposable; + } + + export interface SchedulerStatic { + /** Gets the current time according to the local machine's system clock. */ + now(): number; + + /** + * Normalizes the specified TimeSpan value to a positive value. + * @param {Number} timeSpan The time span value to normalize. + * @returns {Number} The specified TimeSpan value if it is zero or positive; otherwise, 0 + */ + normalize(timeSpan: number): number; + + /** Determines whether the given object is a scheduler */ + isScheduler(s: any): boolean; + } + + /** Provides a set of static properties to access commonly used schedulers. */ + export var Scheduler: SchedulerStatic; + + export module internals { + export interface ScheduledItem { + scheduler: IScheduler; + state: TTime; + action: (scheduler: IScheduler, state: any) => IDisposable; + dueTime: TTime; + comparer: (x: TTime, y: TTime) => number; + disposable: SingleAssignmentDisposable; + + invoke(): void; + compareTo(other: ScheduledItem): number; + isCancelled(): boolean; + invokeCore(): IDisposable; + } + + interface ScheduledItemStatic { + new (scheduler: IScheduler, state: any, action: (scheduler: IScheduler, state: any) => IDisposable, dueTime: TTime, comparer?: _Comparer):ScheduledItem; + } + + export var ScheduledItem: ScheduledItemStatic + } + + export interface IScheduler { + /** + * Schedules an action to be executed recursively. + * @param {Mixed} state State passed to the action to be executed. + * @param {Function} action Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in recursive invocation state. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + scheduleRecursive(state: TState, action: (state: TState, action: (state: TState) => void) => void): IDisposable; + + /** + * Schedules an action to be executed recursively after a specified relative due time. + * @param {Mixed} state State passed to the action to be executed. + * @param {Function} action Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in the recursive due time and invocation state. + * @param {Number}dueTime Relative time after which to execute the action for the first time. + * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). + */ + scheduleRecursiveFuture(state: TState, dueTime: TTime, action: (state: TState, action: (state: TState, dueTime: TTime) => void) => void): IDisposable; + } + + export interface IScheduler { + /** + * Schedules a periodic piece of work by dynamically discovering the scheduler's capabilities. The periodic task will be scheduled using window.setInterval for the base implementation. + * @param {Mixed} state Initial state passed to the action upon the first iteration. + * @param {Number} period Period for running the work periodically. + * @param {Function} action Action to be executed, potentially updating the state. + * @returns {Disposable} The disposable object used to cancel the scheduled recurring action (best effort). + */ + schedulePeriodic(state: TState, period: number, action: (state: TState) => TState): IDisposable; + } + + export interface SchedulerStatic { + immediate: IScheduler; + } + + export interface ICurrentThreadScheduler extends IScheduler { + scheduleRequired(): boolean; + } + + export interface SchedulerStatic { + currentThread: ICurrentThreadScheduler; + } + + export module internals { + export interface SchedulePeriodicRecursive { + start(): IDisposable; + } + + interface SchedulePeriodicRecursiveStatic { + new (scheduler: any, state: any, period: any, action: any) : SchedulePeriodicRecursive; + } + + export var SchedulePeriodicRecursive: SchedulePeriodicRecursiveStatic; + } + + export interface SchedulerStatic { + default: IScheduler; + async: IScheduler; + } + + export module internals { + // Priority Queue for Scheduling + export interface PriorityQueue { + length: number; + + isHigherPriority(left: number, right: number): boolean; + percolate(index: number): void; + heapify(index: number): void; + peek(): ScheduledItem; + removeAt(index: number): void; + dequeue(): ScheduledItem; + enqueue(item: ScheduledItem): void; + remove(item: ScheduledItem): boolean; + } + + interface PriorityQueueStatic { + new (capacity: number) : PriorityQueue; + count: number; + } + + export var PriorityQueue : PriorityQueueStatic; + } + + /** + * Supports push-style iteration over an observable sequence. + */ + export interface IObserver { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + } + + export interface Observer { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + } + + export interface ObserverStatic { + /** + * Creates an observer from the specified OnNext, along with optional OnError, and OnCompleted actions. + * @param {Function} [onNext] Observer's OnNext action implementation. + * @param {Function} [onError] Observer's OnError action implementation. + * @param {Function} [onCompleted] Observer's OnCompleted action implementation. + * @returns {Observer} The observer object implemented using the given actions. + */ + create(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): Observer; + } + + /** + * Supports push-style iteration over an observable sequence. + */ + export var Observer: ObserverStatic; + + /** + * Represents a notification to an observer. + */ + export interface Notification { + /** + * Invokes the delegate corresponding to the notification or the observer's method corresponding to the notification and returns the produced result. + * + * @memberOf Notification + * @param {Any} observerOrOnNext Delegate to invoke for an OnNext notification or Observer to invoke the notification on.. + * @param {Function} onError Delegate to invoke for an OnError notification. + * @param {Function} onCompleted Delegate to invoke for an OnCompleted notification. + * @returns {Any} Result produced by the observation. + */ + accept(observer: IObserver): void; + /** + * Invokes the delegate corresponding to the notification or the observer's method corresponding to the notification and returns the produced result. + * + * @memberOf Notification + * @param {Any} observerOrOnNext Delegate to invoke for an OnNext notification or Observer to invoke the notification on.. + * @param {Function} onError Delegate to invoke for an OnError notification. + * @param {Function} onCompleted Delegate to invoke for an OnCompleted notification. + * @returns {Any} Result produced by the observation. + */ + accept(onNext: (value: T) => TResult, onError: (exception: any) => TResult, onCompleted: () => TResult): TResult; + + /** + * Returns an observable sequence with a single notification. + * + * @memberOf Notifications + * @param {Scheduler} [scheduler] Scheduler to send out the notification calls on. + * @returns {Observable} The observable sequence that surfaces the behavior of the notification upon subscription. + */ + toObservable(scheduler?: IScheduler): Observable; + + hasValue: boolean; + equals(other: Notification): boolean; + kind: string; + value: T; + error: any; + } + + interface NotificationStatic { + new (kind: any, value: any, exception: any, accept: any, acceptObservable: any, toString: any) : Notification; + + /** + * Creates an object that represents an OnNext notification to an observer. + * @param {Any} value The value contained in the notification. + * @returns {Notification} The OnNext notification containing the value. + */ + createOnNext(value: T): Notification; + /** + * Creates an object that represents an OnError notification to an observer. + * @param {Any} error The exception contained in the notification. + * @returns {Notification} The OnError notification containing the exception. + */ + createOnError(exception: any): Notification; + /** + * Creates an object that represents an OnCompleted notification to an observer. + * @returns {Notification} The OnCompleted notification. + */ + createOnCompleted(): Notification; + } + + export var Notification : NotificationStatic; + + export module internals { + /** + * Abstract base class for implementations of the Observer class. + * This base class enforces the grammar of observers where OnError and OnCompleted are terminal messages. + */ + export interface AbstractObserver extends Rx.IObserver, Rx.IDisposable { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + + isStopped: boolean; + + /** + * Disposes the observer, causing it to transition to the stopped state. + */ + dispose(): void; + + fail(e: any): boolean; + + // Must be implemented by other observers + next(value: T): void; + error(error: any): void; + completed(): void; + } + + interface AbstractObserverStatic { + new (): AbstractObserver; + } + + export var AbstractObserver: AbstractObserverStatic + } + + /** + * Class to create an Observer instance from delegate-based implementations of the on* methods. + */ + export interface AnonymousObserver extends Observer { + /** + * Notifies the observer of a new element in the sequence. + * @param {Any} value Next element in the sequence. + */ + onNext(value: T): void; + /** + * Notifies the observer that an exception has occurred. + * @param {Any} error The error that has occurred. + */ + onError(exception: any): void; + /** + * Notifies the observer of the end of the sequence. + */ + onCompleted(): void; + } + + interface AnonymousObserverStatic { + /** + * Creates an observer from the specified OnNext, OnError, and OnCompleted actions. + * @param {Any} onNext Observer's OnNext action implementation. + * @param {Any} onError Observer's OnError action implementation. + * @param {Any} onCompleted Observer's OnCompleted action implementation. + */ + new (onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): AnonymousObserver; + } + + export var AnonymousObserver : AnonymousObserverStatic; + + export module internals { + export interface ScheduledObserver extends Observer { + ensureActive(): void; + } + } + + export interface Observable { + /** + * Creates an array from an observable sequence. + * @returns {Observable} An observable sequence containing a single element with a list containing all the elements of the source sequence. + */ + toArray(): Observable; + } + + export interface ObservableStatic { + /** + * Creates an observable sequence from a specified subscribe method implementation. + * @example + * var res = Rx.Observable.create(function (observer) { return function () { } ); + * var res = Rx.Observable.create(function (observer) { return Rx.Disposable.empty; } ); + * var res = Rx.Observable.create(function (observer) { } ); + * @param {Function} subscribe Implementation of the resulting observable sequence's subscribe method, returning a function that will be wrapped in a Disposable. + * @returns {Observable} The observable sequence with the specified implementation for the Subscribe method. + */ + create(subscribe: (observer: Observer) => IDisposable | Function | void): Observable; + } + + export interface ObservableStatic { + /** + * Returns an observable sequence that invokes the specified factory function whenever a new observer subscribes. + * + * @example + * var res = Rx.Observable.defer(function () { return Rx.Observable.fromArray([1,2,3]); }); + * @param {Function} observableFactory Observable factory function to invoke for each observer that subscribes to the resulting sequence or Promise. + * @returns {Observable} An observable sequence whose observers trigger an invocation of the given observable factory function. + */ + defer(observableFactory: () => ObservableOrPromise): Observable; + } + + export interface ObservableStatic { + /** + * Returns an empty observable sequence, using the specified scheduler to send out the single OnCompleted message. + * + * @example + * var res = Rx.Observable.empty(); + * var res = Rx.Observable.empty(Rx.Scheduler.timeout); + * @param {Scheduler} [scheduler] Scheduler to send the termination call on. + * @returns {Observable} An observable sequence with no elements. + */ + empty(scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * This method creates a new Observable sequence from an array-like or iterable object. + * @param {Any} arrayLike An array-like or iterable object to convert to an Observable sequence. + * @param {Function} [mapFn] Map function to call on every element of the array. + * @param {Any} [thisArg] The context to use calling the mapFn if provided. + * @param {Scheduler} [scheduler] Optional scheduler to use for scheduling. If not provided, defaults to Scheduler.currentThread. + */ + from(array: ArrayOrIterable): Observable; + /** + * This method creates a new Observable sequence from an array-like or iterable object. + * @param {Any} arrayLike An array-like or iterable object to convert to an Observable sequence. + * @param {Function} [mapFn] Map function to call on every element of the array. + * @param {Any} [thisArg] The context to use calling the mapFn if provided. + * @param {Scheduler} [scheduler] Optional scheduler to use for scheduling. If not provided, defaults to Scheduler.currentThread. + */ + from(array: ArrayOrIterable, mapFn: (value: T, index: number) => TResult, thisArg?: any, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Converts an array to an observable sequence, using an optional scheduler to enumerate the array. + * @deprecated use Observable.from or Observable.of + * @param {Scheduler} [scheduler] Scheduler to run the enumeration of the input sequence on. + * @returns {Observable} The observable sequence whose elements are pulled from the given enumerable sequence. + */ + fromArray(array: ArrayLike, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins). + * @returns {Observable} An observable sequence whose observers will never get called. + */ + never(): Observable; + } + + export interface ObservableStatic { + /** + * This method creates a new Observable instance with a variable number of arguments, regardless of number or type of the arguments. + * @returns {Observable} The observable sequence whose elements are pulled from the given arguments. + */ + of(...values: T[]): Observable; + + /** + * This method creates a new Observable instance with a variable number of arguments, regardless of number or type of the arguments. + * @param {Scheduler} scheduler A scheduler to use for scheduling the arguments. + * @returns {Observable} The observable sequence whose elements are pulled from the given arguments. + */ + ofWithScheduler(scheduler?: IScheduler, ...values: T[]): Observable; + } + + export interface ObservableStatic { + /** + * Convert an object into an observable sequence of [key, value] pairs. + * @param {Object} obj The object to inspect. + * @param {Scheduler} [scheduler] Scheduler to run the enumeration of the input sequence on. + * @returns {Observable} An observable sequence of [key, value] pairs from the object. + */ + pairs(obj: { [key: string]: T }, scheduler?: IScheduler): Observable<[string, T]>; + /** + * Convert an object into an observable sequence of [key, value] pairs. + * @param {Object} obj The object to inspect. + * @param {Scheduler} [scheduler] Scheduler to run the enumeration of the input sequence on. + * @returns {Observable} An observable sequence of [key, value] pairs from the object. + */ + pairs(obj: { [key: number]: T }, scheduler?: IScheduler): Observable<[number, T]>; + } + + export interface ObservableStatic { + /** + * Generates an observable sequence of integral numbers within a specified range, using the specified scheduler to send out observer messages. + * + * @example + * var res = Rx.Observable.range(0, 10); + * var res = Rx.Observable.range(0, 10, Rx.Scheduler.timeout); + * @param {Number} start The value of the first integer in the sequence. + * @param {Number} count The number of sequential integers to generate. + * @param {Scheduler} [scheduler] Scheduler to run the generator loop on. If not specified, defaults to Scheduler.currentThread. + * @returns {Observable} An observable sequence that contains a range of sequential integral numbers. + */ + range(start: number, count: number, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Generates an observable sequence that repeats the given element the specified number of times, using the specified scheduler to send out observer messages. + * + * @example + * var res = Rx.Observable.repeat(42); + * var res = Rx.Observable.repeat(42, 4); + * 3 - res = Rx.Observable.repeat(42, 4, Rx.Scheduler.timeout); + * 4 - res = Rx.Observable.repeat(42, null, Rx.Scheduler.timeout); + * @param {Mixed} value Element to repeat. + * @param {Number} repeatCount [Optiona] Number of times to repeat the element. If not specified, repeats indefinitely. + * @param {Scheduler} scheduler Scheduler to run the producer loop on. If not specified, defaults to Scheduler.immediate. + * @returns {Observable} An observable sequence that repeats the given element the specified number of times. + */ + repeat(value: T, repeatCount?: number | void, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages. + * There is an alias called 'just' or browsers (value: T, scheduler?: IScheduler): Observable; + /** + * Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages. + * There is an alias called 'just' or browsers (value: T, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single onError message. + * @param {Mixed} error An object used for the sequence's termination. + * @param {Scheduler} scheduler Scheduler to send the exceptional termination call on. If not specified, defaults to Scheduler.immediate. + * @returns {Observable} The observable sequence that terminates exceptionally with the specified exception object. + */ + throw(exception: Error, scheduler?: IScheduler): Observable; + /** + * Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single onError message. + * @param {Mixed} error An object used for the sequence's termination. + * @param {Scheduler} scheduler Scheduler to send the exceptional termination call on. If not specified, defaults to Scheduler.immediate. + * @returns {Observable} The observable sequence that terminates exceptionally with the specified exception object. + */ + throw(exception: any, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Continues an observable sequence that is terminated by an exception with the next observable sequence. + * @param {Mixed} handlerOrSecond Exception handler function that returns an observable sequence given the error that occurred in the first sequence, or a second observable sequence used to produce results when an error occurred in the first sequence. + * @returns {Observable} An observable sequence containing the first sequence's elements, followed by the elements of the handler sequence in case an exception occurred. + */ + catch(handler: (exception: any) => ObservableOrPromise): Observable; + /** + * Continues an observable sequence that is terminated by an exception with the next observable sequence. + * @param {Mixed} handlerOrSecond Exception handler function that returns an observable sequence given the error that occurred in the first sequence, or a second observable sequence used to produce results when an error occurred in the first sequence. + * @returns {Observable} An observable sequence containing the first sequence's elements, followed by the elements of the handler sequence in case an exception occurred. + */ + catch(second: ObservableOrPromise): Observable; + } + + export interface ObservableStatic { + /** + * Continues an observable sequence that is terminated by an exception with the next observable sequence. + * @param {Array | Arguments} args Arguments or an array to use as the next sequence if an error occurs. + * @returns {Observable} An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + */ + catch(sources: ObservableOrPromise[]): Observable; + /** + * Continues an observable sequence that is terminated by an exception with the next observable sequence. + * @param {Array | Arguments} args Arguments or an array to use as the next sequence if an error occurs. + * @returns {Observable} An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + */ + catch(...sources: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, resultSelector: (v1: T, v2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, ninth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8, v9: T9) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * This can be in the form of an argument list of observables or an array. + * + * @example + * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(souces: ObservableOrPromise[], resultSelector: (firstValue: T, ...otherValues: TOther[]) => TResult): Observable; + } + + export interface ObservableStatic { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, resultSelector: (v1: T, v2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, eventh: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(first: ObservableOrPromise, second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, ninth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8, v9: T9) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element. + * + * @example + * 1 - obs = Rx.Observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; }); + * 2 - obs = Rx.Observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; }); + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + combineLatest(souces: ObservableOrPromise[], resultSelector: (...otherValues: TOther[]) => TResult): Observable; + } + + export interface Observable { + /** + * Concatenates all the observable sequences. This takes in either an array or variable arguments to concatenate. + * @returns {Observable} An observable sequence that contains the elements of each given sequence, in sequential order. + */ + concat(...sources: ObservableOrPromise[]): Observable; + } + + export interface ObservableStatic { + /** + * Concatenates all the observable sequences. + * @param {Array | Arguments} args Arguments or an array to concat to the observable sequence. + * @returns {Observable} An observable sequence that contains the elements of each given sequence, in sequential order. + */ + concat(...sources: ObservableOrPromise[]): Observable; + /** + * Concatenates all the observable sequences. + * @param {Array | Arguments} args Arguments or an array to concat to the observable sequence. + * @returns {Observable} An observable sequence that contains the elements of each given sequence, in sequential order. + */ + concat(sources: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Concatenates an observable sequence of observable sequences. + * @returns {Observable} An observable sequence that contains the elements of each observed inner sequence, in sequential order. + */ + concatAll(): T; + } + + export interface Observable { + /** + * Merges an observable sequence of observable sequences into an observable sequence, limiting the number of concurrent subscriptions to inner sequences. + * Or merges two observable sequences into a single observable sequence. + * + * @example + * 1 - merged = sources.merge(1); + * 2 - merged = source.merge(otherSource); + * @param {Mixed} [maxConcurrentOrOther] Maximum number of inner observable sequences being subscribed to concurrently or the second observable sequence. + * @returns {Observable} The observable sequence that merges the elements of the inner sequences. + */ + merge(maxConcurrent: number): T; + /** + * Merges an observable sequence of observable sequences into an observable sequence, limiting the number of concurrent subscriptions to inner sequences. + * Or merges two observable sequences into a single observable sequence. + * + * @example + * 1 - merged = sources.merge(1); + * 2 - merged = source.merge(otherSource); + * @param {Mixed} [maxConcurrentOrOther] Maximum number of inner observable sequences being subscribed to concurrently or the second observable sequence. + * @returns {Observable} The observable sequence that merges the elements of the inner sequences. + */ + merge(other: ObservableOrPromise): Observable; + } + + export interface ObservableStatic { + /** + * Merges all the observable sequences into a single observable sequence. + * The scheduler is optional and if not specified, the immediate scheduler is used. + * @returns {Observable} The observable sequence that merges the elements of the observable sequences. + */ + merge(...sources: ObservableOrPromise[]): Observable; + /** + * Merges all the observable sequences into a single observable sequence. + * The scheduler is optional and if not specified, the immediate scheduler is used. + * @returns {Observable} The observable sequence that merges the elements of the observable sequences. + */ + merge(sources: ObservableOrPromise[]): Observable; + /** + * Merges all the observable sequences into a single observable sequence. + * The scheduler is optional and if not specified, the immediate scheduler is used. + * @returns {Observable} The observable sequence that merges the elements of the observable sequences. + */ + merge(scheduler: IScheduler, ...sources: ObservableOrPromise[]): Observable; + /** + * Merges all the observable sequences into a single observable sequence. + * The scheduler is optional and if not specified, the immediate scheduler is used. + * @returns {Observable} The observable sequence that merges the elements of the observable sequences. + */ + merge(scheduler: IScheduler, sources: ObservableOrPromise[]): Observable; + } + + export interface ObservableStatic { + /** + * Flattens an Observable that emits Observables into one Observable, in a way that allows an Observer to + * receive all successfully emitted items from all of the source Observables without being interrupted by + * an error notification from one of them. + * + * This behaves like Observable.prototype.mergeAll except that if any of the merged Observables notify of an + * error via the Observer's onError, mergeDelayError will refrain from propagating that + * error notification until all of the merged Observables have finished emitting items. + * @param {Array | Arguments} args Arguments or an array to merge. + * @returns {Observable} an Observable that emits all of the items emitted by the Observables emitted by the Observable + */ + mergeDelayError(...sources: ObservableOrPromise[]): Observable; + /** + * Flattens an Observable that emits Observables into one Observable, in a way that allows an Observer to + * receive all successfully emitted items from all of the source Observables without being interrupted by + * an error notification from one of them. + * + * This behaves like Observable.prototype.mergeAll except that if any of the merged Observables notify of an + * error via the Observer's onError, mergeDelayError will refrain from propagating that + * error notification until all of the merged Observables have finished emitting items. + * @param {Array | Arguments} args Arguments or an array to merge. + * @returns {Observable} an Observable that emits all of the items emitted by the Observables emitted by the Observable + */ + mergeDelayError(sources: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Merges an observable sequence of observable sequences into an observable sequence. + * @returns {Observable} The observable sequence that merges the elements of the inner sequences. + */ + mergeAll(): T; + } + + export interface Observable { + /** + * Returns the values from the source observable sequence only after the other observable sequence produces a value. + * @param {Observable | Promise} other The observable sequence or Promise that triggers propagation of elements of the source sequence. + * @returns {Observable} An observable sequence containing the elements of the source sequence starting from the point the other sequence triggered propagation. + */ + skipUntil(other: ObservableOrPromise): Observable; + } + + export interface Observable { + /** + * Transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @returns {Observable} The observable sequence that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + switch(): T; + /** + * Transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @returns {Observable} The observable sequence that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + switchLatest(): T; + } + + export interface Observable { + /** + * Returns the values from the source observable sequence until the other observable sequence produces a value. + * @param {Observable | Promise} other Observable sequence or Promise that terminates propagation of elements of the source sequence. + * @returns {Observable} An observable sequence containing the elements of the source sequence up to the point the other sequence interrupted further propagation. + */ + takeUntil(other: ObservableOrPromise): Observable; + } + + export interface Observable { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, resultSelector: (v1: T, v2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, ninth: ObservableOrPromise, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8, v9: T9) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + withLatestFrom(souces: ObservableOrPromise[], resultSelector: (firstValue: T, ...otherValues: TOther[]) => TResult): Observable; + } + + export interface ObservableStatic { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(sources: ObservableOrPromise[], resultSelector?: (item1: T1, ...right: T2[]) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, ObservableOrPromise: Observable, resultSelector?: (item1: T1, item2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: Observable, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, source6: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, source6: ObservableOrPromise, source7: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, source6: ObservableOrPromise, source7: ObservableOrPromise, source8: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7, item8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + * @param arguments Observable sources. + * @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources. + * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, source6: ObservableOrPromise, source7: ObservableOrPromise, source8: ObservableOrPromise, source9: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7, item8: T8, item9: T9) => TResult): Observable; + } + + export interface Observable { + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, resultSelector?: (v1: T, v2: T2) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, ninth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8, v9: T9) => TResult): Observable; + /** + * Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index. + * The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args. + * @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function. + */ + zip(souces: ObservableOrPromise[], resultSelector?: (firstValue: T, ...otherValues: TOther[]) => TResult): Observable; + } + + export interface ObservableStatic { + /** + * Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + * @param arguments Observable sources. + * @returns {Observable} An observable sequence containing lists of elements at corresponding indexes. + */ + zipIterable(...sources: Observable[]): Observable; + /** + * Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + * @param arguments Observable sources. + * @returns {Observable} An observable sequence containing lists of elements at corresponding indexes. + */ + zipIterable(sources: Observable[]): Observable; + } + + export interface Observable { + /** + * Hides the identity of an observable sequence. + * @returns {Observable} An observable sequence that hides the identity of the source sequence. + */ + asObservable(): Observable; + } + + export interface Observable { + /** + * Dematerializes the explicit notification values of an observable sequence as implicit notifications. + * @returns {Observable} An observable sequence exhibiting the behavior corresponding to the source sequence's notification values. + */ + dematerialize(): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that contains only distinct contiguous elements according to the keySelector and the comparer. + * + * var obs = observable.distinctUntilChanged(); + * var obs = observable.distinctUntilChanged(function (x) { return x.id; }); + * var obs = observable.distinctUntilChanged(function (x) { return x.id; }, function (x, y) { return x === y; }); + * + * @param {Function} [keySelector] A function to compute the comparison key for each element. If not provided, it projects the value. + * @param {Function} [comparer] Equality comparer for computed key values. If not provided, defaults to an equality comparer function. + * @returns {Observable} An observable sequence only containing the distinct contiguous elements, based on a computed key value, from the source sequence. + */ + distinctUntilChanged(keySelector?: (value: T) => TValue, comparer?: _Comparer): Observable; + } + + export interface Observable { + /** + * Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function | Observer} observerOrOnNext Action to invoke for each element in the observable sequence or an observer. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + do(observer: Observer): Observable; + /** + * Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function | Observer} observerOrOnNext Action to invoke for each element in the observable sequence or an observer. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tap(observer: Observer): Observable; + + /** + * Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function | Observer} observerOrOnNext Action to invoke for each element in the observable sequence or an observer. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + do(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): Observable; + /** + * Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function | Observer} observerOrOnNext Action to invoke for each element in the observable sequence or an observer. + * @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tap(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): Observable; + + /** + * Invokes an action for each element in the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onNext Action to invoke for each element in the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + doOnNext(onNext: (value: T) => void, thisArg?: any): Observable; + /** + * Invokes an action upon exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onError Action to invoke upon exceptional termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + doOnError(onError: (exception: any) => void, thisArg?: any): Observable; + /** + * Invokes an action upon graceful termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onCompleted Action to invoke upon graceful termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + doOnCompleted(onCompleted: () => void, thisArg?: any): Observable; + + /** + * Invokes an action for each element in the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onNext Action to invoke for each element in the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tapOnNext(onNext: (value: T) => void, thisArg?: any): Observable; + /** + * Invokes an action upon exceptional termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onError Action to invoke upon exceptional termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tapOnError(onError: (exception: any) => void, thisArg?: any): Observable; + /** + * Invokes an action upon graceful termination of the observable sequence. + * This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + * @param {Function} onCompleted Action to invoke upon graceful termination of the observable sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} The source sequence with the side-effecting behavior applied. + */ + tapOnCompleted(onCompleted: () => void, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Invokes a specified action after the source observable sequence terminates gracefully or exceptionally. + * @param {Function} finallyAction Action to invoke after the source observable sequence terminates. + * @returns {Observable} Source sequence with the action-invoking termination behavior applied. + */ + finally(action: () => void): Observable; + + /** + * Invokes a specified action after the source observable sequence terminates gracefully or exceptionally. + * @param {Function} finallyAction Action to invoke after the source observable sequence terminates. + * @returns {Observable} Source sequence with the action-invoking termination behavior applied. + */ + ensure(action: () => void): Observable; + } + + export interface Observable { + /** + * Ignores all elements in an observable sequence leaving only the termination messages. + * @returns {Observable} An empty observable sequence that signals termination, successful or exceptional, of the source sequence. + */ + ignoreElements(): Observable; + } + + export interface Observable { + /** + * Materializes the implicit notifications of an observable sequence as explicit notification values. + * @returns {Observable} An observable sequence containing the materialized notification values from the source sequence. + */ + materialize(): Observable; + } + + export interface Observable { + /** + * Repeats the observable sequence a specified number of times. If the repeat count is not specified, the sequence repeats indefinitely. + * @param {Number} [repeatCount] Number of times to repeat the sequence. If not provided, repeats the sequence indefinitely. + * @returns {Observable} The observable sequence producing the elements of the given sequence repeatedly. + */ + repeat(repeatCount?: number): Observable; + } + + export interface Observable { + /** + * Repeats the source observable sequence the specified number of times or until it successfully terminates. If the retry count is not specified, it retries indefinitely. + * Note if you encounter an error and want it to retry once, then you must use .retry(2); + * + * @example + * var res = retried = retry.repeat(); + * var res = retried = retry.repeat(2); + * @param {Number} [retryCount] Number of times to retry the sequence. If not provided, retry the sequence indefinitely. + * @returns {Observable} An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + */ + retry(retryCount?: number): Observable; + } + + export interface Observable { + /** + * Repeats the source observable sequence upon error each time the notifier emits or until it successfully terminates. + * if the notifier completes, the observable sequence completes. + * + * @example + * var timer = Observable.timer(500); + * var source = observable.retryWhen(timer); + * @param {Observable} [notifier] An observable that triggers the retries or completes the observable with onNext or onCompleted respectively. + * @returns {Observable} An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + */ + retryWhen(notifier: (errors: Observable) => Observable): Observable; + } + + export interface Observable { + /** + * Applies an accumulator function over an observable sequence and returns each intermediate result. The optional seed value is used as the initial accumulator value. + * For aggregation behavior with no intermediate results, see Observable.aggregate. + * @example + * var res = source.scan(function (acc, x) { return acc + x; }); + * var res = source.scan(function (acc, x) { return acc + x; }, 0); + * @param {Function} accumulator An accumulator function to be invoked on each element. + * @param {Mixed} [seed] The initial accumulator value. + * @returns {Observable} An observable sequence containing the accumulated values. + */ + scan(accumulator: _Accumulator, seed?: TAcc): Observable; + /** + * Applies an accumulator function over an observable sequence and returns each intermediate result. The optional seed value is used as the initial accumulator value. + * For aggregation behavior with no intermediate results, see Observable.aggregate. + * @example + * var res = source.scan(function (acc, x) { return acc + x; }); + * var res = source.scan(function (acc, x) { return acc + x; }, 0); + * @param {Function} accumulator An accumulator function to be invoked on each element. + * @param {Mixed} [seed] The initial accumulator value. + * @returns {Observable} An observable sequence containing the accumulated values. + */ + scan(accumulator: _Accumulator, seed?: T): Observable; + } + + export interface Observable { + /** + * Bypasses a specified number of elements at the end of an observable sequence. + * @description + * This operator accumulates a queue with a length enough to store the first `count` elements. As more elements are + * received, elements are taken from the front of the queue and produced on the result sequence. This causes elements to be delayed. + * @param count Number of elements to bypass at the end of the source sequence. + * @returns {Observable} An observable sequence containing the source sequence elements except for the bypassed ones at the end. + */ + skipLast(count: number): Observable; + } + + export interface Observable { + /** + * Prepends a sequence of values to an observable sequence with an optional scheduler and an argument list of values to prepend. + * @example + * var res = source.startWith(1, 2, 3); + * var res = source.startWith(Rx.Scheduler.timeout, 1, 2, 3); + * @param {Arguments} args The specified values to prepend to the observable sequence + * @returns {Observable} The source sequence prepended with the specified values. + */ + startWith(...values: T[]): Observable; + /** + * Prepends a sequence of values to an observable sequence with an optional scheduler and an argument list of values to prepend. + * @example + * var res = source.startWith(1, 2, 3); + * var res = source.startWith(Rx.Scheduler.timeout, 1, 2, 3); + * @param {Arguments} args The specified values to prepend to the observable sequence + * @returns {Observable} The source sequence prepended with the specified values. + */ + startWith(scheduler: IScheduler, ...values: T[]): Observable; + } + + export interface Observable { + /** + * Returns a specified number of contiguous elements from the end of an observable sequence. + * @description + * This operator accumulates a buffer with a length enough to store elements count elements. Upon completion of + * the source sequence, this buffer is drained on the result sequence. This causes the elements to be delayed. + * @param {Number} count Number of elements to take from the end of the source sequence. + * @returns {Observable} An observable sequence containing the specified number of elements from the end of the source sequence. + */ + takeLast(count: number): Observable; + } + + export interface Observable { + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + concatMap(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + concatMap(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + concatMap(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + concatMap(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectConcat(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectConcat(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectConcat(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.concatMap(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.concatMap(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the + * source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectConcat(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into a new form by incorporating the element's index. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source. + */ + select(selector: _Selector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new form by incorporating the element's index. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source. + */ + map(selector: _Selector, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Retrieves the value of a specified nested property from all elements in + * the Observable sequence. + * @param {Arguments} arguments The nested properties to pluck. + * @returns {Observable} Returns a new Observable sequence of property values. + */ + pluck(prop: string): Observable; + } + + + export interface Observable { + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMap(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMap(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMap(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + flatMap(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectMany(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectMany(selector: _ValueOrSelector>): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectMany(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * One of the Following: + * Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + * + * @example + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }); + * Or: + * Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + * + * var res = source.selectMany(function (x) { return Rx.Observable.range(0, x); }, function (x, y) { return x + y; }); + * Or: + * Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + * + * var res = source.selectMany(Rx.Observable.fromArray([1,2,3])); + * @param {Function} selector A transform function to apply to each element or an observable sequence to project each element from the source sequence onto which could be either an observable or Promise. + * @param {Function} [resultSelector] A transform function to apply to each element of the intermediate sequence. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + */ + selectMany(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + selectSwitch(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + selectSwitch(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + selectSwitch(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + selectSwitch(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + flatMapLatest(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + flatMapLatest(selector: _ValueOrSelector>): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + flatMapLatest(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + /** + * Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then + * transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + * @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source producing an Observable of Observable sequences + * and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + flatMapLatest(selector: _ValueOrSelector>, resultSelector: special._FlatMapResultSelector, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Bypasses a specified number of elements in an observable sequence and then returns the remaining elements. + * @param {Number} count The number of elements to skip before returning the remaining elements. + * @returns {Observable} An observable sequence that contains the elements that occur after the specified index in the input sequence. + */ + skip(count: number): Observable; + } + + export interface Observable { + /** + * Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. + * The element's index is used in the logic of the predicate function. + * + * var res = source.skipWhile(function (value) { return value < 10; }); + * var res = source.skipWhile(function (value, index) { return value < 10 || index < 10; }); + * @param {Function} predicate A function to test each element for a condition; the second parameter of the function represents the index of the source element. + * @param {Any} [thisArg] Object to use as this when executing callback. + * @returns {Observable} An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. + */ + skipWhile(predicate: _Predicate, thisArg?: any): Observable; + } + + export interface Observable { + /** + * Returns a specified number of contiguous elements from the start of an observable sequence, using the specified scheduler for the edge case of take(0). + * + * var res = source.take(5); + * var res = source.take(0, Rx.Scheduler.timeout); + * @param {Number} count The number of elements to return. + * @param {Scheduler} [scheduler] Scheduler used to produce an OnCompleted message in case | (() => ISubject)): ConnectableObservable; + /** + * Multicasts the source sequence notifications through an instantiated subject into all uses of the sequence within a selector function. Each + * subscription to the resulting sequence causes a separate multicast invocation, exposing the sequence resulting from the selector function's + * invocation. For specializations with fixed subject types, see Publish, PublishLast, and Replay. + * + * @example + * 1 - res = source.multicast(observable); + * 2 - res = source.multicast(function () { return new Subject(); }, function (x) { return x; }); + * + * @param {Function|Subject} subjectOrSubjectSelector + * 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 which can use the multicasted source sequence subject to the policies enforced by the created subject. Specified only if (subjectSelector: ISubject | (() => ISubject), selector: (source: ConnectableObservable) => Observable): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence. + * This operator is a specialization of Multicast using a regular Subject. + * + * @example + * var resres = source.publish(); + * var res = source.publish(function (x) { return x; }); + * + * @param {Function} [selector] 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. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publish(): ConnectableObservable; + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence. + * This operator is a specialization of Multicast using a regular Subject. + * + * @example + * var resres = source.publish(); + * var res = source.publish(function (x) { return x; }); + * + * @param {Function} [selector] 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. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publish(selector: (source: ConnectableObservable) => Observable): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence. + * This operator is a specialization of publish which creates a subscription when the number of observers goes from zero to one, then shares that subscription with all subsequent observers until the number of observers returns to zero, at which point the subscription is disposed. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence. + */ + share(): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + * This operator is a specialization of Multicast using a AsyncSubject. + * + * @example + * var res = source.publishLast(); + * var res = source.publishLast(function (x) { return x; }); + * + * @param 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 only receive the last notification of the source. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishLast(): ConnectableObservable; + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + * This operator is a specialization of Multicast using a AsyncSubject. + * + * @example + * var res = source.publishLast(); + * var res = source.publishLast(function (x) { return x; }); + * + * @param 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 only receive the last notification of the source. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishLast(selector: (source: ConnectableObservable) => Observable): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + * This operator is a specialization of Multicast using a BehaviorSubject. + * + * @example + * var res = source.publishValue(42); + * var res = source.publishValue(function (x) { return x.select(function (y) { return y * y; }) }, 42); + * + * @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 immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + * @param {Mixed} initialValue Initial value received by observers upon subscription. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishValue(initialValue: T): ConnectableObservable; + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + * This operator is a specialization of Multicast using a BehaviorSubject. + * + * @example + * var res = source.publishValue(42); + * var res = source.publishValue(function (x) { return x.select(function (y) { return y * y; }) }, 42); + * + * @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 immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + * @param {Mixed} initialValue Initial value received by observers upon subscription. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + publishValue(selector: (source: ConnectableObservable) => Observable, initialValue: T): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence and starts with an initialValue. + * This operator is a specialization of publishValue which creates a subscription when the number of observers goes from zero to one, then shares that subscription with all subsequent observers until the number of observers returns to zero, at which point the subscription is disposed. + * @param {Mixed} initialValue Initial value received by observers upon subscription. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence. + */ + shareValue(initialValue: T): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + * This operator is a specialization of Multicast using a ReplaySubject. + * + * @example + * var res = source.replay(null, 3); + * var res = source.replay(null, 3, 500); + * var res = source.replay(null, 3, 500, scheduler); + * var res = source.replay(function (x) { return x.take(6).repeat(); }, 3, 500, scheduler); + * + * @param 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 the notifications of the source subject to the specified replay buffer trimming policy. + * @param bufferSize [Optional] Maximum element count of the replay buffer. + * @param windowSize [Optional] Maximum time length of the replay buffer. + * @param scheduler [Optional] Scheduler where connected observers within the selector function will be invoked on. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + replay(selector?: void, bufferSize?: number, window?: number, scheduler?: IScheduler): ConnectableObservable; // hack to catch first omitted parameter + /** + * Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + * This operator is a specialization of Multicast using a ReplaySubject. + * + * @example + * var res = source.replay(null, 3); + * var res = source.replay(null, 3, 500); + * var res = source.replay(null, 3, 500, scheduler); + * var res = source.replay(function (x) { return x.take(6).repeat(); }, 3, 500, scheduler); + * + * @param 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 the notifications of the source subject to the specified replay buffer trimming policy. + * @param bufferSize [Optional] Maximum element count of the replay buffer. + * @param windowSize [Optional] Maximum time length of the replay buffer. + * @param scheduler [Optional] Scheduler where connected observers within the selector function will be invoked on. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + */ + replay(selector: (source: ConnectableObservable) => Observable, bufferSize?: number, window?: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + * This operator is a specialization of replay which creates a subscription when the number of observers goes from zero to one, then shares that subscription with all subsequent observers until the number of observers returns to zero, at which point the subscription is disposed. + * + * @example + * var res = source.shareReplay(3); + * var res = source.shareReplay(3, 500); + * var res = source.shareReplay(3, 500, scheduler); + * + + * @param bufferSize [Optional] Maximum element count of the replay buffer. + * @param window [Optional] Maximum time length of the replay buffer. + * @param scheduler [Optional] Scheduler where connected observers within the selector function will be invoked on. + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source sequence. + */ + shareReplay(bufferSize?: number, window?: number, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Returns an observable sequence that produces a value after each period. + * + * @example + * 1 - res = Rx.Observable.interval(1000); + * 2 - res = Rx.Observable.interval(1000, Rx.Scheduler.timeout); + * + * @param {Number} period Period for producing the values in the resulting sequence (specified as an integer denoting milliseconds). + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, Rx.Scheduler.timeout is used. + * @returns {Observable} An observable sequence that produces a value after each period. + */ + interval(period: number, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Returns an observable sequence that produces a value after dueTime has elapsed and then after each period. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) at which to produce the first value. + * @param {Mixed} [periodOrScheduler] Period to produce subsequent values (specified as an integer denoting milliseconds), or the scheduler to run the timer on. If not specified, the resulting timer is not recurring. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence that produces a value after due time has elapsed and then each period. + */ + timer(dueTime: number, period: number, scheduler?: IScheduler): Observable; + /** + * Returns an observable sequence that produces a value after dueTime has elapsed and then after each period. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) at which to produce the first value. + * @param {Mixed} [periodOrScheduler] Period to produce subsequent values (specified as an integer denoting milliseconds), or the scheduler to run the timer on. If not specified, the resulting timer is not recurring. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence that produces a value after due time has elapsed and then each period. + */ + timer(dueTime: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Time shifts the observable sequence by dueTime. The relative time intervals between the values are preserved. + * + * @example + * 1 - res = Rx.Observable.delay(new Date()); + * 2 - res = Rx.Observable.delay(new Date(), Rx.Scheduler.timeout); + * + * 3 - res = Rx.Observable.delay(5000); + * 4 - res = Rx.Observable.delay(5000, 1000, Rx.Scheduler.timeout); + * @memberOf Observable# + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) by which to shift the observable sequence. + * @param {Scheduler} [scheduler] Scheduler to run the delay timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} Time-shifted sequence. + */ + delay(dueTime: Date, scheduler?: IScheduler): Observable; + /** + * Time shifts the observable sequence by dueTime. The relative time intervals between the values are preserved. + * + * @example + * 1 - res = Rx.Observable.delay(new Date()); + * 2 - res = Rx.Observable.delay(new Date(), Rx.Scheduler.timeout); + * + * 3 - res = Rx.Observable.delay(5000); + * 4 - res = Rx.Observable.delay(5000, 1000, Rx.Scheduler.timeout); + * @memberOf Observable# + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) by which to shift the observable sequence. + * @param {Scheduler} [scheduler] Scheduler to run the delay timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} Time-shifted sequence. + */ + delay(dueTime: number, scheduler?: IScheduler): Observable; + + /** + * Time shifts the observable sequence based on a subscription delay and a delay selector function for each element. + * + * @example + * 1 - res = source.delayWithSelector(function (x) { return Rx.Scheduler.timer(5000); }); // with selector only + * 1 - res = source.delayWithSelector(Rx.Observable.timer(2000), function (x) { return Rx.Observable.timer(x); }); // with delay and selector + * + * @param {Observable} [subscriptionDelay] Sequence indicating the delay for the subscription to the source. + * @param {Function} delayDurationSelector Selector function to retrieve a sequence indicating the delay for each given element. + * @returns {Observable} Time-shifted sequence. + */ + delay(delayDurationSelector: (item: T) => ObservableOrPromise): Observable; + + /** + * Time shifts the observable sequence based on a subscription delay and a delay selector function for each element. + * + * @example + * 1 - res = source.delayWithSelector(function (x) { return Rx.Scheduler.timer(5000); }); // with selector only + * 1 - res = source.delayWithSelector(Rx.Observable.timer(2000), function (x) { return Rx.Observable.timer(x); }); // with delay and selector + * + * @param {Observable} [subscriptionDelay] Sequence indicating the delay for the subscription to the source. + * @param {Function} delayDurationSelector Selector function to retrieve a sequence indicating the delay for each given element. + * @returns {Observable} Time-shifted sequence. + */ + delay(subscriptionDelay: Observable, delayDurationSelector: (item: T) => ObservableOrPromise): Observable; + } + + export interface Observable { + /** + * Ignores values from an observable sequence which are followed by another value before dueTime. + * @param {Number} dueTime Duration of the debounce period for each value (specified as an integer denoting milliseconds). + * @param {Scheduler} [scheduler] Scheduler to run the debounce timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The debounced sequence. + */ + debounce(dueTime: number, scheduler?: IScheduler): Observable; + + /** + * Ignores values from an observable sequence which are followed by another value within a computed throttle duration. + * @param {Function} durationSelector Selector function to retrieve a sequence indicating the throttle duration for each given element. + * @returns {Observable} The debounced sequence. + */ + debounce(debounceDurationSelector: (item: T) => ObservableOrPromise): Observable; + } + + export interface Timestamp { + value: T; + timestamp: number; + } + + export interface Observable { + /** + * Records the timestamp for each value in an observable sequence. + * + * @example + * 1 - res = source.timestamp(); // produces { value: x, timestamp: ts } + * 2 - res = source.timestamp(Rx.Scheduler.default); + * + * @param {Scheduler} [scheduler] Scheduler used to compute timestamps. If not specified, the default scheduler is used. + * @returns {Observable} An observable sequence with timestamp information on values. + */ + timestamp(scheduler?: IScheduler): Observable>; + } + + export interface Observable { + /** + * Samples the observable sequence at each interval. + * + * @example + * 1 - res = source.sample(sampleObservable); // Sampler tick sequence + * 2 - res = source.sample(5000); // 5 seconds + * 2 - res = source.sample(5000, Rx.Scheduler.timeout); // 5 seconds + * + * @param {Mixed} intervalOrSampler Interval at which to sample (specified as an integer denoting milliseconds) or Sampler Observable. + * @param {Scheduler} [scheduler] Scheduler to run the sampling timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Sampled observable sequence. + */ + sample(intervalOrSampler: number, scheduler?: IScheduler): Observable; + /** + * Samples the observable sequence at each interval. + * + * @example + * 1 - res = source.sample(sampleObservable); // Sampler tick sequence + * 2 - res = source.sample(5000); // 5 seconds + * 2 - res = source.sample(5000, Rx.Scheduler.timeout); // 5 seconds + * + * @param {Mixed} intervalOrSampler Interval at which to sample (specified as an integer denoting milliseconds) or Sampler Observable. + * @param {Scheduler} [scheduler] Scheduler to run the sampling timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Sampled observable sequence. + */ + sample(sampler: Observable, scheduler?: IScheduler): Observable; + /** + * Samples the observable sequence at each interval. + * + * @example + * 1 - res = source.sample(sampleObservable); // Sampler tick sequence + * 2 - res = source.sample(5000); // 5 seconds + * 2 - res = source.sample(5000, Rx.Scheduler.timeout); // 5 seconds + * + * @param {Mixed} intervalOrSampler Interval at which to sample (specified as an integer denoting milliseconds) or Sampler Observable. + * @param {Scheduler} [scheduler] Scheduler to run the sampling timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Sampled observable sequence. + */ + throttleLatest(interval: number, scheduler?: IScheduler): Observable; + /** + * Samples the observable sequence at each interval. + * + * @example + * 1 - res = source.sample(sampleObservable); // Sampler tick sequence + * 2 - res = source.sample(5000); // 5 seconds + * 2 - res = source.sample(5000, Rx.Scheduler.timeout); // 5 seconds + * + * @param {Mixed} intervalOrSampler Interval at which to sample (specified as an integer denoting milliseconds) or Sampler Observable. + * @param {Scheduler} [scheduler] Scheduler to run the sampling timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Sampled observable sequence. + */ + throttleLatest(sampler: Observable, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Returns the source observable sequence or the other observable sequence if dueTime elapses. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) when a timeout occurs. + * @param {Scheduler} [scheduler] Scheduler to run the timeout timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(dueTime: Date, scheduler?: IScheduler): Observable; + + /** + * Returns the source observable sequence or the other observable sequence if dueTime elapses. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) when a timeout occurs. + * @param {Observable} [other] Sequence to return in case of a timeout. If not specified, a timeout error throwing sequence will be used. + * @param {Scheduler} [scheduler] Scheduler to run the timeout timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(dueTime: Date, other?: Observable, scheduler?: IScheduler): Observable; + /** + * Returns the source observable sequence or the other observable sequence if dueTime elapses. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) when a timeout occurs. + * @param {Observable} [other] Sequence to return in case of a timeout. If not specified, a timeout error throwing sequence will be used. + * @param {Scheduler} [scheduler] Scheduler to run the timeout timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(dueTime: number, scheduler?: IScheduler): Observable; + /** + * Returns the source observable sequence or the other observable sequence if dueTime elapses. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) when a timeout occurs. + * @param {Observable} [other] Sequence to return in case of a timeout. If not specified, a timeout error throwing sequence will be used. + * @param {Scheduler} [scheduler] Scheduler to run the timeout timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(dueTime: number, other?: Observable, scheduler?: IScheduler): Observable; + + /** + * Returns the source observable sequence, switching to the other observable sequence if a timeout is signaled. + * @param {Function} timeoutDurationSelector Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(timeoutdurationSelector: (item: T) => Observable): Observable; + + /** + * Returns the source observable sequence, switching to the other observable sequence if a timeout is signaled. + * @param {Function} timeoutDurationSelector Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + * @param {Observable} other Sequence to return in case of a timeout. If not provided, this is set to Observable.throwException(). + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(timeoutdurationSelector: (item: T) => Observable, other: Observable): Observable; + + /** + * Returns the source observable sequence, switching to the other observable sequence if a timeout is signaled. + * @param {Observable} [firstTimeout] Observable sequence that represents the timeout for the first element. If not provided, this defaults to Observable.never(). + * @param {Function} timeoutDurationSelector Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + * @param {Observable} [other] Sequence to return in case of a timeout. If not provided, this is set to Observable.throwException(). + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(firstTimeout: Observable, timeoutdurationSelector: (item: T) => Observable, other?: Observable): Observable; + } + + export interface Observable { + /** + * Returns an Observable that emits only the first item emitted by the source Observable during sequential time windows of a specified duration. + * @param {Number} windowDuration time to wait before emitting another item after emitting the last item + * @param {Scheduler} [scheduler] the Scheduler to use internally to manage the timers that handle timeout for each item. If not provided, defaults to Scheduler.timeout. + * @returns {Observable} An Observable that performs the throttle operation. + */ + throttle(windowDuration: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Pauses the underlying observable sequence based upon the observable sequence which yields true/false. + * @example + * var pauser = new Rx.Subject(); + * var source = Rx.Observable.interval(100).pausable(pauser); + * @param {Observable} pauser The observable sequence used to pause the underlying sequence. + * @returns {Observable} The observable sequence which is paused based upon the pauser. + */ + pausable(pauser?: Observable): PausableObservable; + } + + export interface PausableObservable extends Observable { + pause(): void; + resume(): void; + } + + export interface Observable { + /** + * Pauses the underlying observable sequence based upon the observable sequence which yields true/false, + * and yields the values that were buffered while paused. + * @example + * var pauser = new Rx.Subject(); + * var source = Rx.Observable.interval(100).pausableBuffered(pauser); + * @param {Observable} pauser The observable sequence used to pause the underlying sequence. + * @returns {Observable} The observable sequence which is paused based upon the pauser. + */ + pausableBuffered(pauser?: Observable): PausableObservable; + } + + export interface Observable { + /** + * Attaches a controller to the observable sequence with the ability to queue. + * @example + * var source = Rx.Observable.interval(100).controlled(); + * source.request(3); // Reads 3 values + * @param {bool} enableQueue truthy value to determine if values should be queued pending the next request + * @param {Scheduler} scheduler determines how the requests will be scheduled + * @returns {Observable} The observable sequence which only propagates values on request. + */ + controlled(enableQueue?: boolean, scheduler?: IScheduler): ControlledObservable; + } + + export interface ControlledObservable extends Observable { + request(numberOfItems?: number): IDisposable; + } + + export interface Observable { + /** + * Pipes the existing Observable sequence into a Node.js Stream. + * @param {Stream} dest The destination Node.js stream. + * @returns {Stream} The destination stream. + */ + pipe(dest: TDest): TDest; + // TODO: Add link to node.d.ts some where + } + + export interface Observable { + /** + * Executes a transducer to transform the observable sequence + * @param {Transducer} transducer A transducer to execute + * @returns {Observable} An Observable sequence containing the results from the transducer. + */ + transduce(transducer: any): any; + //TODO: Setup transducer + } + + export interface AnonymousObservable extends Observable { } + + export interface AsyncSubject extends Subject { } + + interface AsyncSubjectStatic { + /** + * Creates a subject that can only receive one value and that value is cached for all future observations. + * @constructor + */ + new (): AsyncSubject; + } + + /** + * Represents the result of an asynchronous operation. + * The last value before the OnCompleted notification, or the error received through OnError, is sent to all subscribed observers. + */ + export var AsyncSubject: AsyncSubjectStatic; + + export interface AnonymousSubject extends Subject { } + + interface AnonymousSubjectStatic { + /** + * Creates a subject that can only receive one value and that value is cached for all future observations. + * @constructor + */ + new (): AnonymousSubject; + } + + /** + * Represents the result of an asynchronous operation. + * The last value before the OnCompleted notification, or the error received through OnError, is sent to all subscribed observers. + */ + export var AnonymousSubject: AnonymousSubjectStatic; + + export interface BehaviorSubject extends Subject { + /** + * Gets the current value or throws an exception. + * Value is frozen after onCompleted is called. + * After onError is called always throws the specified exception. + * An exception is always thrown after dispose is called. + * @returns {Mixed} The initial value passed to the constructor until onNext is called; after which, the last value passed to onNext. + */ + getValue(): T; + } + + interface BehaviorSubjectStatic { + /** + * Initializes a new instance of the BehaviorSubject class which creates a subject that caches its last value and starts with the specified value. + * @param {Mixed} value Initial value sent to observers when no other value has been received by the subject yet. + */ + new (initialValue: T): BehaviorSubject; + } + + /** + * Represents a value that changes over time. + * Observers can subscribe to the subject to receive the last (or initial) value and all subsequent notifications. + */ + export var BehaviorSubject: BehaviorSubjectStatic; + + export interface ReplaySubject extends Subject { } + + interface ReplaySubjectStatic { + /** + * Initializes a new instance of the ReplaySubject class with the specified buffer size, window size and scheduler. + * @param {Number} [bufferSize] Maximum element count of the replay buffer. + * @param {Number} [windowSize] Maximum time length of the replay buffer. + * @param {Scheduler} [scheduler] Scheduler the observers are invoked on. + */ + new (bufferSize?: number, window?: number, scheduler?: IScheduler): ReplaySubject; + } + + /** + * Represents an object that is both an observable sequence as well as an observer. + * Each notification is broadcasted to all subscribed and future observers, subject to buffer trimming policies. + */ + export var ReplaySubject: ReplaySubjectStatic; + + /** + * Used to pause and resume streams. + */ + export interface Pauser { + /** + * Pauses the underlying sequence. + */ + pause(): void; + + /** + * Resumes the underlying sequence. + */ + resume(): void; + } + +} + +declare module "rx" { export = Rx; } +declare module "rx.lite" { export = Rx; } diff --git a/node_modules/rx/ts/rx.lite.extras.d.ts b/node_modules/rx/ts/rx.lite.extras.d.ts new file mode 100644 index 0000000..188ea43 --- /dev/null +++ b/node_modules/rx/ts/rx.lite.extras.d.ts @@ -0,0 +1,225 @@ +declare module Rx { + + export interface Observer { + /** + * Creates a notification callback from an observer. + * @returns The action that forwards its input notification to the underlying observer. + */ + toNotifier(): (notification: Notification) => void; + + /** + * Hides the identity of an observer. + * @returns An observer that hides the identity of the specified observer. + */ + asObserver(): Observer; + + /** + * Checks access to the observer for grammar violations. This includes checking for multiple OnError or OnCompleted calls, as well as reentrancy in any of the observer methods. + * If a violation is detected, an Error is thrown from the offending observer method call. + * @returns An observer that checks callbacks invocations against the observer grammar and, if the checks pass, forwards those to the specified observer. + */ + checked(): CheckedObserver; + + /** + * Schedules the invocation of observer methods on the given scheduler. + * @param {Scheduler} scheduler Scheduler to schedule observer messages on. + * @returns {Observer} Observer whose messages are scheduled on the given scheduler. + */ + notifyOn(scheduler: IScheduler): Observer; + } + + export interface ObserverStatic { + /** + * Creates an observer from a notification callback. + * + * @static + * @memberOf Observer + * @param {Function} handler Action that handles a notification. + * @returns The observer object that invokes the specified handler using a notification corresponding to each message it receives. + */ + fromNotifier(handler: (notification: Notification, thisArg?: any) => void): Observer; + } + + export interface Observable { + /** + * Wraps the source sequence in order to run its observer callbacks on the specified scheduler. + * + * This only invokes observer callbacks on a scheduler. In case the subscription and/or unsubscription actions have side-effects + * that require to be run on a scheduler, use subscribeOn. + * + * @param {Scheduler} scheduler Scheduler to notify observers on. + * @returns {Observable} The source sequence whose observations happen on the specified scheduler. + */ + observeOn(scheduler: IScheduler): Observable; + } + + export interface Observable { + /** + * Wraps the source sequence in order to run its subscription and unsubscription logic on the specified scheduler. This operation is not commonly used; + * see the remarks section for more information on the distinction between subscribeOn and observeOn. + + * This only performs the side-effects of subscription and unsubscription on the specified scheduler. In order to invoke observer + * callbacks on a scheduler, use observeOn. + + * @param {Scheduler} scheduler Scheduler to perform subscription and unsubscription actions on. + * @returns {Observable} The source sequence whose subscriptions and unsubscriptions happen on the specified scheduler. + */ + subscribeOn(scheduler: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Generates an observable sequence by running a state-driven loop producing the sequence's elements, using the specified scheduler to send out observer messages. + * + * @example + * var res = Rx.Observable.generate(0, function (x) { return x < 10; }, function (x) { return x + 1; }, function (x) { return x; }); + * var res = Rx.Observable.generate(0, function (x) { return x < 10; }, function (x) { return x + 1; }, function (x) { return x; }, Rx.Scheduler.timeout); + * @param {Mixed} initialState Initial state. + * @param {Function} condition Condition to terminate generation (upon returning false). + * @param {Function} iterate Iteration step function. + * @param {Function} resultSelector Selector function for results produced in the sequence. + * @param {Scheduler} [scheduler] Scheduler on which to run the generator loop. If not provided, defaults to Scheduler.currentThread. + * @returns {Observable} The generated sequence. + */ + generate(initialState: TState, condition: (state: TState) => boolean, iterate: (state: TState) => TState, resultSelector: (state: TState) => TResult, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime. + * @param {Function} resourceFactory Factory function to obtain a resource object. + * @param {Function} observableFactory Factory function to obtain an observable sequence that depends on the obtained resource. + * @returns {Observable} An observable sequence whose lifetime controls the lifetime of the dependent resource object. + */ + using(resourceFactory: () => TResource, observableFactory: (resource: TResource) => Observable): Observable; + } + + export interface Observable { + /** + * Propagates the observable sequence or Promise that reacts first. + * @param {Observable} rightSource Second observable sequence or Promise. + * @returns {Observable} {Observable} An observable sequence that surfaces either of the given sequences, whichever reacted first. + */ + amb(observable: ObservableOrPromise): Observable; + } + + export interface ObservableStatic { + /** + * Propagates the observable sequence or Promise that reacts first. + * @returns {Observable} An observable sequence that surfaces any of the given sequences, whichever reacted first. + */ + amb(observables: ObservableOrPromise[]): Observable; + /** + * Propagates the observable sequence or Promise that reacts first. + * @returns {Observable} An observable sequence that surfaces any of the given sequences, whichever reacted first. + */ + amb(...observables: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Continues an observable sequence that is terminated normally or by an exception with the next observable sequence. + * @param {Observable} second Second observable sequence used to produce results after the first sequence terminates. + * @returns {Observable} An observable sequence that concatenates the first and second sequence, even if the first sequence terminates exceptionally. + */ + onErrorResumeNext(second: ObservableOrPromise): Observable; + } + + export interface ObservableStatic { + /** + * Continues an observable sequence that is terminated normally or by an exception with the next observable sequence. + * + * @example + * 1 - res = Rx.Observable.onErrorResumeNext(xs, ys, zs); + * 1 - res = Rx.Observable.onErrorResumeNext([xs, ys, zs]); + * @returns {Observable} An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + */ + onErrorResumeNext(...sources: ObservableOrPromise[]): Observable; + /** + * Continues an observable sequence that is terminated normally or by an exception with the next observable sequence. + * + * @example + * 1 - res = Rx.Observable.onErrorResumeNext(xs, ys, zs); + * 1 - res = Rx.Observable.onErrorResumeNext([xs, ys, zs]); + * @returns {Observable} An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + */ + onErrorResumeNext(sources: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more buffers which are produced based on element count information. + * @param {Number} count Length of each buffer. + * @param {Number} [skip] Number of elements to skip between creation of consecutive buffers. If not provided, defaults to the count. + * @returns {Observable} An observable sequence of buffers. + */ + bufferWithCount(count: number, skip?: number): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more windows which are produced based on element count information. + * + * var res = xs.windowWithCount(10); + * var res = xs.windowWithCount(10, 1); + * @param {Number} count Length of each window. + * @param {Number} [skip] Number of elements to skip between creation of consecutive windows. If not specified, defaults to the count. + * @returns {Observable} An observable sequence of windows. + */ + windowWithCount(count: number, skip?: number): Observable>; + } + + export interface Observable { + /** + * Returns an array with the specified number of contiguous elements from the end of an observable sequence. + * + * @description + * This operator accumulates a buffer with a length enough to store count elements. Upon completion of the + * source sequence, this buffer is produced on the result sequence. + * @param {Number} count Number of elements to take from the end of the source sequence. + * @returns {Observable} An observable sequence containing a single array with the specified number of elements from the end of the source sequence. + */ + takeLastBuffer(count: number): Observable; + } + + export interface Observable { + /** + * Returns the elements of the specified sequence or the specified value in a singleton sequence if the sequence is empty. + * + * var res = obs = xs.defaultIfEmpty(); + * 2 - obs = xs.defaultIfEmpty(false); + * + * @memberOf Observable# + * @param defaultValue The value to return if the sequence is empty. If not provided, this defaults to null. + * @returns {Observable} An observable sequence that contains the specified default value if the source is empty; otherwise, the elements of the source itself. + */ + defaultIfEmpty(defaultValue?: T): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that contains only distinct elements according to the keySelector and the comparer. + * Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + * + * @example + * var res = obs = xs.distinct(); + * 2 - obs = xs.distinct(function (x) { return x.id; }); + * 2 - obs = xs.distinct(function (x) { return x.id; }, function (a,b) { return a === b; }); + * @param {Function} [keySelector] A function to compute the comparison key for each element. + * @param {Function} [comparer] Used to compare items in the collection. + * @returns {Observable} An observable sequence only containing the distinct elements, based on a computed key value, from the source sequence. + */ + distinct(keySelector?: (value: T) => TKey, keySerializer?: (key: TKey) => string): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence. This observable sequence + * can be resubscribed to, even if all prior subscriptions have ended. (unlike `.publish().refCount()`) + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source. + */ + singleInstance(): Observable; + } + +} +declare module "rx.lite.extras" { export = Rx; } diff --git a/node_modules/rx/ts/rx.lite.extras.es6.d.ts b/node_modules/rx/ts/rx.lite.extras.es6.d.ts new file mode 100644 index 0000000..188ea43 --- /dev/null +++ b/node_modules/rx/ts/rx.lite.extras.es6.d.ts @@ -0,0 +1,225 @@ +declare module Rx { + + export interface Observer { + /** + * Creates a notification callback from an observer. + * @returns The action that forwards its input notification to the underlying observer. + */ + toNotifier(): (notification: Notification) => void; + + /** + * Hides the identity of an observer. + * @returns An observer that hides the identity of the specified observer. + */ + asObserver(): Observer; + + /** + * Checks access to the observer for grammar violations. This includes checking for multiple OnError or OnCompleted calls, as well as reentrancy in any of the observer methods. + * If a violation is detected, an Error is thrown from the offending observer method call. + * @returns An observer that checks callbacks invocations against the observer grammar and, if the checks pass, forwards those to the specified observer. + */ + checked(): CheckedObserver; + + /** + * Schedules the invocation of observer methods on the given scheduler. + * @param {Scheduler} scheduler Scheduler to schedule observer messages on. + * @returns {Observer} Observer whose messages are scheduled on the given scheduler. + */ + notifyOn(scheduler: IScheduler): Observer; + } + + export interface ObserverStatic { + /** + * Creates an observer from a notification callback. + * + * @static + * @memberOf Observer + * @param {Function} handler Action that handles a notification. + * @returns The observer object that invokes the specified handler using a notification corresponding to each message it receives. + */ + fromNotifier(handler: (notification: Notification, thisArg?: any) => void): Observer; + } + + export interface Observable { + /** + * Wraps the source sequence in order to run its observer callbacks on the specified scheduler. + * + * This only invokes observer callbacks on a scheduler. In case the subscription and/or unsubscription actions have side-effects + * that require to be run on a scheduler, use subscribeOn. + * + * @param {Scheduler} scheduler Scheduler to notify observers on. + * @returns {Observable} The source sequence whose observations happen on the specified scheduler. + */ + observeOn(scheduler: IScheduler): Observable; + } + + export interface Observable { + /** + * Wraps the source sequence in order to run its subscription and unsubscription logic on the specified scheduler. This operation is not commonly used; + * see the remarks section for more information on the distinction between subscribeOn and observeOn. + + * This only performs the side-effects of subscription and unsubscription on the specified scheduler. In order to invoke observer + * callbacks on a scheduler, use observeOn. + + * @param {Scheduler} scheduler Scheduler to perform subscription and unsubscription actions on. + * @returns {Observable} The source sequence whose subscriptions and unsubscriptions happen on the specified scheduler. + */ + subscribeOn(scheduler: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Generates an observable sequence by running a state-driven loop producing the sequence's elements, using the specified scheduler to send out observer messages. + * + * @example + * var res = Rx.Observable.generate(0, function (x) { return x < 10; }, function (x) { return x + 1; }, function (x) { return x; }); + * var res = Rx.Observable.generate(0, function (x) { return x < 10; }, function (x) { return x + 1; }, function (x) { return x; }, Rx.Scheduler.timeout); + * @param {Mixed} initialState Initial state. + * @param {Function} condition Condition to terminate generation (upon returning false). + * @param {Function} iterate Iteration step function. + * @param {Function} resultSelector Selector function for results produced in the sequence. + * @param {Scheduler} [scheduler] Scheduler on which to run the generator loop. If not provided, defaults to Scheduler.currentThread. + * @returns {Observable} The generated sequence. + */ + generate(initialState: TState, condition: (state: TState) => boolean, iterate: (state: TState) => TState, resultSelector: (state: TState) => TResult, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime. + * @param {Function} resourceFactory Factory function to obtain a resource object. + * @param {Function} observableFactory Factory function to obtain an observable sequence that depends on the obtained resource. + * @returns {Observable} An observable sequence whose lifetime controls the lifetime of the dependent resource object. + */ + using(resourceFactory: () => TResource, observableFactory: (resource: TResource) => Observable): Observable; + } + + export interface Observable { + /** + * Propagates the observable sequence or Promise that reacts first. + * @param {Observable} rightSource Second observable sequence or Promise. + * @returns {Observable} {Observable} An observable sequence that surfaces either of the given sequences, whichever reacted first. + */ + amb(observable: ObservableOrPromise): Observable; + } + + export interface ObservableStatic { + /** + * Propagates the observable sequence or Promise that reacts first. + * @returns {Observable} An observable sequence that surfaces any of the given sequences, whichever reacted first. + */ + amb(observables: ObservableOrPromise[]): Observable; + /** + * Propagates the observable sequence or Promise that reacts first. + * @returns {Observable} An observable sequence that surfaces any of the given sequences, whichever reacted first. + */ + amb(...observables: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Continues an observable sequence that is terminated normally or by an exception with the next observable sequence. + * @param {Observable} second Second observable sequence used to produce results after the first sequence terminates. + * @returns {Observable} An observable sequence that concatenates the first and second sequence, even if the first sequence terminates exceptionally. + */ + onErrorResumeNext(second: ObservableOrPromise): Observable; + } + + export interface ObservableStatic { + /** + * Continues an observable sequence that is terminated normally or by an exception with the next observable sequence. + * + * @example + * 1 - res = Rx.Observable.onErrorResumeNext(xs, ys, zs); + * 1 - res = Rx.Observable.onErrorResumeNext([xs, ys, zs]); + * @returns {Observable} An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + */ + onErrorResumeNext(...sources: ObservableOrPromise[]): Observable; + /** + * Continues an observable sequence that is terminated normally or by an exception with the next observable sequence. + * + * @example + * 1 - res = Rx.Observable.onErrorResumeNext(xs, ys, zs); + * 1 - res = Rx.Observable.onErrorResumeNext([xs, ys, zs]); + * @returns {Observable} An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + */ + onErrorResumeNext(sources: ObservableOrPromise[]): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more buffers which are produced based on element count information. + * @param {Number} count Length of each buffer. + * @param {Number} [skip] Number of elements to skip between creation of consecutive buffers. If not provided, defaults to the count. + * @returns {Observable} An observable sequence of buffers. + */ + bufferWithCount(count: number, skip?: number): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more windows which are produced based on element count information. + * + * var res = xs.windowWithCount(10); + * var res = xs.windowWithCount(10, 1); + * @param {Number} count Length of each window. + * @param {Number} [skip] Number of elements to skip between creation of consecutive windows. If not specified, defaults to the count. + * @returns {Observable} An observable sequence of windows. + */ + windowWithCount(count: number, skip?: number): Observable>; + } + + export interface Observable { + /** + * Returns an array with the specified number of contiguous elements from the end of an observable sequence. + * + * @description + * This operator accumulates a buffer with a length enough to store count elements. Upon completion of the + * source sequence, this buffer is produced on the result sequence. + * @param {Number} count Number of elements to take from the end of the source sequence. + * @returns {Observable} An observable sequence containing a single array with the specified number of elements from the end of the source sequence. + */ + takeLastBuffer(count: number): Observable; + } + + export interface Observable { + /** + * Returns the elements of the specified sequence or the specified value in a singleton sequence if the sequence is empty. + * + * var res = obs = xs.defaultIfEmpty(); + * 2 - obs = xs.defaultIfEmpty(false); + * + * @memberOf Observable# + * @param defaultValue The value to return if the sequence is empty. If not provided, this defaults to null. + * @returns {Observable} An observable sequence that contains the specified default value if the source is empty; otherwise, the elements of the source itself. + */ + defaultIfEmpty(defaultValue?: T): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that contains only distinct elements according to the keySelector and the comparer. + * Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + * + * @example + * var res = obs = xs.distinct(); + * 2 - obs = xs.distinct(function (x) { return x.id; }); + * 2 - obs = xs.distinct(function (x) { return x.id; }, function (a,b) { return a === b; }); + * @param {Function} [keySelector] A function to compute the comparison key for each element. + * @param {Function} [comparer] Used to compare items in the collection. + * @returns {Observable} An observable sequence only containing the distinct elements, based on a computed key value, from the source sequence. + */ + distinct(keySelector?: (value: T) => TKey, keySerializer?: (key: TKey) => string): Observable; + } + + export interface Observable { + /** + * Returns an observable sequence that shares a single subscription to the underlying sequence. This observable sequence + * can be resubscribed to, even if all prior subscriptions have ended. (unlike `.publish().refCount()`) + * @returns {Observable} An observable sequence that contains the elements of a sequence produced by multicasting the source. + */ + singleInstance(): Observable; + } + +} +declare module "rx.lite.extras" { export = Rx; } diff --git a/node_modules/rx/ts/rx.sorting.d.ts b/node_modules/rx/ts/rx.sorting.d.ts new file mode 100644 index 0000000..c4b352f --- /dev/null +++ b/node_modules/rx/ts/rx.sorting.d.ts @@ -0,0 +1,22 @@ +declare module Rx { + + export interface Observable { + /** + * jortSort checks if your inputs are sorted. Note that this is only for a sequence with an end. + * See http://jort.technology/ for full details. + * @returns {Observable} An observable which has a single value of true if sorted, else false. + */ + jortSort(): Observable; + } + + export interface Observable { + /** + * jortSort checks if your inputs are sorted until another Observable sequence fires. + * See http://jort.technology/ for full details. + * @returns {Observable} An observable which has a single value of true if sorted, else false. + */ + jortSortUntil(other: TOther): Observable; + } + +} +declare module "rx.sorting" { export = Rx; } diff --git a/node_modules/rx/ts/rx.sorting.es6.d.ts b/node_modules/rx/ts/rx.sorting.es6.d.ts new file mode 100644 index 0000000..c4b352f --- /dev/null +++ b/node_modules/rx/ts/rx.sorting.es6.d.ts @@ -0,0 +1,22 @@ +declare module Rx { + + export interface Observable { + /** + * jortSort checks if your inputs are sorted. Note that this is only for a sequence with an end. + * See http://jort.technology/ for full details. + * @returns {Observable} An observable which has a single value of true if sorted, else false. + */ + jortSort(): Observable; + } + + export interface Observable { + /** + * jortSort checks if your inputs are sorted until another Observable sequence fires. + * See http://jort.technology/ for full details. + * @returns {Observable} An observable which has a single value of true if sorted, else false. + */ + jortSortUntil(other: TOther): Observable; + } + +} +declare module "rx.sorting" { export = Rx; } diff --git a/node_modules/rx/ts/rx.testing.d.ts b/node_modules/rx/ts/rx.testing.d.ts new file mode 100644 index 0000000..123dd32 --- /dev/null +++ b/node_modules/rx/ts/rx.testing.d.ts @@ -0,0 +1,210 @@ +declare module Rx { + + export interface Subscription { + /** + * Checks whether the given subscription is equal to the current instance. + * @param other Subscription object to check for equality. + * @returns {Boolean} true if both objects are equal; false otherwise. + */ + equals(other: Subscription): boolean; + /** + * Returns a string representation of the current Subscription value. + * @returns {String} String representation of the current Subscription value. + */ + toString(): string; + } + + interface SubscriptionStatic { + /** + * Creates a new subscription object with the given virtual subscription and unsubscription time. + * + * @constructor + * @param {Number} subscribe Virtual time at which the subscription occurred. + * @param {Number} unsubscribe Virtual time at which the unsubscription occurred. + */ + new (subscribeAt: number, unsubscribeAt?: number): Subscription; + } + + export var Subscription: SubscriptionStatic; + + export interface Recorded { + /** + * Checks whether the given recorded object is equal to the current instance. + * + * @param {Recorded} other Recorded object to check for equality. + * @returns {Boolean} true if both objects are equal; false otherwise. + */ + equals(other: Recorded): boolean; + /** + * Returns a string representation of the current Recorded value. + * + * @returns {String} String representation of the current Recorded value. + */ + toString(): string; + time: number; + value: any; + } + + interface RecordedStatic { + /** + * Creates a new object recording the production of the specified value at the given virtual time. + * + * @constructor + * @param {Number} time Virtual time the value was produced on. + * @param {Mixed} value Value that was produced. + * @param {Function} comparer An optional comparer. + */ + new (time: number, value: any, equalityComparer?: _Comparer): Recorded; + } + + export var Recorded: RecordedStatic; + + export var ReactiveTest: { + /** Default virtual time used for creation of observable sequences in unit tests. */ + created: number; + /** Default virtual time used to subscribe to observable sequences in unit tests. */ + subscribed: number; + /** Default virtual time used to dispose subscriptions in unit tests. */ + disposed: number; + + /** + * Factory method for an OnNext notification record at a given time with a given value or a predicate function. + * + * 1 - ReactiveTest.onNext(200, 42); + * 2 - ReactiveTest.onNext(200, function (x) { return x.length == 2; }); + * + * @param ticks Recorded virtual time the OnNext notification occurs. + * @param value Recorded value stored in the OnNext notification or a predicate. + * @return Recorded OnNext notification. + */ + onNext(ticks: number, value: any): Recorded; + /** + * Factory method for an OnNext notification record at a given time with a given value or a predicate function. + * + * 1 - ReactiveTest.onNext(200, 42); + * 2 - ReactiveTest.onNext(200, function (x) { return x.length == 2; }); + * + * @param ticks Recorded virtual time the OnNext notification occurs. + * @param value Recorded value stored in the OnNext notification or a predicate. + * @return Recorded OnNext notification. + */ + onNext(ticks: number, predicate: (value: any) => boolean): Recorded; + /** + * Factory method for an OnError notification record at a given time with a given error. + * + * 1 - ReactiveTest.onNext(200, new Error('error')); + * 2 - ReactiveTest.onNext(200, function (e) { return e.message === 'error'; }); + * + * @param ticks Recorded virtual time the OnError notification occurs. + * @param exception Recorded exception stored in the OnError notification. + * @return Recorded OnError notification. + */ + onError(ticks: number, exception: any): Recorded; + /** + * Factory method for an OnError notification record at a given time with a given error. + * + * 1 - ReactiveTest.onNext(200, new Error('error')); + * 2 - ReactiveTest.onNext(200, function (e) { return e.message === 'error'; }); + * + * @param ticks Recorded virtual time the OnError notification occurs. + * @param exception Recorded exception stored in the OnError notification. + * @return Recorded OnError notification. + */ + onError(ticks: number, predicate: (exception: any) => boolean): Recorded; + /** + * Factory method for an OnCompleted notification record at a given time. + * + * @param ticks Recorded virtual time the OnCompleted notification occurs. + * @return Recorded OnCompleted notification. + */ + onCompleted(ticks: number): Recorded; + + /** + * Factory method for a subscription record based on a given subscription and disposal time. + * + * @param start Virtual time indicating when the subscription was created. + * @param end Virtual time indicating when the subscription was disposed. + * @return Subscription object. + */ + subscribe(subscribeAt: number, unsubscribeAt?: number): Subscription; + } + + export interface MockObserver extends Observer { + messages: Recorded[]; + } + + interface MockObserverStatic extends ObserverStatic { + new (scheduler: IScheduler): MockObserver; + } + + export var MockObserver: MockObserverStatic; + + + export interface TestScheduler extends VirtualTimeScheduler { + /** + * Creates a cold observable using the specified timestamped notification messages either as an array or arguments. + * @param messages Notifications to surface through the created sequence at their specified virtual time offsets from the sequence subscription time. + * @return Cold observable sequence that can be used to assert the timing of subscriptions and notifications. + */ + createColdObservable(...records: Recorded[]): Observable; + /** + * Creates a hot observable using the specified timestamped notification messages either as an array or arguments. + * @param messages Notifications to surface through the created sequence at their specified absolute virtual times. + * @return Hot observable sequence that can be used to assert the timing of subscriptions and notifications. + */ + createHotObservable(...records: Recorded[]): Observable; + /** + * Creates an observer that records received notification messages and timestamps those. + * @return Observer that can be used to assert the timing of received notifications. + */ + createObserver(): MockObserver; + + /** + * Creates a resolved promise with the given value and ticks + * @param {Number} ticks The absolute time of the resolution. + * @param {Any} value The value to yield at the given tick. + * @returns {MockPromise} A mock Promise which fulfills with the given value. + */ + createResolvedPromise(ticks: number, value: T): IPromise; + /** + * Creates a rejected promise with the given reason and ticks + * @param {Number} ticks The absolute time of the resolution. + * @param {Any} reason The reason for rejection to yield at the given tick. + * @returns {MockPromise} A mock Promise which rejects with the given reason. + */ + createRejectedPromise(ticks: number, value: T): IPromise; + + /** + * Starts the test scheduler and uses the specified virtual times to invoke the factory function, subscribe to the resulting sequence, and dispose the subscription. + * + * @param create Factory method to create an observable sequence. + * @param created Virtual time at which to invoke the factory to create an observable sequence. + * @param subscribed Virtual time at which to subscribe to the created observable sequence. + * @param disposed Virtual time at which to dispose the subscription. + * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. + */ + startWithTiming(create: () => Observable, createdAt: number, subscribedAt: number, disposedAt: number): MockObserver; + /** + * Starts the test scheduler and uses the specified virtual time to dispose the subscription to the sequence obtained through the factory function. + * Default virtual times are used for factory invocation and sequence subscription. + * + * @param create Factory method to create an observable sequence. + * @param disposed Virtual time at which to dispose the subscription. + * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. + */ + startWithDispose(create: () => Observable, disposedAt: number): MockObserver; + /** + * Starts the test scheduler and uses default virtual times to invoke the factory function, to subscribe to the resulting sequence, and to dispose the subscription. + * + * @param create Factory method to create an observable sequence. + * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. + */ + startWithCreate(create: () => Observable): MockObserver; + } + + export var TestScheduler: { + new (): TestScheduler; + } + +} +declare module "rx.testing" { export = Rx; } diff --git a/node_modules/rx/ts/rx.testing.es6.d.ts b/node_modules/rx/ts/rx.testing.es6.d.ts new file mode 100644 index 0000000..123dd32 --- /dev/null +++ b/node_modules/rx/ts/rx.testing.es6.d.ts @@ -0,0 +1,210 @@ +declare module Rx { + + export interface Subscription { + /** + * Checks whether the given subscription is equal to the current instance. + * @param other Subscription object to check for equality. + * @returns {Boolean} true if both objects are equal; false otherwise. + */ + equals(other: Subscription): boolean; + /** + * Returns a string representation of the current Subscription value. + * @returns {String} String representation of the current Subscription value. + */ + toString(): string; + } + + interface SubscriptionStatic { + /** + * Creates a new subscription object with the given virtual subscription and unsubscription time. + * + * @constructor + * @param {Number} subscribe Virtual time at which the subscription occurred. + * @param {Number} unsubscribe Virtual time at which the unsubscription occurred. + */ + new (subscribeAt: number, unsubscribeAt?: number): Subscription; + } + + export var Subscription: SubscriptionStatic; + + export interface Recorded { + /** + * Checks whether the given recorded object is equal to the current instance. + * + * @param {Recorded} other Recorded object to check for equality. + * @returns {Boolean} true if both objects are equal; false otherwise. + */ + equals(other: Recorded): boolean; + /** + * Returns a string representation of the current Recorded value. + * + * @returns {String} String representation of the current Recorded value. + */ + toString(): string; + time: number; + value: any; + } + + interface RecordedStatic { + /** + * Creates a new object recording the production of the specified value at the given virtual time. + * + * @constructor + * @param {Number} time Virtual time the value was produced on. + * @param {Mixed} value Value that was produced. + * @param {Function} comparer An optional comparer. + */ + new (time: number, value: any, equalityComparer?: _Comparer): Recorded; + } + + export var Recorded: RecordedStatic; + + export var ReactiveTest: { + /** Default virtual time used for creation of observable sequences in unit tests. */ + created: number; + /** Default virtual time used to subscribe to observable sequences in unit tests. */ + subscribed: number; + /** Default virtual time used to dispose subscriptions in unit tests. */ + disposed: number; + + /** + * Factory method for an OnNext notification record at a given time with a given value or a predicate function. + * + * 1 - ReactiveTest.onNext(200, 42); + * 2 - ReactiveTest.onNext(200, function (x) { return x.length == 2; }); + * + * @param ticks Recorded virtual time the OnNext notification occurs. + * @param value Recorded value stored in the OnNext notification or a predicate. + * @return Recorded OnNext notification. + */ + onNext(ticks: number, value: any): Recorded; + /** + * Factory method for an OnNext notification record at a given time with a given value or a predicate function. + * + * 1 - ReactiveTest.onNext(200, 42); + * 2 - ReactiveTest.onNext(200, function (x) { return x.length == 2; }); + * + * @param ticks Recorded virtual time the OnNext notification occurs. + * @param value Recorded value stored in the OnNext notification or a predicate. + * @return Recorded OnNext notification. + */ + onNext(ticks: number, predicate: (value: any) => boolean): Recorded; + /** + * Factory method for an OnError notification record at a given time with a given error. + * + * 1 - ReactiveTest.onNext(200, new Error('error')); + * 2 - ReactiveTest.onNext(200, function (e) { return e.message === 'error'; }); + * + * @param ticks Recorded virtual time the OnError notification occurs. + * @param exception Recorded exception stored in the OnError notification. + * @return Recorded OnError notification. + */ + onError(ticks: number, exception: any): Recorded; + /** + * Factory method for an OnError notification record at a given time with a given error. + * + * 1 - ReactiveTest.onNext(200, new Error('error')); + * 2 - ReactiveTest.onNext(200, function (e) { return e.message === 'error'; }); + * + * @param ticks Recorded virtual time the OnError notification occurs. + * @param exception Recorded exception stored in the OnError notification. + * @return Recorded OnError notification. + */ + onError(ticks: number, predicate: (exception: any) => boolean): Recorded; + /** + * Factory method for an OnCompleted notification record at a given time. + * + * @param ticks Recorded virtual time the OnCompleted notification occurs. + * @return Recorded OnCompleted notification. + */ + onCompleted(ticks: number): Recorded; + + /** + * Factory method for a subscription record based on a given subscription and disposal time. + * + * @param start Virtual time indicating when the subscription was created. + * @param end Virtual time indicating when the subscription was disposed. + * @return Subscription object. + */ + subscribe(subscribeAt: number, unsubscribeAt?: number): Subscription; + } + + export interface MockObserver extends Observer { + messages: Recorded[]; + } + + interface MockObserverStatic extends ObserverStatic { + new (scheduler: IScheduler): MockObserver; + } + + export var MockObserver: MockObserverStatic; + + + export interface TestScheduler extends VirtualTimeScheduler { + /** + * Creates a cold observable using the specified timestamped notification messages either as an array or arguments. + * @param messages Notifications to surface through the created sequence at their specified virtual time offsets from the sequence subscription time. + * @return Cold observable sequence that can be used to assert the timing of subscriptions and notifications. + */ + createColdObservable(...records: Recorded[]): Observable; + /** + * Creates a hot observable using the specified timestamped notification messages either as an array or arguments. + * @param messages Notifications to surface through the created sequence at their specified absolute virtual times. + * @return Hot observable sequence that can be used to assert the timing of subscriptions and notifications. + */ + createHotObservable(...records: Recorded[]): Observable; + /** + * Creates an observer that records received notification messages and timestamps those. + * @return Observer that can be used to assert the timing of received notifications. + */ + createObserver(): MockObserver; + + /** + * Creates a resolved promise with the given value and ticks + * @param {Number} ticks The absolute time of the resolution. + * @param {Any} value The value to yield at the given tick. + * @returns {MockPromise} A mock Promise which fulfills with the given value. + */ + createResolvedPromise(ticks: number, value: T): IPromise; + /** + * Creates a rejected promise with the given reason and ticks + * @param {Number} ticks The absolute time of the resolution. + * @param {Any} reason The reason for rejection to yield at the given tick. + * @returns {MockPromise} A mock Promise which rejects with the given reason. + */ + createRejectedPromise(ticks: number, value: T): IPromise; + + /** + * Starts the test scheduler and uses the specified virtual times to invoke the factory function, subscribe to the resulting sequence, and dispose the subscription. + * + * @param create Factory method to create an observable sequence. + * @param created Virtual time at which to invoke the factory to create an observable sequence. + * @param subscribed Virtual time at which to subscribe to the created observable sequence. + * @param disposed Virtual time at which to dispose the subscription. + * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. + */ + startWithTiming(create: () => Observable, createdAt: number, subscribedAt: number, disposedAt: number): MockObserver; + /** + * Starts the test scheduler and uses the specified virtual time to dispose the subscription to the sequence obtained through the factory function. + * Default virtual times are used for factory invocation and sequence subscription. + * + * @param create Factory method to create an observable sequence. + * @param disposed Virtual time at which to dispose the subscription. + * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. + */ + startWithDispose(create: () => Observable, disposedAt: number): MockObserver; + /** + * Starts the test scheduler and uses default virtual times to invoke the factory function, to subscribe to the resulting sequence, and to dispose the subscription. + * + * @param create Factory method to create an observable sequence. + * @return Observer with timestamped recordings of notification messages that were received during the virtual time window when the subscription to the source sequence was active. + */ + startWithCreate(create: () => Observable): MockObserver; + } + + export var TestScheduler: { + new (): TestScheduler; + } + +} +declare module "rx.testing" { export = Rx; } diff --git a/node_modules/rx/ts/rx.time.d.ts b/node_modules/rx/ts/rx.time.d.ts new file mode 100644 index 0000000..6bfca50 --- /dev/null +++ b/node_modules/rx/ts/rx.time.d.ts @@ -0,0 +1,536 @@ +declare module Rx { + + export interface ObservableStatic { + /** + * Returns an observable sequence that produces a value after each period. + * + * @example + * 1 - res = Rx.Observable.interval(1000); + * 2 - res = Rx.Observable.interval(1000, Rx.Scheduler.timeout); + * + * @param {Number} period Period for producing the values in the resulting sequence (specified as an integer denoting milliseconds). + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, Rx.Scheduler.timeout is used. + * @returns {Observable} An observable sequence that produces a value after each period. + */ + interval(period: number, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Returns an observable sequence that produces a value after dueTime has elapsed and then after each period. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) at which to produce the first value. + * @param {Mixed} [periodOrScheduler] Period to produce subsequent values (specified as an integer denoting milliseconds), or the scheduler to run the timer on. If not specified, the resulting timer is not recurring. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence that produces a value after due time has elapsed and then each period. + */ + timer(dueTime: number, period: number, scheduler?: IScheduler): Observable; + /** + * Returns an observable sequence that produces a value after dueTime has elapsed and then after each period. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) at which to produce the first value. + * @param {Mixed} [periodOrScheduler] Period to produce subsequent values (specified as an integer denoting milliseconds), or the scheduler to run the timer on. If not specified, the resulting timer is not recurring. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence that produces a value after due time has elapsed and then each period. + */ + timer(dueTime: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Time shifts the observable sequence by dueTime. The relative time intervals between the values are preserved. + * + * @example + * 1 - res = Rx.Observable.delay(new Date()); + * 2 - res = Rx.Observable.delay(new Date(), Rx.Scheduler.timeout); + * + * 3 - res = Rx.Observable.delay(5000); + * 4 - res = Rx.Observable.delay(5000, 1000, Rx.Scheduler.timeout); + * @memberOf Observable# + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) by which to shift the observable sequence. + * @param {Scheduler} [scheduler] Scheduler to run the delay timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} Time-shifted sequence. + */ + delay(dueTime: Date, scheduler?: IScheduler): Observable; + /** + * Time shifts the observable sequence by dueTime. The relative time intervals between the values are preserved. + * + * @example + * 1 - res = Rx.Observable.delay(new Date()); + * 2 - res = Rx.Observable.delay(new Date(), Rx.Scheduler.timeout); + * + * 3 - res = Rx.Observable.delay(5000); + * 4 - res = Rx.Observable.delay(5000, 1000, Rx.Scheduler.timeout); + * @memberOf Observable# + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) by which to shift the observable sequence. + * @param {Scheduler} [scheduler] Scheduler to run the delay timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} Time-shifted sequence. + */ + delay(dueTime: number, scheduler?: IScheduler): Observable; + + /** + * Time shifts the observable sequence based on a subscription delay and a delay selector function for each element. + * + * @example + * 1 - res = source.delayWithSelector(function (x) { return Rx.Scheduler.timer(5000); }); // with selector only + * 1 - res = source.delayWithSelector(Rx.Observable.timer(2000), function (x) { return Rx.Observable.timer(x); }); // with delay and selector + * + * @param {Observable} [subscriptionDelay] Sequence indicating the delay for the subscription to the source. + * @param {Function} delayDurationSelector Selector function to retrieve a sequence indicating the delay for each given element. + * @returns {Observable} Time-shifted sequence. + */ + delay(delayDurationSelector: (item: T) => ObservableOrPromise): Observable; + + /** + * Time shifts the observable sequence based on a subscription delay and a delay selector function for each element. + * + * @example + * 1 - res = source.delayWithSelector(function (x) { return Rx.Scheduler.timer(5000); }); // with selector only + * 1 - res = source.delayWithSelector(Rx.Observable.timer(2000), function (x) { return Rx.Observable.timer(x); }); // with delay and selector + * + * @param {Observable} [subscriptionDelay] Sequence indicating the delay for the subscription to the source. + * @param {Function} delayDurationSelector Selector function to retrieve a sequence indicating the delay for each given element. + * @returns {Observable} Time-shifted sequence. + */ + delay(subscriptionDelay: Observable, delayDurationSelector: (item: T) => ObservableOrPromise): Observable; + } + + export interface Observable { + /** + * Ignores values from an observable sequence which are followed by another value before dueTime. + * @param {Number} dueTime Duration of the debounce period for each value (specified as an integer denoting milliseconds). + * @param {Scheduler} [scheduler] Scheduler to run the debounce timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The debounced sequence. + */ + debounce(dueTime: number, scheduler?: IScheduler): Observable; + + /** + * Ignores values from an observable sequence which are followed by another value within a computed throttle duration. + * @param {Function} durationSelector Selector function to retrieve a sequence indicating the throttle duration for each given element. + * @returns {Observable} The debounced sequence. + */ + debounce(debounceDurationSelector: (item: T) => ObservableOrPromise): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more windows which are produced based on timing information. + * @param {Number} timeSpan Length of each window (specified as an integer denoting milliseconds). + * @param {Mixed} [timeShiftOrScheduler] Interval between creation of consecutive windows (specified as an integer denoting milliseconds), or an optional scheduler parameter. If not specified, the time shift corresponds to the timeSpan parameter, resulting in non-overlapping adjacent windows. + * @param {Scheduler} [scheduler] Scheduler to run windowing timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence of windows. + */ + windowWithTime(timeSpan: number, timeShift: number, scheduler?: IScheduler): Observable>; + /** + * Projects each element of an observable sequence into zero or more windows which are produced based on timing information. + * @param {Number} timeSpan Length of each window (specified as an integer denoting milliseconds). + * @param {Mixed} [timeShiftOrScheduler] Interval between creation of consecutive windows (specified as an integer denoting milliseconds), or an optional scheduler parameter. If not specified, the time shift corresponds to the timeSpan parameter, resulting in non-overlapping adjacent windows. + * @param {Scheduler} [scheduler] Scheduler to run windowing timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence of windows. + */ + windowWithTime(timeSpan: number, scheduler?: IScheduler): Observable>; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into a window that is completed when either it's full or a given amount of time has elapsed. + * @param {Number} timeSpan Maximum time length of a window. + * @param {Number} count Maximum element count of a window. + * @param {Scheduler} [scheduler] Scheduler to run windowing timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence of windows. + */ + windowWithTimeOrCount(timeSpan: number, count: number, scheduler?: IScheduler): Observable>; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more buffers which are produced based on timing information. + * @param {Number} timeSpan Length of each buffer (specified as an integer denoting milliseconds). + * @param {Mixed} [timeShiftOrScheduler] Interval between creation of consecutive buffers (specified as an integer denoting milliseconds), or an optional scheduler parameter. If not specified, the time shift corresponds to the timeSpan parameter, resulting in non-overlapping adjacent buffers. + * @param {Scheduler} [scheduler] Scheduler to run buffer timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence of buffers. + */ + bufferWithTime(timeSpan: number, timeShift: number, scheduler?: IScheduler): Observable; + /** + * Projects each element of an observable sequence into zero or more buffers which are produced based on timing information. + * @param {Number} timeSpan Length of each buffer (specified as an integer denoting milliseconds). + * @param {Mixed} [timeShiftOrScheduler] Interval between creation of consecutive buffers (specified as an integer denoting milliseconds), or an optional scheduler parameter. If not specified, the time shift corresponds to the timeSpan parameter, resulting in non-overlapping adjacent buffers. + * @param {Scheduler} [scheduler] Scheduler to run buffer timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence of buffers. + */ + bufferWithTime(timeSpan: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into a buffer that is completed when either it's full or a given amount of time has elapsed. + * @param {Number} timeSpan Maximum time length of a buffer. + * @param {Number} count Maximum element count of a buffer. + * @param {Scheduler} [scheduler] Scheduler to run bufferin timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence of buffers. + */ + bufferWithTimeOrCount(timeSpan: number, count: number, scheduler?: IScheduler): Observable; + } + + export interface TimeInterval { + value: T; + interval: number; + } + + export interface Observable { + /** + * Records the time interval between consecutive values in an observable sequence. + * + * @example + * 1 - res = source.timeInterval(); + * 2 - res = source.timeInterval(Rx.Scheduler.timeout); + * + * @param [scheduler] Scheduler used to compute time intervals. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence with time interval information on values. + */ + timeInterval(scheduler?: IScheduler): Observable>; + } + + export interface Timestamp { + value: T; + timestamp: number; + } + + export interface Observable { + /** + * Records the timestamp for each value in an observable sequence. + * + * @example + * 1 - res = source.timestamp(); // produces { value: x, timestamp: ts } + * 2 - res = source.timestamp(Rx.Scheduler.default); + * + * @param {Scheduler} [scheduler] Scheduler used to compute timestamps. If not specified, the default scheduler is used. + * @returns {Observable} An observable sequence with timestamp information on values. + */ + timestamp(scheduler?: IScheduler): Observable>; + } + + export interface Observable { + /** + * Samples the observable sequence at each interval. + * + * @example + * 1 - res = source.sample(sampleObservable); // Sampler tick sequence + * 2 - res = source.sample(5000); // 5 seconds + * 2 - res = source.sample(5000, Rx.Scheduler.timeout); // 5 seconds + * + * @param {Mixed} intervalOrSampler Interval at which to sample (specified as an integer denoting milliseconds) or Sampler Observable. + * @param {Scheduler} [scheduler] Scheduler to run the sampling timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Sampled observable sequence. + */ + sample(intervalOrSampler: number, scheduler?: IScheduler): Observable; + /** + * Samples the observable sequence at each interval. + * + * @example + * 1 - res = source.sample(sampleObservable); // Sampler tick sequence + * 2 - res = source.sample(5000); // 5 seconds + * 2 - res = source.sample(5000, Rx.Scheduler.timeout); // 5 seconds + * + * @param {Mixed} intervalOrSampler Interval at which to sample (specified as an integer denoting milliseconds) or Sampler Observable. + * @param {Scheduler} [scheduler] Scheduler to run the sampling timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Sampled observable sequence. + */ + sample(sampler: Observable, scheduler?: IScheduler): Observable; + /** + * Samples the observable sequence at each interval. + * + * @example + * 1 - res = source.sample(sampleObservable); // Sampler tick sequence + * 2 - res = source.sample(5000); // 5 seconds + * 2 - res = source.sample(5000, Rx.Scheduler.timeout); // 5 seconds + * + * @param {Mixed} intervalOrSampler Interval at which to sample (specified as an integer denoting milliseconds) or Sampler Observable. + * @param {Scheduler} [scheduler] Scheduler to run the sampling timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Sampled observable sequence. + */ + throttleLatest(interval: number, scheduler?: IScheduler): Observable; + /** + * Samples the observable sequence at each interval. + * + * @example + * 1 - res = source.sample(sampleObservable); // Sampler tick sequence + * 2 - res = source.sample(5000); // 5 seconds + * 2 - res = source.sample(5000, Rx.Scheduler.timeout); // 5 seconds + * + * @param {Mixed} intervalOrSampler Interval at which to sample (specified as an integer denoting milliseconds) or Sampler Observable. + * @param {Scheduler} [scheduler] Scheduler to run the sampling timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Sampled observable sequence. + */ + throttleLatest(sampler: Observable, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Returns the source observable sequence or the other observable sequence if dueTime elapses. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) when a timeout occurs. + * @param {Scheduler} [scheduler] Scheduler to run the timeout timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(dueTime: Date, scheduler?: IScheduler): Observable; + + /** + * Returns the source observable sequence or the other observable sequence if dueTime elapses. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) when a timeout occurs. + * @param {Observable} [other] Sequence to return in case of a timeout. If not specified, a timeout error throwing sequence will be used. + * @param {Scheduler} [scheduler] Scheduler to run the timeout timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(dueTime: Date, other?: Observable, scheduler?: IScheduler): Observable; + /** + * Returns the source observable sequence or the other observable sequence if dueTime elapses. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) when a timeout occurs. + * @param {Observable} [other] Sequence to return in case of a timeout. If not specified, a timeout error throwing sequence will be used. + * @param {Scheduler} [scheduler] Scheduler to run the timeout timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(dueTime: number, scheduler?: IScheduler): Observable; + /** + * Returns the source observable sequence or the other observable sequence if dueTime elapses. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) when a timeout occurs. + * @param {Observable} [other] Sequence to return in case of a timeout. If not specified, a timeout error throwing sequence will be used. + * @param {Scheduler} [scheduler] Scheduler to run the timeout timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(dueTime: number, other?: Observable, scheduler?: IScheduler): Observable; + + /** + * Returns the source observable sequence, switching to the other observable sequence if a timeout is signaled. + * @param {Function} timeoutDurationSelector Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(timeoutdurationSelector: (item: T) => Observable): Observable; + + /** + * Returns the source observable sequence, switching to the other observable sequence if a timeout is signaled. + * @param {Function} timeoutDurationSelector Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + * @param {Observable} other Sequence to return in case of a timeout. If not provided, this is set to Observable.throwException(). + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(timeoutdurationSelector: (item: T) => Observable, other: Observable): Observable; + + /** + * Returns the source observable sequence, switching to the other observable sequence if a timeout is signaled. + * @param {Observable} [firstTimeout] Observable sequence that represents the timeout for the first element. If not provided, this defaults to Observable.never(). + * @param {Function} timeoutDurationSelector Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + * @param {Observable} [other] Sequence to return in case of a timeout. If not provided, this is set to Observable.throwException(). + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(firstTimeout: Observable, timeoutdurationSelector: (item: T) => Observable, other?: Observable): Observable; + } + + export interface ObservableStatic { + /** + * Generates an observable sequence by iterating a state from an initial state until the condition fails. + * + * @example + * res = source.generateWithAbsoluteTime(0, + * function (x) { return return true; }, + * function (x) { return x + 1; }, + * function (x) { return x; }, + * function (x) { return new Date(); } + * }); + * + * @param {Mixed} initialState Initial state. + * @param {Function} condition Condition to terminate generation (upon returning false). + * @param {Function} iterate Iteration step function. + * @param {Function} resultSelector Selector function for results produced in the sequence. + * @param {Function} timeSelector Time selector function to control the speed of values being produced each iteration, returning Date values. + * @param {Scheduler} [scheduler] Scheduler on which to run the generator loop. If not specified, the timeout scheduler is used. + * @returns {Observable} The generated sequence. + */ + generateWithAbsoluteTime( + initialState: TState, + condition: (state: TState) => boolean, + iterate: (state: TState) => TState, + resultSelector: (state: TState) => TResult, + timeSelector: (state: TState) => Date, + scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Generates an observable sequence by iterating a state from an initial state until the condition fails. + * + * @example + * res = source.generateWithRelativeTime(0, + * function (x) { return return true; }, + * function (x) { return x + 1; }, + * function (x) { return x; }, + * function (x) { return 500; } + * ); + * + * @param {Mixed} initialState Initial state. + * @param {Function} condition Condition to terminate generation (upon returning false). + * @param {Function} iterate Iteration step function. + * @param {Function} resultSelector Selector function for results produced in the sequence. + * @param {Function} timeSelector Time selector function to control the speed of values being produced each iteration, returning integer values denoting milliseconds. + * @param {Scheduler} [scheduler] Scheduler on which to run the generator loop. If not specified, the timeout scheduler is used. + * @returns {Observable} The generated sequence. + */ + generateWithRelativeTime( + initialState: TState, + condition: (state: TState) => boolean, + iterate: (state: TState) => TState, + resultSelector: (state: TState) => TResult, + timeSelector: (state: TState) => number, + scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Time shifts the observable sequence by delaying the subscription with the specified relative time duration, using the specified scheduler to run timers. + * + * @example + * 1 - res = source.delaySubscription(5000); // 5s + * 2 - res = source.delaySubscription(5000, Rx.Scheduler.default); // 5 seconds + * + * @param {Number} dueTime Relative or absolute time shift of the subscription. + * @param {Scheduler} [scheduler] Scheduler to run the subscription delay timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Time-shifted sequence. + */ + delaySubscription(dueTime: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Skips elements for the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + * + * 1 - res = source.skipLastWithTime(5000); + * 2 - res = source.skipLastWithTime(5000, scheduler); + * + * @description + * This operator accumulates a queue with a length enough to store elements received during the initial duration window. + * As more elements are received, elements older than the specified duration are taken from the queue and produced on the + * result sequence. This causes elements to be delayed with duration. + * @param {Number} duration Duration for skipping elements from the end of the sequence. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout + * @returns {Observable} An observable sequence with the elements skipped during the specified duration from the end of the source sequence. + */ + skipLastWithTime(duration: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Returns elements within the specified duration from the end of the observable source sequence, using the specified schedulers to run timers and to drain the collected elements. + * @description + * This operator accumulates a queue with a length enough to store elements received during the initial duration window. + * As more elements are received, elements older than the specified duration are taken from the queue and produced on the + * result sequence. This causes elements to be delayed with duration. + * @param {Number} duration Duration for taking elements from the end of the sequence. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout. + * @returns {Observable} An observable sequence with the elements taken during the specified duration from the end of the source sequence. + */ + takeLastWithTime(duration: number, timerScheduler?: IScheduler, loopScheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Returns an array with the elements within the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + * @description + * This operator accumulates a queue with a length enough to store elements received during the initial duration window. + * As more elements are received, elements older than the specified duration are taken from the queue and produced on the + * result sequence. This causes elements to be delayed with duration. + * @param {Number} duration Duration for taking elements from the end of the sequence. + * @param {Scheduler} scheduler Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout. + * @returns {Observable} An observable sequence containing a single array with the elements taken during the specified duration from the end of the source sequence. + */ + takeLastBufferWithTime(duration: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Takes elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + * + * @example + * 1 - res = source.takeWithTime(5000, [optional scheduler]); + * @description + * This operator accumulates a queue with a length enough to store elements received during the initial duration window. + * As more elements are received, elements older than the specified duration are taken from the queue and produced on the + * result sequence. This causes elements to be delayed with duration. + * @param {Number} duration Duration for taking elements from the start of the sequence. + * @param {Scheduler} scheduler Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout. + * @returns {Observable} An observable sequence with the elements taken during the specified duration from the start of the source sequence. + */ + takeWithTime(duration: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Skips elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + * + * @example + * 1 - res = source.skipWithTime(5000, [optional scheduler]); + * + * @description + * Specifying a zero value for duration doesn't guarantee no elements will be dropped from the start of the source sequence. + * This is a side-effect of the asynchrony introduced by the scheduler, where the action that causes callbacks from the source sequence to be forwarded + * may not execute immediately, despite the zero due time. + * + * Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the duration. + * @param {Number} duration Duration for skipping elements from the start of the sequence. + * @param {Scheduler} scheduler Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout. + * @returns {Observable} An observable sequence with the elements skipped during the specified duration from the start of the source sequence. + */ + skipWithTime(duration: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Skips elements from the observable source sequence until the specified start time, using the specified scheduler to run timers. + * Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the start time. + * + * @examples + * 1 - res = source.skipUntilWithTime(new Date(), [scheduler]); + * 2 - res = source.skipUntilWithTime(5000, [scheduler]); + * @param {Date|Number} startTime Time to start taking elements from the source sequence. If this value is less than or equal to Date(), no elements will be skipped. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout. + * @returns {Observable} An observable sequence with the elements skipped until the specified start time. + */ + skipUntilWithTime(startTime: Date, scheduler?: IScheduler): Observable; + /** + * Skips elements from the observable source sequence until the specified start time, using the specified scheduler to run timers. + * Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the start time. + * + * @examples + * 1 - res = source.skipUntilWithTime(new Date(), [scheduler]); + * 2 - res = source.skipUntilWithTime(5000, [scheduler]); + * @param {Date|Number} startTime Time to start taking elements from the source sequence. If this value is less than or equal to Date(), no elements will be skipped. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout. + * @returns {Observable} An observable sequence with the elements skipped until the specified start time. + */ + skipUntilWithTime(duration: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Takes elements for the specified duration until the specified end time, using the specified scheduler to run timers. + * @param {Number | Date} endTime Time to stop taking elements from the source sequence. If this value is less than or equal to new Date(), the result stream will complete immediately. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. + * @returns {Observable} An observable sequence with the elements taken until the specified end time. + */ + takeUntilWithTime(endTime: Date, scheduler?: IScheduler): Observable; + /** + * Takes elements for the specified duration until the specified end time, using the specified scheduler to run timers. + * @param {Number | Date} endTime Time to stop taking elements from the source sequence. If this value is less than or equal to new Date(), the result stream will complete immediately. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. + * @returns {Observable} An observable sequence with the elements taken until the specified end time. + */ + takeUntilWithTime(duration: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Returns an Observable that emits only the first item emitted by the source Observable during sequential time windows of a specified duration. + * @param {Number} windowDuration time to wait before emitting another item after emitting the last item + * @param {Scheduler} [scheduler] the Scheduler to use internally to manage the timers that handle timeout for each item. If not provided, defaults to Scheduler.timeout. + * @returns {Observable} An Observable that performs the throttle operation. + */ + throttle(windowDuration: number, scheduler?: IScheduler): Observable; + } + +} +declare module "rx.time" { export = Rx; } diff --git a/node_modules/rx/ts/rx.time.es6.d.ts b/node_modules/rx/ts/rx.time.es6.d.ts new file mode 100644 index 0000000..6bfca50 --- /dev/null +++ b/node_modules/rx/ts/rx.time.es6.d.ts @@ -0,0 +1,536 @@ +declare module Rx { + + export interface ObservableStatic { + /** + * Returns an observable sequence that produces a value after each period. + * + * @example + * 1 - res = Rx.Observable.interval(1000); + * 2 - res = Rx.Observable.interval(1000, Rx.Scheduler.timeout); + * + * @param {Number} period Period for producing the values in the resulting sequence (specified as an integer denoting milliseconds). + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, Rx.Scheduler.timeout is used. + * @returns {Observable} An observable sequence that produces a value after each period. + */ + interval(period: number, scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Returns an observable sequence that produces a value after dueTime has elapsed and then after each period. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) at which to produce the first value. + * @param {Mixed} [periodOrScheduler] Period to produce subsequent values (specified as an integer denoting milliseconds), or the scheduler to run the timer on. If not specified, the resulting timer is not recurring. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence that produces a value after due time has elapsed and then each period. + */ + timer(dueTime: number, period: number, scheduler?: IScheduler): Observable; + /** + * Returns an observable sequence that produces a value after dueTime has elapsed and then after each period. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) at which to produce the first value. + * @param {Mixed} [periodOrScheduler] Period to produce subsequent values (specified as an integer denoting milliseconds), or the scheduler to run the timer on. If not specified, the resulting timer is not recurring. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence that produces a value after due time has elapsed and then each period. + */ + timer(dueTime: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Time shifts the observable sequence by dueTime. The relative time intervals between the values are preserved. + * + * @example + * 1 - res = Rx.Observable.delay(new Date()); + * 2 - res = Rx.Observable.delay(new Date(), Rx.Scheduler.timeout); + * + * 3 - res = Rx.Observable.delay(5000); + * 4 - res = Rx.Observable.delay(5000, 1000, Rx.Scheduler.timeout); + * @memberOf Observable# + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) by which to shift the observable sequence. + * @param {Scheduler} [scheduler] Scheduler to run the delay timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} Time-shifted sequence. + */ + delay(dueTime: Date, scheduler?: IScheduler): Observable; + /** + * Time shifts the observable sequence by dueTime. The relative time intervals between the values are preserved. + * + * @example + * 1 - res = Rx.Observable.delay(new Date()); + * 2 - res = Rx.Observable.delay(new Date(), Rx.Scheduler.timeout); + * + * 3 - res = Rx.Observable.delay(5000); + * 4 - res = Rx.Observable.delay(5000, 1000, Rx.Scheduler.timeout); + * @memberOf Observable# + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) by which to shift the observable sequence. + * @param {Scheduler} [scheduler] Scheduler to run the delay timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} Time-shifted sequence. + */ + delay(dueTime: number, scheduler?: IScheduler): Observable; + + /** + * Time shifts the observable sequence based on a subscription delay and a delay selector function for each element. + * + * @example + * 1 - res = source.delayWithSelector(function (x) { return Rx.Scheduler.timer(5000); }); // with selector only + * 1 - res = source.delayWithSelector(Rx.Observable.timer(2000), function (x) { return Rx.Observable.timer(x); }); // with delay and selector + * + * @param {Observable} [subscriptionDelay] Sequence indicating the delay for the subscription to the source. + * @param {Function} delayDurationSelector Selector function to retrieve a sequence indicating the delay for each given element. + * @returns {Observable} Time-shifted sequence. + */ + delay(delayDurationSelector: (item: T) => ObservableOrPromise): Observable; + + /** + * Time shifts the observable sequence based on a subscription delay and a delay selector function for each element. + * + * @example + * 1 - res = source.delayWithSelector(function (x) { return Rx.Scheduler.timer(5000); }); // with selector only + * 1 - res = source.delayWithSelector(Rx.Observable.timer(2000), function (x) { return Rx.Observable.timer(x); }); // with delay and selector + * + * @param {Observable} [subscriptionDelay] Sequence indicating the delay for the subscription to the source. + * @param {Function} delayDurationSelector Selector function to retrieve a sequence indicating the delay for each given element. + * @returns {Observable} Time-shifted sequence. + */ + delay(subscriptionDelay: Observable, delayDurationSelector: (item: T) => ObservableOrPromise): Observable; + } + + export interface Observable { + /** + * Ignores values from an observable sequence which are followed by another value before dueTime. + * @param {Number} dueTime Duration of the debounce period for each value (specified as an integer denoting milliseconds). + * @param {Scheduler} [scheduler] Scheduler to run the debounce timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The debounced sequence. + */ + debounce(dueTime: number, scheduler?: IScheduler): Observable; + + /** + * Ignores values from an observable sequence which are followed by another value within a computed throttle duration. + * @param {Function} durationSelector Selector function to retrieve a sequence indicating the throttle duration for each given element. + * @returns {Observable} The debounced sequence. + */ + debounce(debounceDurationSelector: (item: T) => ObservableOrPromise): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more windows which are produced based on timing information. + * @param {Number} timeSpan Length of each window (specified as an integer denoting milliseconds). + * @param {Mixed} [timeShiftOrScheduler] Interval between creation of consecutive windows (specified as an integer denoting milliseconds), or an optional scheduler parameter. If not specified, the time shift corresponds to the timeSpan parameter, resulting in non-overlapping adjacent windows. + * @param {Scheduler} [scheduler] Scheduler to run windowing timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence of windows. + */ + windowWithTime(timeSpan: number, timeShift: number, scheduler?: IScheduler): Observable>; + /** + * Projects each element of an observable sequence into zero or more windows which are produced based on timing information. + * @param {Number} timeSpan Length of each window (specified as an integer denoting milliseconds). + * @param {Mixed} [timeShiftOrScheduler] Interval between creation of consecutive windows (specified as an integer denoting milliseconds), or an optional scheduler parameter. If not specified, the time shift corresponds to the timeSpan parameter, resulting in non-overlapping adjacent windows. + * @param {Scheduler} [scheduler] Scheduler to run windowing timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence of windows. + */ + windowWithTime(timeSpan: number, scheduler?: IScheduler): Observable>; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into a window that is completed when either it's full or a given amount of time has elapsed. + * @param {Number} timeSpan Maximum time length of a window. + * @param {Number} count Maximum element count of a window. + * @param {Scheduler} [scheduler] Scheduler to run windowing timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence of windows. + */ + windowWithTimeOrCount(timeSpan: number, count: number, scheduler?: IScheduler): Observable>; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into zero or more buffers which are produced based on timing information. + * @param {Number} timeSpan Length of each buffer (specified as an integer denoting milliseconds). + * @param {Mixed} [timeShiftOrScheduler] Interval between creation of consecutive buffers (specified as an integer denoting milliseconds), or an optional scheduler parameter. If not specified, the time shift corresponds to the timeSpan parameter, resulting in non-overlapping adjacent buffers. + * @param {Scheduler} [scheduler] Scheduler to run buffer timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence of buffers. + */ + bufferWithTime(timeSpan: number, timeShift: number, scheduler?: IScheduler): Observable; + /** + * Projects each element of an observable sequence into zero or more buffers which are produced based on timing information. + * @param {Number} timeSpan Length of each buffer (specified as an integer denoting milliseconds). + * @param {Mixed} [timeShiftOrScheduler] Interval between creation of consecutive buffers (specified as an integer denoting milliseconds), or an optional scheduler parameter. If not specified, the time shift corresponds to the timeSpan parameter, resulting in non-overlapping adjacent buffers. + * @param {Scheduler} [scheduler] Scheduler to run buffer timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence of buffers. + */ + bufferWithTime(timeSpan: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Projects each element of an observable sequence into a buffer that is completed when either it's full or a given amount of time has elapsed. + * @param {Number} timeSpan Maximum time length of a buffer. + * @param {Number} count Maximum element count of a buffer. + * @param {Scheduler} [scheduler] Scheduler to run bufferin timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence of buffers. + */ + bufferWithTimeOrCount(timeSpan: number, count: number, scheduler?: IScheduler): Observable; + } + + export interface TimeInterval { + value: T; + interval: number; + } + + export interface Observable { + /** + * Records the time interval between consecutive values in an observable sequence. + * + * @example + * 1 - res = source.timeInterval(); + * 2 - res = source.timeInterval(Rx.Scheduler.timeout); + * + * @param [scheduler] Scheduler used to compute time intervals. If not specified, the timeout scheduler is used. + * @returns {Observable} An observable sequence with time interval information on values. + */ + timeInterval(scheduler?: IScheduler): Observable>; + } + + export interface Timestamp { + value: T; + timestamp: number; + } + + export interface Observable { + /** + * Records the timestamp for each value in an observable sequence. + * + * @example + * 1 - res = source.timestamp(); // produces { value: x, timestamp: ts } + * 2 - res = source.timestamp(Rx.Scheduler.default); + * + * @param {Scheduler} [scheduler] Scheduler used to compute timestamps. If not specified, the default scheduler is used. + * @returns {Observable} An observable sequence with timestamp information on values. + */ + timestamp(scheduler?: IScheduler): Observable>; + } + + export interface Observable { + /** + * Samples the observable sequence at each interval. + * + * @example + * 1 - res = source.sample(sampleObservable); // Sampler tick sequence + * 2 - res = source.sample(5000); // 5 seconds + * 2 - res = source.sample(5000, Rx.Scheduler.timeout); // 5 seconds + * + * @param {Mixed} intervalOrSampler Interval at which to sample (specified as an integer denoting milliseconds) or Sampler Observable. + * @param {Scheduler} [scheduler] Scheduler to run the sampling timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Sampled observable sequence. + */ + sample(intervalOrSampler: number, scheduler?: IScheduler): Observable; + /** + * Samples the observable sequence at each interval. + * + * @example + * 1 - res = source.sample(sampleObservable); // Sampler tick sequence + * 2 - res = source.sample(5000); // 5 seconds + * 2 - res = source.sample(5000, Rx.Scheduler.timeout); // 5 seconds + * + * @param {Mixed} intervalOrSampler Interval at which to sample (specified as an integer denoting milliseconds) or Sampler Observable. + * @param {Scheduler} [scheduler] Scheduler to run the sampling timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Sampled observable sequence. + */ + sample(sampler: Observable, scheduler?: IScheduler): Observable; + /** + * Samples the observable sequence at each interval. + * + * @example + * 1 - res = source.sample(sampleObservable); // Sampler tick sequence + * 2 - res = source.sample(5000); // 5 seconds + * 2 - res = source.sample(5000, Rx.Scheduler.timeout); // 5 seconds + * + * @param {Mixed} intervalOrSampler Interval at which to sample (specified as an integer denoting milliseconds) or Sampler Observable. + * @param {Scheduler} [scheduler] Scheduler to run the sampling timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Sampled observable sequence. + */ + throttleLatest(interval: number, scheduler?: IScheduler): Observable; + /** + * Samples the observable sequence at each interval. + * + * @example + * 1 - res = source.sample(sampleObservable); // Sampler tick sequence + * 2 - res = source.sample(5000); // 5 seconds + * 2 - res = source.sample(5000, Rx.Scheduler.timeout); // 5 seconds + * + * @param {Mixed} intervalOrSampler Interval at which to sample (specified as an integer denoting milliseconds) or Sampler Observable. + * @param {Scheduler} [scheduler] Scheduler to run the sampling timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Sampled observable sequence. + */ + throttleLatest(sampler: Observable, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Returns the source observable sequence or the other observable sequence if dueTime elapses. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) when a timeout occurs. + * @param {Scheduler} [scheduler] Scheduler to run the timeout timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(dueTime: Date, scheduler?: IScheduler): Observable; + + /** + * Returns the source observable sequence or the other observable sequence if dueTime elapses. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) when a timeout occurs. + * @param {Observable} [other] Sequence to return in case of a timeout. If not specified, a timeout error throwing sequence will be used. + * @param {Scheduler} [scheduler] Scheduler to run the timeout timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(dueTime: Date, other?: Observable, scheduler?: IScheduler): Observable; + /** + * Returns the source observable sequence or the other observable sequence if dueTime elapses. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) when a timeout occurs. + * @param {Observable} [other] Sequence to return in case of a timeout. If not specified, a timeout error throwing sequence will be used. + * @param {Scheduler} [scheduler] Scheduler to run the timeout timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(dueTime: number, scheduler?: IScheduler): Observable; + /** + * Returns the source observable sequence or the other observable sequence if dueTime elapses. + * @param {Number} dueTime Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) when a timeout occurs. + * @param {Observable} [other] Sequence to return in case of a timeout. If not specified, a timeout error throwing sequence will be used. + * @param {Scheduler} [scheduler] Scheduler to run the timeout timers on. If not specified, the timeout scheduler is used. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(dueTime: number, other?: Observable, scheduler?: IScheduler): Observable; + + /** + * Returns the source observable sequence, switching to the other observable sequence if a timeout is signaled. + * @param {Function} timeoutDurationSelector Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(timeoutdurationSelector: (item: T) => Observable): Observable; + + /** + * Returns the source observable sequence, switching to the other observable sequence if a timeout is signaled. + * @param {Function} timeoutDurationSelector Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + * @param {Observable} other Sequence to return in case of a timeout. If not provided, this is set to Observable.throwException(). + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(timeoutdurationSelector: (item: T) => Observable, other: Observable): Observable; + + /** + * Returns the source observable sequence, switching to the other observable sequence if a timeout is signaled. + * @param {Observable} [firstTimeout] Observable sequence that represents the timeout for the first element. If not provided, this defaults to Observable.never(). + * @param {Function} timeoutDurationSelector Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + * @param {Observable} [other] Sequence to return in case of a timeout. If not provided, this is set to Observable.throwException(). + * @returns {Observable} The source sequence switching to the other sequence in case of a timeout. + */ + timeout(firstTimeout: Observable, timeoutdurationSelector: (item: T) => Observable, other?: Observable): Observable; + } + + export interface ObservableStatic { + /** + * Generates an observable sequence by iterating a state from an initial state until the condition fails. + * + * @example + * res = source.generateWithAbsoluteTime(0, + * function (x) { return return true; }, + * function (x) { return x + 1; }, + * function (x) { return x; }, + * function (x) { return new Date(); } + * }); + * + * @param {Mixed} initialState Initial state. + * @param {Function} condition Condition to terminate generation (upon returning false). + * @param {Function} iterate Iteration step function. + * @param {Function} resultSelector Selector function for results produced in the sequence. + * @param {Function} timeSelector Time selector function to control the speed of values being produced each iteration, returning Date values. + * @param {Scheduler} [scheduler] Scheduler on which to run the generator loop. If not specified, the timeout scheduler is used. + * @returns {Observable} The generated sequence. + */ + generateWithAbsoluteTime( + initialState: TState, + condition: (state: TState) => boolean, + iterate: (state: TState) => TState, + resultSelector: (state: TState) => TResult, + timeSelector: (state: TState) => Date, + scheduler?: IScheduler): Observable; + } + + export interface ObservableStatic { + /** + * Generates an observable sequence by iterating a state from an initial state until the condition fails. + * + * @example + * res = source.generateWithRelativeTime(0, + * function (x) { return return true; }, + * function (x) { return x + 1; }, + * function (x) { return x; }, + * function (x) { return 500; } + * ); + * + * @param {Mixed} initialState Initial state. + * @param {Function} condition Condition to terminate generation (upon returning false). + * @param {Function} iterate Iteration step function. + * @param {Function} resultSelector Selector function for results produced in the sequence. + * @param {Function} timeSelector Time selector function to control the speed of values being produced each iteration, returning integer values denoting milliseconds. + * @param {Scheduler} [scheduler] Scheduler on which to run the generator loop. If not specified, the timeout scheduler is used. + * @returns {Observable} The generated sequence. + */ + generateWithRelativeTime( + initialState: TState, + condition: (state: TState) => boolean, + iterate: (state: TState) => TState, + resultSelector: (state: TState) => TResult, + timeSelector: (state: TState) => number, + scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Time shifts the observable sequence by delaying the subscription with the specified relative time duration, using the specified scheduler to run timers. + * + * @example + * 1 - res = source.delaySubscription(5000); // 5s + * 2 - res = source.delaySubscription(5000, Rx.Scheduler.default); // 5 seconds + * + * @param {Number} dueTime Relative or absolute time shift of the subscription. + * @param {Scheduler} [scheduler] Scheduler to run the subscription delay timer on. If not specified, the timeout scheduler is used. + * @returns {Observable} Time-shifted sequence. + */ + delaySubscription(dueTime: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Skips elements for the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + * + * 1 - res = source.skipLastWithTime(5000); + * 2 - res = source.skipLastWithTime(5000, scheduler); + * + * @description + * This operator accumulates a queue with a length enough to store elements received during the initial duration window. + * As more elements are received, elements older than the specified duration are taken from the queue and produced on the + * result sequence. This causes elements to be delayed with duration. + * @param {Number} duration Duration for skipping elements from the end of the sequence. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout + * @returns {Observable} An observable sequence with the elements skipped during the specified duration from the end of the source sequence. + */ + skipLastWithTime(duration: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Returns elements within the specified duration from the end of the observable source sequence, using the specified schedulers to run timers and to drain the collected elements. + * @description + * This operator accumulates a queue with a length enough to store elements received during the initial duration window. + * As more elements are received, elements older than the specified duration are taken from the queue and produced on the + * result sequence. This causes elements to be delayed with duration. + * @param {Number} duration Duration for taking elements from the end of the sequence. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout. + * @returns {Observable} An observable sequence with the elements taken during the specified duration from the end of the source sequence. + */ + takeLastWithTime(duration: number, timerScheduler?: IScheduler, loopScheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Returns an array with the elements within the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + * @description + * This operator accumulates a queue with a length enough to store elements received during the initial duration window. + * As more elements are received, elements older than the specified duration are taken from the queue and produced on the + * result sequence. This causes elements to be delayed with duration. + * @param {Number} duration Duration for taking elements from the end of the sequence. + * @param {Scheduler} scheduler Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout. + * @returns {Observable} An observable sequence containing a single array with the elements taken during the specified duration from the end of the source sequence. + */ + takeLastBufferWithTime(duration: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Takes elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + * + * @example + * 1 - res = source.takeWithTime(5000, [optional scheduler]); + * @description + * This operator accumulates a queue with a length enough to store elements received during the initial duration window. + * As more elements are received, elements older than the specified duration are taken from the queue and produced on the + * result sequence. This causes elements to be delayed with duration. + * @param {Number} duration Duration for taking elements from the start of the sequence. + * @param {Scheduler} scheduler Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout. + * @returns {Observable} An observable sequence with the elements taken during the specified duration from the start of the source sequence. + */ + takeWithTime(duration: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Skips elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + * + * @example + * 1 - res = source.skipWithTime(5000, [optional scheduler]); + * + * @description + * Specifying a zero value for duration doesn't guarantee no elements will be dropped from the start of the source sequence. + * This is a side-effect of the asynchrony introduced by the scheduler, where the action that causes callbacks from the source sequence to be forwarded + * may not execute immediately, despite the zero due time. + * + * Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the duration. + * @param {Number} duration Duration for skipping elements from the start of the sequence. + * @param {Scheduler} scheduler Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout. + * @returns {Observable} An observable sequence with the elements skipped during the specified duration from the start of the source sequence. + */ + skipWithTime(duration: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Skips elements from the observable source sequence until the specified start time, using the specified scheduler to run timers. + * Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the start time. + * + * @examples + * 1 - res = source.skipUntilWithTime(new Date(), [scheduler]); + * 2 - res = source.skipUntilWithTime(5000, [scheduler]); + * @param {Date|Number} startTime Time to start taking elements from the source sequence. If this value is less than or equal to Date(), no elements will be skipped. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout. + * @returns {Observable} An observable sequence with the elements skipped until the specified start time. + */ + skipUntilWithTime(startTime: Date, scheduler?: IScheduler): Observable; + /** + * Skips elements from the observable source sequence until the specified start time, using the specified scheduler to run timers. + * Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the start time. + * + * @examples + * 1 - res = source.skipUntilWithTime(new Date(), [scheduler]); + * 2 - res = source.skipUntilWithTime(5000, [scheduler]); + * @param {Date|Number} startTime Time to start taking elements from the source sequence. If this value is less than or equal to Date(), no elements will be skipped. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, defaults to Rx.Scheduler.timeout. + * @returns {Observable} An observable sequence with the elements skipped until the specified start time. + */ + skipUntilWithTime(duration: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Takes elements for the specified duration until the specified end time, using the specified scheduler to run timers. + * @param {Number | Date} endTime Time to stop taking elements from the source sequence. If this value is less than or equal to new Date(), the result stream will complete immediately. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. + * @returns {Observable} An observable sequence with the elements taken until the specified end time. + */ + takeUntilWithTime(endTime: Date, scheduler?: IScheduler): Observable; + /** + * Takes elements for the specified duration until the specified end time, using the specified scheduler to run timers. + * @param {Number | Date} endTime Time to stop taking elements from the source sequence. If this value is less than or equal to new Date(), the result stream will complete immediately. + * @param {Scheduler} [scheduler] Scheduler to run the timer on. + * @returns {Observable} An observable sequence with the elements taken until the specified end time. + */ + takeUntilWithTime(duration: number, scheduler?: IScheduler): Observable; + } + + export interface Observable { + /** + * Returns an Observable that emits only the first item emitted by the source Observable during sequential time windows of a specified duration. + * @param {Number} windowDuration time to wait before emitting another item after emitting the last item + * @param {Scheduler} [scheduler] the Scheduler to use internally to manage the timers that handle timeout for each item. If not provided, defaults to Scheduler.timeout. + * @returns {Observable} An Observable that performs the throttle operation. + */ + throttle(windowDuration: number, scheduler?: IScheduler): Observable; + } + +} +declare module "rx.time" { export = Rx; } diff --git a/node_modules/rx/ts/rx.virtualtime.d.ts b/node_modules/rx/ts/rx.virtualtime.d.ts new file mode 100644 index 0000000..518a66d --- /dev/null +++ b/node_modules/rx/ts/rx.virtualtime.d.ts @@ -0,0 +1,77 @@ +declare module Rx { + + export interface VirtualTimeScheduler extends IScheduler { + /** + * Adds a relative time value to an absolute time value. + * @param {Number} absolute Absolute virtual time value. + * @param {Number} relative Relative virtual time value to add. + * @return {Number} Resulting absolute virtual time sum value. + */ + add(from: TAbsolute, by: TRelative): TAbsolute; + + /** + * Converts an absolute time to a number + * @param {Any} The absolute time. + * @returns {Number} The absolute time in ms + */ + toAbsoluteTime(duetime: TAbsolute): number; + + /** + * Converts the TimeSpan value to a relative virtual time value. + * @param {Number} timeSpan TimeSpan value to convert. + * @return {Number} Corresponding relative virtual time value. + */ + toRelativeTime(duetime: number): TRelative; + + /** + * Starts the virtual time scheduler. + */ + start(): IDisposable; + + /** + * Stops the virtual time scheduler. + */ + stop(): void; + + /** + * Advances the scheduler's clock to the specified time, running all work till that point. + * @param {Number} time Absolute time to advance the scheduler's clock to. + */ + advanceTo(time: TAbsolute): void; + + /** + * Advances the scheduler's clock by the specified relative time, running all work scheduled for that timespan. + * @param {Number} time Relative time to advance the scheduler's clock by. + */ + advanceBy(time: TRelative): void; + + /** + * Advances the scheduler's clock by the specified relative time. + * @param {Number} time Relative time to advance the scheduler's clock by. + */ + sleep(time: TRelative): void; + + isEnabled: boolean; + + /** + * Gets the next scheduled item to be executed. + * @returns {ScheduledItem} The next scheduled item. + */ + getNext(): internals.ScheduledItem; + } + + export interface HistoricalScheduler extends VirtualTimeScheduler { + } + + export var HistoricalScheduler: { + /** + * Creates a new historical scheduler with the specified initial clock value. + * @constructor + * @param {Number} initialClock Initial value for the clock. + * @param {Function} comparer Comparer to determine causality of events based on absolute time. + */ + new (initialClock: number, comparer: _Comparer): HistoricalScheduler; + }; + +} +declare module "rx.virtualtime" { export = Rx; } diff --git a/node_modules/rx/ts/rx.virtualtime.es6.d.ts b/node_modules/rx/ts/rx.virtualtime.es6.d.ts new file mode 100644 index 0000000..518a66d --- /dev/null +++ b/node_modules/rx/ts/rx.virtualtime.es6.d.ts @@ -0,0 +1,77 @@ +declare module Rx { + + export interface VirtualTimeScheduler extends IScheduler { + /** + * Adds a relative time value to an absolute time value. + * @param {Number} absolute Absolute virtual time value. + * @param {Number} relative Relative virtual time value to add. + * @return {Number} Resulting absolute virtual time sum value. + */ + add(from: TAbsolute, by: TRelative): TAbsolute; + + /** + * Converts an absolute time to a number + * @param {Any} The absolute time. + * @returns {Number} The absolute time in ms + */ + toAbsoluteTime(duetime: TAbsolute): number; + + /** + * Converts the TimeSpan value to a relative virtual time value. + * @param {Number} timeSpan TimeSpan value to convert. + * @return {Number} Corresponding relative virtual time value. + */ + toRelativeTime(duetime: number): TRelative; + + /** + * Starts the virtual time scheduler. + */ + start(): IDisposable; + + /** + * Stops the virtual time scheduler. + */ + stop(): void; + + /** + * Advances the scheduler's clock to the specified time, running all work till that point. + * @param {Number} time Absolute time to advance the scheduler's clock to. + */ + advanceTo(time: TAbsolute): void; + + /** + * Advances the scheduler's clock by the specified relative time, running all work scheduled for that timespan. + * @param {Number} time Relative time to advance the scheduler's clock by. + */ + advanceBy(time: TRelative): void; + + /** + * Advances the scheduler's clock by the specified relative time. + * @param {Number} time Relative time to advance the scheduler's clock by. + */ + sleep(time: TRelative): void; + + isEnabled: boolean; + + /** + * Gets the next scheduled item to be executed. + * @returns {ScheduledItem} The next scheduled item. + */ + getNext(): internals.ScheduledItem; + } + + export interface HistoricalScheduler extends VirtualTimeScheduler { + } + + export var HistoricalScheduler: { + /** + * Creates a new historical scheduler with the specified initial clock value. + * @constructor + * @param {Number} initialClock Initial value for the clock. + * @param {Function} comparer Comparer to determine causality of events based on absolute time. + */ + new (initialClock: number, comparer: _Comparer): HistoricalScheduler; + }; + +} +declare module "rx.virtualtime" { export = Rx; } diff --git a/node_modules/rx/ts/tsconfig.json b/node_modules/rx/ts/tsconfig.json new file mode 100644 index 0000000..c331e86 --- /dev/null +++ b/node_modules/rx/ts/tsconfig.json @@ -0,0 +1,241 @@ +{ + "version": "1.5.0-beta", + "compilerOptions": { + "target": "es5", + "module": "commonjs", + "isolatedModules": false, + "jsx": "react", + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "declaration": false, + "noImplicitAny": true, + "removeComments": true, + "noLib": false, + "preserveConstEnums": true, + "suppressImplicitAnyIndexErrors": true + }, + "compileOnSave": false, + "filesGlob": [ + "./**/*.ts", + "!./core/es*.ts", + "!./**/*.d.ts" + ], + "files": [ + "core/abstractobserver.ts", + "core/anonymousobservable.ts", + "core/anonymousobserver.ts", + "core/backpressure/controlled.ts", + "core/backpressure/pausable.ts", + "core/backpressure/pausablebuffered.ts", + "core/backpressure/pauser.ts", + "core/backpressure/stopandwait.ts", + "core/backpressure/windowed.ts", + "core/checkedobserver.ts", + "core/concurrency/currentthreadscheduler.ts", + "core/concurrency/defaultscheduler.ts", + "core/concurrency/historicalscheduler.ts", + "core/concurrency/immediatescheduler.ts", + "core/concurrency/scheduleditem.ts", + "core/concurrency/scheduleperiodicrecursive.ts", + "core/concurrency/scheduler.periodic.ts", + "core/concurrency/scheduler.recursive.ts", + "core/concurrency/scheduler.ts", + "core/concurrency/scheduler.wrappers.ts", + "core/concurrency/virtualtimescheduler.ts", + "core/disposables/booleandisposable.ts", + "core/disposables/compositedisposable.ts", + "core/disposables/disposable.ts", + "core/disposables/refcountdisposable.ts", + "core/internal/bindcallback.ts", + "core/internal/errors.ts", + "core/internal/isequal.ts", + "core/internal/priorityqueue.ts", + "core/internal/util.ts", + "core/joins/pattern.ts", + "core/joins/plan.ts", + "core/linq/connectableobservable.ts", + "core/linq/groupedobservable.ts", + "core/linq/observable/amb.ts", + "core/linq/observable/ambproto.ts", + "core/linq/observable/and.ts", + "core/linq/observable/asobservable.ts", + "core/linq/observable/average.ts", + "core/linq/observable/buffer.ts", + "core/linq/observable/bufferwithcount.ts", + "core/linq/observable/bufferwithtime.ts", + "core/linq/observable/bufferwithtimeorcount.ts", + "core/linq/observable/case.ts", + "core/linq/observable/catch.ts", + "core/linq/observable/catchproto.ts", + "core/linq/observable/combinelatest.ts", + "core/linq/observable/combinelatestproto.ts", + "core/linq/observable/concat.ts", + "core/linq/observable/concatall.ts", + "core/linq/observable/concatmap.ts", + "core/linq/observable/concatmapobserver.ts", + "core/linq/observable/concatproto.ts", + "core/linq/observable/count.ts", + "core/linq/observable/create.ts", + "core/linq/observable/debounce.ts", + "core/linq/observable/defaultifempty.ts", + "core/linq/observable/defer.ts", + "core/linq/observable/delay.ts", + "core/linq/observable/delaysubscription.ts", + "core/linq/observable/dematerialize.ts", + "core/linq/observable/distinct.ts", + "core/linq/observable/distinctuntilchanged.ts", + "core/linq/observable/dowhile.ts", + "core/linq/observable/elementat.ts", + "core/linq/observable/empty.ts", + "core/linq/observable/every.ts", + "core/linq/observable/expand.ts", + "core/linq/observable/filter.ts", + "core/linq/observable/finally.ts", + "core/linq/observable/find.ts", + "core/linq/observable/findindex.ts", + "core/linq/observable/first.ts", + "core/linq/observable/flatmap.ts", + "core/linq/observable/flatmapfirst.ts", + "core/linq/observable/flatmaplatest.ts", + "core/linq/observable/flatmapwithmaxconcurrent.ts", + "core/linq/observable/for.ts", + "core/linq/observable/forkjoin.ts", + "core/linq/observable/forkjoinproto.ts", + "core/linq/observable/from.ts", + "core/linq/observable/fromarray.ts", + "core/linq/observable/fromcallback.ts", + "core/linq/observable/fromevent.ts", + "core/linq/observable/fromeventpattern.ts", + "core/linq/observable/fromnodecallback.ts", + "core/linq/observable/frompromise.ts", + "core/linq/observable/generate.ts", + "core/linq/observable/generatewithabsolutetime.ts", + "core/linq/observable/generatewithrelativetime.ts", + "core/linq/observable/groupby.ts", + "core/linq/observable/groupbyuntil.ts", + "core/linq/observable/groupjoin.ts", + "core/linq/observable/if.ts", + "core/linq/observable/ignoreelements.ts", + "core/linq/observable/includes.ts", + "core/linq/observable/indexof.ts", + "core/linq/observable/interval.ts", + "core/linq/observable/isempty.ts", + "core/linq/observable/join.ts", + "core/linq/observable/jortsort.ts", + "core/linq/observable/jortsortuntil.ts", + "core/linq/observable/just.ts", + "core/linq/observable/last.ts", + "core/linq/observable/let.ts", + "core/linq/observable/manyselect.ts", + "core/linq/observable/map.ts", + "core/linq/observable/materialize.ts", + "core/linq/observable/max.ts", + "core/linq/observable/maxby.ts", + "core/linq/observable/merge.ts", + "core/linq/observable/mergeall.ts", + "core/linq/observable/mergedelayerror.ts", + "core/linq/observable/mergeproto.ts", + "core/linq/observable/min.ts", + "core/linq/observable/minby.ts", + "core/linq/observable/multicast.ts", + "core/linq/observable/never.ts", + "core/linq/observable/observeon.ts", + "core/linq/observable/of.ts", + "core/linq/observable/ofarraychanges.ts", + "core/linq/observable/ofobjectchanges.ts", + "core/linq/observable/onerrorresumenext.ts", + "core/linq/observable/onerrorresumenextproto.ts", + "core/linq/observable/pairs.ts", + "core/linq/observable/pairwise.ts", + "core/linq/observable/partition.ts", + "core/linq/observable/pipe.ts", + "core/linq/observable/pluck.ts", + "core/linq/observable/publish.ts", + "core/linq/observable/publishlast.ts", + "core/linq/observable/publishvalue.ts", + "core/linq/observable/range.ts", + "core/linq/observable/reduce.ts", + "core/linq/observable/repeat.ts", + "core/linq/observable/repeatproto.ts", + "core/linq/observable/replay.ts", + "core/linq/observable/retry.ts", + "core/linq/observable/retrywhen.ts", + "core/linq/observable/sample.ts", + "core/linq/observable/scan.ts", + "core/linq/observable/selectmanyobserver.ts", + "core/linq/observable/sequenceequal.ts", + "core/linq/observable/share.ts", + "core/linq/observable/sharereplay.ts", + "core/linq/observable/sharevalue.ts", + "core/linq/observable/single.ts", + "core/linq/observable/singleinstance.ts", + "core/linq/observable/skip.ts", + "core/linq/observable/skiplast.ts", + "core/linq/observable/skiplastwithtime.ts", + "core/linq/observable/skipuntil.ts", + "core/linq/observable/skipuntilwithtime.ts", + "core/linq/observable/skipwhile.ts", + "core/linq/observable/skipwithtime.ts", + "core/linq/observable/some.ts", + "core/linq/observable/spawn.ts", + "core/linq/observable/start.ts", + "core/linq/observable/startasync.ts", + "core/linq/observable/startwith.ts", + "core/linq/observable/subscribeon.ts", + "core/linq/observable/sum.ts", + "core/linq/observable/switch.ts", + "core/linq/observable/switchfirst.ts", + "core/linq/observable/take.ts", + "core/linq/observable/takelast.ts", + "core/linq/observable/takelastbuffer.ts", + "core/linq/observable/takelastbufferwithtime.ts", + "core/linq/observable/takelastwithtime.ts", + "core/linq/observable/takeuntil.ts", + "core/linq/observable/takeuntilwithtime.ts", + "core/linq/observable/takewhile.ts", + "core/linq/observable/takewithtime.ts", + "core/linq/observable/tap.ts", + "core/linq/observable/thendo.ts", + "core/linq/observable/throttle.ts", + "core/linq/observable/throw.ts", + "core/linq/observable/timeinterval.ts", + "core/linq/observable/timeout.ts", + "core/linq/observable/timer.ts", + "core/linq/observable/timestamp.ts", + "core/linq/observable/toarray.ts", + "core/linq/observable/toasync.ts", + "core/linq/observable/tomap.ts", + "core/linq/observable/topromise.ts", + "core/linq/observable/toset.ts", + "core/linq/observable/transduce.ts", + "core/linq/observable/using.ts", + "core/linq/observable/when.ts", + "core/linq/observable/while.ts", + "core/linq/observable/window.ts", + "core/linq/observable/windowwithcount.ts", + "core/linq/observable/windowwithtime.ts", + "core/linq/observable/windowwithtimeorcount.ts", + "core/linq/observable/withlatestfrom.ts", + "core/linq/observable/zip.ts", + "core/linq/observable/zipiterable.ts", + "core/linq/observable/zipproto.ts", + "core/notification.ts", + "core/observable.ts", + "core/observer-extras.ts", + "core/observer-lite.ts", + "core/observer.ts", + "core/scheduledobserver.ts", + "core/subjects/anonymoussubject.ts", + "core/subjects/asyncsubject.ts", + "core/subjects/behaviorsubject.ts", + "core/subjects/replaysubject.ts", + "core/subjects/subject.ts", + "core/testing/mockdisposable.ts", + "core/testing/mockobserver.ts", + "core/testing/reactivetest.ts", + "core/testing/recorded.ts", + "core/testing/subscription.ts", + "core/testing/testscheduler.ts" + ], + "exclude": [] +} diff --git a/node_modules/rxjs/AsyncSubject.d.ts b/node_modules/rxjs/AsyncSubject.d.ts new file mode 100644 index 0000000..2c4d977 --- /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 0000000..d32cac1 --- /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 0000000..704e953 --- /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 0000000..f8b4f44 --- /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 0000000..f31d4bf --- /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 0000000..825e04b --- /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 0000000..79e3b4a --- /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 0000000..5c4153a --- /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 0000000..a4825ae --- /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 0000000..031ce38 --- /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 0000000..5d9956d --- /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 0000000..8a53935 --- /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 0000000..890b860 --- /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 0000000..cc1e68d --- /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 0000000..231f7df --- /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 0000000..5fecdc6 --- /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 0000000..867ce2f --- /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 0000000..c4d5488 --- /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 0000000..0272f21 --- /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 0000000..fb9a9f9 --- /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 0000000..3c44713 --- /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 0000000..3ca1e3b --- /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 0000000..9060ae7 --- /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 0000000..4715481 --- /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 0000000..8476f04 --- /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 0000000..f92dafd --- /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 0000000..b66aea9 --- /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 0000000..4c2bcf5 --- /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 0000000..f6e866e --- /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 0000000..5796fc6 --- /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 0000000..112c071 --- /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 0000000..917f45e --- /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 0000000..c21eb1f --- /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 0000000..c12359e --- /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 0000000..172522c --- /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 0000000..7448233 --- /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 0000000..c57058f --- /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 0000000..f587544 --- /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 0000000..4f481ce --- /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 0000000..e82afb1 --- /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 0000000..15fa5b4 --- /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 0000000..15356d5 --- /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 0000000..79cfe91 --- /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 0000000..c566f0d --- /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 0000000..028cf4c --- /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 0000000..0431872 --- /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 0000000..948a0d9 --- /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 0000000..031ce38 --- /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 0000000..f92dafd --- /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 0000000..6d17439 --- /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 0000000..038e2b1 --- /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 0000000..e851987 --- /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 0000000..8bf783b --- /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 0000000..0cc9f2c --- /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 0000000..1297789 --- /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 0000000..0461e19 --- /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 0000000..9de2eb9 --- /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 0000000..5365f5a --- /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 0000000..a99b981 --- /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 0000000..c7d77aa --- /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 0000000..d8d3d5e --- /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 0000000..1c7b4c7 --- /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 0000000..2c4a906 --- /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 0000000..29713d0 --- /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 0000000..eb38dbf --- /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":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/Observable.js b/node_modules/rxjs/_esm2015/internal/Observable.js new file mode 100644 index 0000000..4904b3f --- /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 0000000..32197d0 --- /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 0000000..22a6aca --- /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 0000000..cf2a2d3 --- /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 0000000..463a42e --- /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 0000000..f45f5ad --- /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 0000000..fa93e84 --- /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 0000000..41b6683 --- /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 0000000..5bc6c76 --- /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 0000000..5a5a15d --- /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 0000000..1bbe29c --- /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 0000000..059580f --- /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 0000000..9c0ab99 --- /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 0000000..4bc5f39 --- /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 0000000..7bdf815 --- /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 0000000..a826b0f --- /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 0000000..0f1c5df --- /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 0000000..ef477fb --- /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 0000000..7dfed3c --- /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 0000000..174aa15 --- /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":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,KAAK,IAAI,aAAa,EAAE,MAAM,YAAY,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAYzD,MAAM,OAAO,UAAc,SAAQ,YAAY;IAuC7C,YAAY,iBAA+D,EAC/D,KAAyB,EACzB,QAAqB;QAC/B,KAAK,EAAE,CAAC;QAlBO,mBAAc,GAAQ,IAAI,CAAC;QAC3B,oBAAe,GAAY,KAAK,CAAC;QACjC,uBAAkB,GAAY,KAAK,CAAC;QAE3C,cAAS,GAAY,KAAK,CAAC;QAgBnC,QAAQ,SAAS,CAAC,MAAM,EAAE;YACxB,KAAK,CAAC;gBACJ,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC;gBACjC,MAAM;YACR,KAAK,CAAC;gBACJ,IAAI,CAAC,iBAAiB,EAAE;oBACtB,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC;oBACjC,MAAM;iBACP;gBACD,IAAI,OAAO,iBAAiB,KAAK,QAAQ,EAAE;oBACzC,IAAI,iBAAiB,YAAY,UAAU,EAAE;wBAC3C,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC,kBAAkB,CAAC;wBAC/D,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC;wBACrC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;qBAC7B;yBAAM;wBACL,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;wBAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,cAAc,CAAI,IAAI,EAAyB,iBAAiB,CAAC,CAAC;qBAC1F;oBACD,MAAM;iBACP;YACH;gBACE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;gBAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,cAAc,CAAI,IAAI,EAAyB,iBAAiB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAC1G,MAAM;SACT;IACH,CAAC;IAnED,CAAC,kBAAkB,CAAC,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;IAcvC,MAAM,CAAC,MAAM,CAAI,IAAsB,EACtB,KAAyB,EACzB,QAAqB;QACpC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACzD,UAAU,CAAC,kBAAkB,GAAG,KAAK,CAAC;QACtC,OAAO,UAAU,CAAC;IACpB,CAAC;IAwDD,IAAI,CAAC,KAAS;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACnB;IACH,CAAC;IASD,KAAK,CAAC,GAAS;QACb,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAClB;IACH,CAAC;IAQD,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;IACH,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO;SACR;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,KAAK,CAAC,WAAW,EAAE,CAAC;IACtB,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAES,MAAM,CAAC,GAAQ;QACvB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAGD,sBAAsB;QACpB,MAAM,EAAG,gBAAgB,EAAE,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAOD,MAAM,OAAO,cAAkB,SAAQ,UAAa;IAIlD,YAAoB,iBAAgC,EACxC,cAA0D,EAC1D,KAAyB,EACzB,QAAqB;QAC/B,KAAK,EAAE,CAAC;QAJU,sBAAiB,GAAjB,iBAAiB,CAAe;QAMlD,IAAI,IAA0B,CAAC;QAC/B,IAAI,OAAO,GAAQ,IAAI,CAAC;QAExB,IAAI,UAAU,CAAC,cAAc,CAAC,EAAE;YAC9B,IAAI,GAA2B,cAAe,CAAC;SAChD;aAAM,IAAI,cAAc,EAAE;YACzB,IAAI,GAAyB,cAAe,CAAC,IAAI,CAAC;YAClD,KAAK,GAAyB,cAAe,CAAC,KAAK,CAAC;YACpD,QAAQ,GAAyB,cAAe,CAAC,QAAQ,CAAC;YAC1D,IAAI,cAAc,KAAK,aAAa,EAAE;gBACpC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;gBACxC,IAAI,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;oBACnC,IAAI,CAAC,GAAG,CAAc,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;iBAC1D;gBACD,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACnD;SACF;QAED,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,IAAI,CAAC,KAAS;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE;YACjC,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,qCAAqC,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE;gBAC1F,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;aACtC;iBAAM,IAAI,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;gBACrE,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;SACF;IACH,CAAC;IAED,KAAK,CAAC,GAAS;QACb,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;YACnC,MAAM,EAAE,qCAAqC,EAAE,GAAG,MAAM,CAAC;YACzD,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,IAAI,CAAC,qCAAqC,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE;oBACnF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;oBACpC,IAAI,CAAC,WAAW,EAAE,CAAC;iBACpB;qBAAM;oBACL,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;oBAC1D,IAAI,CAAC,WAAW,EAAE,CAAC;iBACpB;aACF;iBAAM,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE;gBAChD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,qCAAqC,EAAE;oBACzC,MAAM,GAAG,CAAC;iBACX;gBACD,eAAe,CAAC,GAAG,CAAC,CAAC;aACtB;iBAAM;gBACL,IAAI,qCAAqC,EAAE;oBACzC,iBAAiB,CAAC,cAAc,GAAG,GAAG,CAAC;oBACvC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC;iBAC1C;qBAAM;oBACL,eAAe,CAAC,GAAG,CAAC,CAAC;iBACtB;gBACD,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;SACF;IACH,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;YACnC,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAEjE,IAAI,CAAC,MAAM,CAAC,qCAAqC,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE;oBAC1F,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;oBACnC,IAAI,CAAC,WAAW,EAAE,CAAC;iBACpB;qBAAM;oBACL,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;oBACzD,IAAI,CAAC,WAAW,EAAE,CAAC;iBACpB;aACF;iBAAM;gBACL,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;SACF;IACH,CAAC;IAEO,YAAY,CAAC,EAAY,EAAE,KAAW;QAC5C,IAAI;YACF,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;SAC/B;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,MAAM,CAAC,qCAAqC,EAAE;gBAChD,MAAM,GAAG,CAAC;aACX;iBAAM;gBACL,eAAe,CAAC,GAAG,CAAC,CAAC;aACtB;SACF;IACH,CAAC;IAEO,eAAe,CAAC,MAAqB,EAAE,EAAY,EAAE,KAAW;QACtE,IAAI,CAAC,MAAM,CAAC,qCAAqC,EAAE;YACjD,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;SAC7B;QACD,IAAI;YACF,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;SAC/B;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,MAAM,CAAC,qCAAqC,EAAE;gBAChD,MAAM,CAAC,cAAc,GAAG,GAAG,CAAC;gBAC5B,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC9B,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,eAAe,CAAC,GAAG,CAAC,CAAC;gBACrB,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAGD,YAAY;QACV,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,iBAAiB,CAAC,WAAW,EAAE,CAAC;IAClC,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/Subscription.js b/node_modules/rxjs/_esm2015/internal/Subscription.js new file mode 100644 index 0000000..82ac7b7 --- /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 0000000..9cfdb28 --- /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":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAejE,MAAM,OAAO,YAAY;IAsBvB,YAAY,WAAwB;QAX7B,WAAM,GAAY,KAAK,CAAC;QAGrB,qBAAgB,GAAkC,IAAI,CAAC;QAEzD,mBAAc,GAAuB,IAAI,CAAC;QAOhD,IAAI,WAAW,EAAE;YACd,IAAY,CAAC,gBAAgB,GAAG,IAAI,CAAC;YACrC,IAAY,CAAC,YAAY,GAAG,WAAW,CAAC;SAC1C;IACH,CAAC;IAQD,WAAW;QACT,IAAI,MAAa,CAAC;QAElB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO;SACR;QAED,IAAI,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,cAAc,EAAE,GAAI,IAAY,CAAC;QAEzF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAG7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAE3B,IAAI,gBAAgB,YAAY,YAAY,EAAE;YAC5C,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAC/B;aAAM,IAAI,gBAAgB,KAAK,IAAI,EAAE;YACpC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,gBAAgB,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE;gBAC5D,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBACvC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aACrB;SACF;QAED,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE;YAU5B,IAAI,gBAAgB,EAAE;gBACnB,IAAY,CAAC,YAAY,GAAG,SAAS,CAAC;aACxC;YACD,IAAI;gBACF,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACzB;YAAC,OAAO,CAAC,EAAE;gBACV,MAAM,GAAG,CAAC,YAAY,mBAAmB,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACzF;SACF;QAED,IAAI,OAAO,CAAC,cAAc,CAAC,EAAE;YAC3B,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;YACf,IAAI,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC;YAEhC,OAAO,EAAE,KAAK,GAAG,GAAG,EAAE;gBACpB,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;gBAClC,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;oBACjB,IAAI;wBACF,GAAG,CAAC,WAAW,EAAE,CAAC;qBACnB;oBAAC,OAAO,CAAC,EAAE;wBACV,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;wBACtB,IAAI,CAAC,YAAY,mBAAmB,EAAE;4BACpC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;yBAC/D;6BAAM;4BACL,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;yBAChB;qBACF;iBACF;aACF;SACF;QAED,IAAI,MAAM,EAAE;YACV,MAAM,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;SACvC;IACH,CAAC;IAsBD,GAAG,CAAC,QAAuB;QACzB,IAAI,YAAY,GAAkB,QAAS,CAAC;QAE5C,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO,YAAY,CAAC,KAAK,CAAC;SAC3B;QAED,QAAQ,OAAO,QAAQ,EAAE;YACvB,KAAK,UAAU;gBACb,YAAY,GAAG,IAAI,YAAY,CAAe,QAAQ,CAAC,CAAC;YAC1D,KAAK,QAAQ;gBACX,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,CAAC,MAAM,IAAI,OAAO,YAAY,CAAC,WAAW,KAAK,UAAU,EAAE;oBAElG,OAAO,YAAY,CAAC;iBACrB;qBAAM,IAAI,IAAI,CAAC,MAAM,EAAE;oBACtB,YAAY,CAAC,WAAW,EAAE,CAAC;oBAC3B,OAAO,YAAY,CAAC;iBACrB;qBAAM,IAAI,CAAC,CAAC,YAAY,YAAY,YAAY,CAAC,EAAE;oBAClD,MAAM,GAAG,GAAG,YAAY,CAAC;oBACzB,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;oBAClC,YAAY,CAAC,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC;iBACrC;gBACD,MAAM;YACR,OAAO,CAAC,CAAC;gBACP,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,QAAQ,GAAG,yBAAyB,CAAC,CAAC;aAClF;SACF;QAGD,IAAI,EAAE,gBAAgB,EAAE,GAAG,YAAY,CAAC;QACxC,IAAI,gBAAgB,KAAK,IAAI,EAAE;YAG7B,YAAY,CAAC,gBAAgB,GAAG,IAAI,CAAC;SACtC;aAAM,IAAI,gBAAgB,YAAY,YAAY,EAAE;YACnD,IAAI,gBAAgB,KAAK,IAAI,EAAE;gBAE7B,OAAO,YAAY,CAAC;aACrB;YAGD,YAAY,CAAC,gBAAgB,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;SAC1D;aAAM,IAAI,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;YAEhD,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC7B;aAAM;YAEL,OAAO,YAAY,CAAC;SACrB;QAGD,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,aAAa,KAAK,IAAI,EAAE;YAC1B,IAAI,CAAC,cAAc,GAAG,CAAC,YAAY,CAAC,CAAC;SACtC;aAAM;YACL,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAClC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAQD,MAAM,CAAC,YAA0B;QAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,aAAa,EAAE;YACjB,MAAM,iBAAiB,GAAG,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAC9D,IAAI,iBAAiB,KAAK,CAAC,CAAC,EAAE;gBAC5B,aAAa,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;aAC5C;SACF;IACH,CAAC;;AAtMa,kBAAK,GAAiB,CAAC,UAAS,KAAU;IACtD,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,KAAK,CAAC;AACf,CAAC,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC,CAAC;AAsMzB,SAAS,2BAA2B,CAAC,MAAa;IACjD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,YAAY,mBAAmB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AAC/G,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/config.js b/node_modules/rxjs/_esm2015/internal/config.js new file mode 100644 index 0000000..d237f15 --- /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 0000000..1b8c5be --- /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 0000000..e360ecb --- /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 0000000..3f20386 --- /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 0000000..d9e6d47 --- /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 0000000..b4d080d --- /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 0000000..ebdaceb --- /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 0000000..f369182 --- /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 0000000..6d74773 --- /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 0000000..205826b --- /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":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AA4KlD,MAAM,UAAU,YAAY,CAC1B,YAAsB,EACtB,cAAuC,EACvC,SAAyB;IAEzB,IAAI,cAAc,EAAE;QAClB,IAAI,WAAW,CAAC,cAAc,CAAC,EAAE;YAC/B,SAAS,GAAG,cAAc,CAAC;SAC5B;aAAM;YAEL,OAAO,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAC5E,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAC9E,CAAC;SACH;KACF;IAED,OAAO,UAAqB,GAAG,IAAW;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC;QACrB,IAAI,OAAwB,CAAC;QAC7B,MAAM,MAAM,GAAG;YACb,OAAO;YACP,OAAO;YACP,YAAY;YACZ,SAAS;SACV,CAAC;QACF,OAAO,IAAI,UAAU,CAAI,UAAU,CAAC,EAAE;YACpC,IAAI,CAAC,SAAS,EAAE;gBACd,IAAI,CAAC,OAAO,EAAE;oBACZ,OAAO,GAAG,IAAI,YAAY,EAAK,CAAC;oBAChC,MAAM,OAAO,GAAG,CAAC,GAAG,SAAgB,EAAE,EAAE;wBACtC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;wBAC/D,OAAO,CAAC,QAAQ,EAAE,CAAC;oBACrB,CAAC,CAAC;oBAEF,IAAI;wBACF,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;qBACjD;oBAAC,OAAO,GAAG,EAAE;wBACZ,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE;4BAC3B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;yBACpB;6BAAM;4BACL,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;yBACnB;qBACF;iBACF;gBACD,OAAO,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;aACtC;iBAAM;gBACL,MAAM,KAAK,GAAqB;oBAC9B,IAAI,EAAE,UAAU,EAAE,MAAM;iBACzB,CAAC;gBACF,OAAO,SAAS,CAAC,QAAQ,CAAmB,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;aACjE;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAeD,SAAS,QAAQ,CAA6C,KAAuB;IACnF,MAAM,IAAI,GAAG,IAAI,CAAC;IAClB,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAC3C,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IACpD,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IACzB,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,GAAG,MAAM,CAAC,OAAO,GAAG,IAAI,YAAY,EAAK,CAAC;QAEjD,MAAM,OAAO,GAAG,CAAC,GAAG,SAAgB,EAAE,EAAE;YACtC,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/D,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAe,YAAY,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QAClF,CAAC,CAAC;QAEF,IAAI;YACF,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;SACjD;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACpB;KACF;IAED,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;AAC1C,CAAC;AAOD,SAAS,YAAY,CAAyC,KAAmB;IAC/E,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACjC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,OAAO,CAAC,QAAQ,EAAE,CAAC;AACrB,CAAC;AAOD,SAAS,aAAa,CAA0C,KAAoB;IAClF,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC/B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC"} 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 0000000..81ca5a6 --- /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 0000000..6382afd --- /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 0000000..d33018b --- /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 0000000..77d2f10 --- /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 0000000..f4c0fef --- /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 0000000..da4d8f8 --- /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 0000000..c730f4c --- /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 0000000..2f60654 --- /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 0000000..ceb15ff --- /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 0000000..2f20380 --- /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 0000000..357d29b --- /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 0000000..46e5ddd --- /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 0000000..3ac14f2 --- /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 0000000..4803b49 --- /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 0000000..d37f68d --- /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 0000000..def9613 --- /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 0000000..73a51ab --- /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 0000000..821e4e6 --- /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 0000000..6cbbbdc --- /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 0000000..34f52c9 --- /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 0000000..ca915a1 --- /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 0000000..f853804 --- /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 0000000..8dfff4e --- /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 0000000..d0b7a0a --- /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 0000000..b738433 --- /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 0000000..55af2ba --- /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 0000000..141acce --- /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 0000000..41428ba --- /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 0000000..e9e5935 --- /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 0000000..976454a --- /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 0000000..4788d58 --- /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 0000000..f150bb3 --- /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 0000000..127086c --- /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 0000000..d695e5b --- /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 0000000..6f07fa1 --- /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 0000000..81273db --- /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":"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"} 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 0000000..91a626f --- /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 0000000..fe69e79 --- /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 0000000..4dbe4a0 --- /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 0000000..67f6681 --- /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 0000000..c62e364 --- /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 0000000..8327b24 --- /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 0000000..ca45f75 --- /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 0000000..aa51b97 --- /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 0000000..fdfd611 --- /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 0000000..4347b59 --- /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 0000000..ac1fdee --- /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 0000000..44bd5d3 --- /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 0000000..573ef30 --- /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 0000000..e14867e --- /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 0000000..a34a734 --- /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 0000000..6c8ed22 --- /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 0000000..7632a31 --- /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 0000000..6777ba5 --- /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 0000000..ca93912 --- /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 0000000..8e88801 --- /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 0000000..981c0af --- /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 0000000..744583b --- /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 0000000..7476984 --- /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 0000000..b943182 --- /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 0000000..86af89f --- /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 0000000..74ab3bd --- /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 0000000..4d7e3fc --- /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 0000000..a6e258f --- /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 0000000..8818a08 --- /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 0000000..a638a64 --- /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 0000000..e94a8b6 --- /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 0000000..1d3d923 --- /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 0000000..b24311e --- /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 0000000..b4bc0d1 --- /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 0000000..0f119e7 --- /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 0000000..13d96ce --- /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 0000000..aac9ea5 --- /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 0000000..471696a --- /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 0000000..811e499 --- /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 0000000..ef26262 --- /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 0000000..705f3e4 --- /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 0000000..0cf465e --- /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 0000000..248c29a --- /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 0000000..b50507c --- /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 0000000..8b8fe36 --- /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 0000000..698b5a6 --- /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 0000000..21d392d --- /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 0000000..9724120 --- /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 0000000..1f4daf1 --- /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 0000000..292d9fd --- /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 0000000..9ef0022 --- /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 0000000..9c92ccc --- /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 0000000..165b4d5 --- /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 0000000..63a35fa --- /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 0000000..270a4a2 --- /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 0000000..10a313a --- /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 0000000..fb4f746 --- /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 0000000..b634bab --- /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 0000000..4737d8f --- /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 0000000..b013d94 --- /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 0000000..891abcc --- /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 0000000..e8d3112 --- /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 0000000..fbb5802 --- /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 0000000..c25fbda --- /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 0000000..de834ba --- /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 0000000..02dfa54 --- /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 0000000..cc0e917 --- /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 0000000..bd59a90 --- /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 0000000..2e227f1 --- /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 0000000..7410893 --- /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 0000000..651dc6d --- /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 0000000..916cee0 --- /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 0000000..3b8903b --- /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 0000000..bec6d8c --- /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 0000000..240fd1a --- /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 0000000..b32d8b3 --- /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 0000000..b95376f --- /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 0000000..e7cf7f7 --- /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 0000000..cf52a35 --- /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 0000000..827ba1a --- /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 0000000..7d4a048 --- /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 0000000..2d15164 --- /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 0000000..fd0fb08 --- /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 0000000..b64e0dc --- /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 0000000..7223cb3 --- /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 0000000..ab65793 --- /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":"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"} 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 0000000..11f8cf7 --- /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 0000000..10cdd40 --- /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 0000000..3c94a97 --- /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 0000000..d0341d0 --- /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 0000000..0e4b481 --- /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 0000000..41375be --- /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 0000000..37d80e1 --- /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 0000000..5b684be --- /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 0000000..6472721 --- /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 0000000..29d8dbf --- /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 0000000..406bba0 --- /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 0000000..44ff5c9 --- /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 0000000..c60d49d --- /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 0000000..7725828 --- /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 0000000..9b4d214 --- /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 0000000..9ac771c --- /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 0000000..52a926c --- /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 0000000..9ba5647 --- /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":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,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,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"} 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 0000000..a1b8b5a --- /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 0000000..c0f8e63 --- /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 0000000..ff65d75 --- /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 0000000..95eb25f --- /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 0000000..3be1e76 --- /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 0000000..b396f64 --- /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 0000000..160be16 --- /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 0000000..d572ed8 --- /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 0000000..66eac6c --- /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 0000000..cd635a6 --- /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 0000000..6d2083e --- /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 0000000..0009e69 --- /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 0000000..691be8b --- /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 0000000..52e603c --- /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 0000000..05d63a6 --- /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 0000000..69da147 --- /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 0000000..8b0f458 --- /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 0000000..fff95d9 --- /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 0000000..d4184ba --- /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 0000000..c7db281 --- /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 0000000..1f19aaf --- /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 0000000..c67cf25 --- /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 0000000..1f7fc8c --- /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 0000000..1793b06 --- /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 0000000..6e154c8 --- /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 0000000..254c784 --- /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 0000000..1efe6d4 --- /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 0000000..65e6cdc --- /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 0000000..92bbbfd --- /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 0000000..a4de348 --- /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 0000000..0013672 --- /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 0000000..f587741 --- /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 0000000..6ef7d98 --- /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 0000000..aa945f5 --- /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 0000000..9146dba --- /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 0000000..56af7d3 --- /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 0000000..416d7fb --- /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 0000000..89d79b2 --- /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 0000000..090d696 --- /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 0000000..04805f1 --- /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 0000000..5d4ea44 --- /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 0000000..120a3fd --- /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 0000000..9aca27f --- /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 0000000..d8a7ac7 --- /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 0000000..faea6b1 --- /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 0000000..ae477b9 --- /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 0000000..ca12987 --- /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 0000000..1382053 --- /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 0000000..3de8d1e --- /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 0000000..2bbfde9 --- /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 0000000..8d4788f --- /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 0000000..10d378a --- /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 0000000..027eaa0 --- /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 0000000..912b602 --- /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 0000000..e3036c2 --- /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 0000000..e681649 --- /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 0000000..0f3aa2f --- /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 0000000..828da08 --- /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 0000000..bab2a43 --- /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 0000000..01c210f --- /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 0000000..a3b08c2 --- /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 0000000..4b202a3 --- /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 0000000..44cfc17 --- /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 0000000..b93b4db --- /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 0000000..a2a5e6a --- /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 0000000..2122eb4 --- /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 0000000..bc2c953 --- /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 0000000..904fa87 --- /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 0000000..bc17d96 --- /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 0000000..b5b1b1c --- /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 0000000..5839ba6 --- /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 0000000..b7db2d9 --- /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 0000000..5fa27cd --- /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 0000000..82e71ec --- /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 0000000..f6de47e --- /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 0000000..7654c0f --- /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 0000000..a0f54e3 --- /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 0000000..22db02d --- /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 0000000..a1212bc --- /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 0000000..c409a55 --- /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 0000000..a9a7c27 --- /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 0000000..4ba6b89 --- /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 0000000..2ca5795 --- /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 0000000..dd285b4 --- /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 0000000..f0db599 --- /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 0000000..643e89d --- /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 0000000..a550a4c --- /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 0000000..5d2cecd --- /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 0000000..be8a83d --- /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 0000000..018ebd5 --- /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 0000000..bd45f03 --- /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 0000000..dcf2e84 --- /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 0000000..98fe686 --- /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 0000000..f1d87a7 --- /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 0000000..9bd558b --- /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 0000000..91ea0e1 --- /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 0000000..fa75968 --- /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 0000000..9450a9e --- /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 0000000..344c7f3 --- /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 0000000..07364d3 --- /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 0000000..6b32790 --- /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 0000000..0055275 --- /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 0000000..3a1a9c5 --- /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 0000000..63ecb28 --- /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 0000000..9a42206 --- /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 0000000..71ed774 --- /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 0000000..1e67b89 --- /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 0000000..fa9048b --- /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 0000000..37589e2 --- /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 0000000..c0ce3e4 --- /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 0000000..e463f66 --- /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 0000000..48888fc --- /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 0000000..9cb0281 --- /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 0000000..31a1fb9 --- /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 0000000..98effe7 --- /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 0000000..c129b66 --- /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 0000000..8c29848 --- /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 0000000..703210e --- /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 0000000..a1b1551 --- /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 0000000..70d7936 --- /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 0000000..ace9812 --- /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 0000000..604d79b --- /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 0000000..1631e02 --- /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 0000000..7df7808 --- /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 0000000..4d7faea --- /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 0000000..b6fe3ab --- /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 0000000..849ab0e --- /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 0000000..dd0fb1b --- /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 0000000..1c6997e --- /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 0000000..5c9e47b --- /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 0000000..b3a0c7a --- /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 0000000..a9cb659 --- /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 0000000..4604543 --- /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 0000000..661fe67 --- /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 0000000..452d40d --- /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 0000000..a9b24f6 --- /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 0000000..96ae599 --- /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 0000000..adddb70 --- /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 0000000..68d4938 --- /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 0000000..2ddd8a2 --- /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 0000000..554d1a2 --- /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 0000000..d4e76f8 --- /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 0000000..4ded474 --- /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 0000000..c542852 --- /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 0000000..e0b7ffa --- /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 0000000..c9dabf4 --- /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 0000000..cb658cb --- /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 0000000..88d43ad --- /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 0000000..1d6a677 --- /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 0000000..a74d5d7 --- /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 0000000..d4f637d --- /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 0000000..c8727d8 --- /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 0000000..66c2936 --- /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 0000000..081998e --- /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 0000000..828192f --- /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 0000000..2fd6cd5 --- /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 0000000..3b3177a --- /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 0000000..af07a1e --- /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 0000000..cc1fb4d --- /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 0000000..c32c0b1 --- /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 0000000..ebce6db --- /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 0000000..9b56e6e --- /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 0000000..6575d95 --- /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 0000000..f505e81 --- /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 0000000..29ae3a8 --- /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 0000000..27cd494 --- /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 0000000..8d0283e --- /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 0000000..6aadfea --- /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 0000000..cb4f218 --- /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 0000000..3e279bb --- /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 0000000..33fadd2 --- /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 0000000..9670bee --- /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 0000000..0075890 --- /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 0000000..08d4eef --- /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 0000000..64d5dc6 --- /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 0000000..615f022 --- /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 0000000..4bb5173 --- /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 0000000..a6f9c6d --- /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 0000000..e2ac763 --- /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 0000000..ac44f2a --- /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 0000000..c421751 --- /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 0000000..8903b16 --- /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 0000000..08a00d7 --- /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 0000000..37f16be --- /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 0000000..908175c --- /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 0000000..b19facd --- /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 0000000..3b8a55f --- /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 0000000..b2c5bdc --- /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":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,MAAM,eAAe,GAAW,GAAG,CAAC;AAmBpC,MAAM,OAAO,aAAc,SAAQ,oBAAoB;IAMrD,YAAmB,eAA+D;QAChF,KAAK,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;QADrB,oBAAe,GAAf,eAAe,CAAgD;QALlE,mBAAc,GAAyB,EAAE,CAAC;QAC1C,oBAAe,GAA0B,EAAE,CAAC;QACpD,eAAU,GAAoB,EAAE,CAAC;QACjC,YAAO,GAAG,KAAK,CAAC;IAIxB,CAAC;IAED,UAAU,CAAC,OAAe;QACxB,MAAM,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,oBAAoB,CAAa,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,MAAM,QAAQ,GAAG,aAAa,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7F,MAAM,IAAI,GAAG,IAAI,cAAc,CAAI,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,mBAAmB,CAAa,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,MAAM,QAAQ,GAAG,aAAa,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7F,MAAM,OAAO,GAAG,IAAI,aAAa,CAAI,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,0BAA0B,CAAC,UAA2B,EAC3B,UAAkB;QACnD,MAAM,QAAQ,GAAkB,EAAE,CAAC;QACnC,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,UAAU,EAAE,YAAY,EAAE,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACT,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,UAAU,EAAE,YAAY,EAAE,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjG,CAAC,EAAE,GAAG,EAAE;YACN,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,UAAU,EAAE,YAAY,EAAE,YAAY,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QACjG,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,gBAAgB,CAAC,UAA2B,EAC3B,sBAA8B,IAAI;QACjD,MAAM,MAAM,GAAkB,EAAE,CAAC;QACjC,MAAM,SAAS,GAAkB,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC1D,MAAM,kBAAkB,GAAG,aAAa,CAAC,2BAA2B,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACxG,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,eAAe,KAAK,MAAM,CAAC,iBAAiB,CAAC,CAAC;YACzF,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,eAAe,CAAC;QACzC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,iBAAiB,CAAC;QACjE,IAAI,YAA0B,CAAC;QAE/B,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;YACjB,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;gBACtC,IAAI,KAAK,GAAG,CAAC,CAAC;gBAEd,IAAI,CAAC,YAAY,UAAU,EAAE;oBAC3B,KAAK,GAAG,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC5D;gBACD,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACnF,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;gBACT,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClF,CAAC,EAAE,GAAG,EAAE;gBACN,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,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,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,mBAAmB,CAAC,CAAC;SACtE;QAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAEzB,OAAO;YACL,IAAI,CAAC,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,mBAAmB,CAAC,sBAAyC;QAC3D,MAAM,SAAS,GAAkB,EAAE,MAAM,EAAE,sBAAsB,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAClF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACzB,OAAO;YACL,IAAI,CAAC,OAA0B;gBAC7B,MAAM,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,OAAO,CAAC,EAAE,CAC9C,aAAa,CAAC,2BAA2B,CAAC,OAAO,EAAE,OAAO,CAAC,CAC5D,CAAC;YACJ,CAAC;SACF,CAAC;IACJ,CAAC;IAED,KAAK;QACH,MAAM,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,KAAK,CAAC,KAAK,EAAE,CAAC;QAEd,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YAC9C,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,IAAI,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;IAGD,MAAM,CAAC,2BAA2B,CAAC,OAAe,EAAE,OAAO,GAAG,KAAK;QACjE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC/B,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;SACtD;QACD,MAAM,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;QAEd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,EAAE;gBACvC,SAAS,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC;YAC5C,CAAC,CAAC;YACF,MAAM,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,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;4BAChC,MAAM,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,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gCACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gCACtB,IAAI,YAAoB,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,IAAI,CAAC,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;SACnB;QAED,IAAI,mBAAmB,GAAG,CAAC,EAAE;YAC3B,OAAO,IAAI,eAAe,CAAC,iBAAiB,CAAC,CAAC;SAC/C;aAAM;YACL,OAAO,IAAI,eAAe,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;SACpE;IACH,CAAC;IAGD,MAAM,CAAC,YAAY,CAAC,OAAe,EACf,MAAY,EACZ,UAAgB,EAChB,8BAAuC,KAAK,EAC5C,OAAO,GAAG,KAAK;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,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;QAC3B,MAAM,YAAY,GAAkB,EAAE,CAAC;QACvC,MAAM,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,MAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC;YAC3C,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YACf,CAAC,CAAM,EAAE,EAAE;gBAET,IAAI,2BAA2B,IAAI,MAAM,CAAC,CAAC,CAAC,YAAY,cAAc,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;QAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,EAAE;gBACvC,SAAS,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC;YAC5C,CAAC,CAAC;YAEF,IAAI,YAA+B,CAAC;YACpC,MAAM,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,YAAY,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,YAAY,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,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;4BAChC,MAAM,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,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gCACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gCACtB,IAAI,YAAoB,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,IAAI,CAAC,eAAe,CAAC,CAAC;gCACpD,MAAM;6BACP;yBACF;qBACF;oBAED,YAAY,GAAG,YAAY,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,EAAE,CAAC,CAAC;aAClF;YAED,KAAK,GAAG,SAAS,CAAC;SACnB;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,GAAG,CAAI,QAAoC;QACzC,MAAM,mBAAmB,GAAG,aAAa,CAAC,eAAe,CAAC;QAC1D,MAAM,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,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC;QAE/B,MAAM,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,MAAM,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,cAAc,CAAC,QAAQ,GAAG,SAAS,CAAC;SACrC;IACH,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/types.js b/node_modules/rxjs/_esm2015/internal/types.js new file mode 100644 index 0000000..5b2306a --- /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 0000000..607b992 --- /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 0000000..73baa86 --- /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 0000000..d57ac07 --- /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 0000000..6f0cbcc --- /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 0000000..a8e85a3 --- /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 0000000..318097b --- /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 0000000..402f32e --- /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 0000000..19587e6 --- /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 0000000..0567cdb --- /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 0000000..90b79ca --- /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 0000000..08a99ad --- /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 0000000..41b16f6 --- /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 0000000..573d18b --- /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 0000000..dfbeb91 --- /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 0000000..11e203d --- /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 0000000..08819b5 --- /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 0000000..bed1e3b --- /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 0000000..26ab7ff --- /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 0000000..dafb8c3 --- /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 0000000..3851a36 --- /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 0000000..202c752 --- /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 0000000..1084d77 --- /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 0000000..3173922 --- /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 0000000..98ae429 --- /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 0000000..bdff915 --- /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 0000000..393c8b8 --- /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 0000000..5f70120 --- /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 0000000..842d77f --- /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 0000000..6958919 --- /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 0000000..c569835 --- /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 0000000..3774b95 --- /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 0000000..00ab1c7 --- /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 0000000..8826421 --- /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 0000000..484e8ed --- /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 0000000..3ff5f6e --- /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 0000000..a7a70d8 --- /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 0000000..b5954be --- /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 0000000..e67f6e8 --- /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 0000000..f942bed --- /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 0000000..d1c95f5 --- /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 0000000..fa08bc7 --- /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 0000000..7ffe206 --- /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 0000000..dcd975c --- /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 0000000..51a2ba4 --- /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 0000000..75c4eca --- /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 0000000..1a78a54 --- /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 0000000..5d245d8 --- /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 0000000..f430f55 --- /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 0000000..c74adc5 --- /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 0000000..fb1cccf --- /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 0000000..f3908d0 --- /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 0000000..e12f2e2 --- /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 0000000..db51d96 --- /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 0000000..71a569b --- /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 0000000..22f4c1e --- /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 0000000..2693661 --- /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 0000000..ebf89a1 --- /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 0000000..17e1d69 --- /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 0000000..03a72e4 --- /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 0000000..8a28421 --- /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 0000000..85cce8d --- /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 0000000..0f919ba --- /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 0000000..f8af52c --- /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 0000000..be8d01f --- /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 0000000..c1751b6 --- /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 0000000..1d61183 --- /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 0000000..5f6c7a9 --- /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 0000000..503fcee --- /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 0000000..f685299 --- /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 0000000..10d3b97 --- /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 0000000..484b550 --- /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 0000000..31003f1 --- /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 0000000..f0f7b53 --- /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 0000000..6882405 --- /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 0000000..a4bb4ea --- /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 0000000..599e9a7 --- /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 0000000..031ce38 --- /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 0000000..f92dafd --- /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 0000000..0f1bf03 --- /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 0000000..038e2b1 --- /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 0000000..d6c825b --- /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 0000000..8bf783b --- /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 0000000..abf7abf --- /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 0000000..1297789 --- /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 0000000..2164bc8 --- /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 0000000..9de2eb9 --- /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 0000000..8c92fbb --- /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 0000000..cdf243a --- /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 0000000..c7ddbd6 --- /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 0000000..cc33132 --- /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 0000000..d92fa72 --- /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 0000000..4522441 --- /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 0000000..3f7dcd7 --- /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 0000000..9c15255 --- /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":"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;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,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;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;SApHY,YAAY"} diff --git a/node_modules/rxjs/_esm5/internal/Observable.js b/node_modules/rxjs/_esm5/internal/Observable.js new file mode 100644 index 0000000..8f2ef30 --- /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 0000000..1cd9695 --- /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 0000000..b066ea2 --- /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 0000000..1db7633 --- /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 0000000..09d2cfc --- /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 0000000..f45f5ad --- /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 0000000..de6dbfe --- /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 0000000..df6aee2 --- /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 0000000..6fa3479 --- /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 0000000..81a1b02 --- /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 0000000..de82a39 --- /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 0000000..ca18900 --- /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 0000000..3312a44 --- /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 0000000..79dfb85 --- /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 0000000..84c3c50 --- /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 0000000..881b06e --- /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 0000000..f09a2a2 --- /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 0000000..3698894 --- /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 0000000..8610093 --- /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 0000000..c2b7024 --- /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 0000000..2527dd3 --- /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 0000000..dc2cb44 --- /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 0000000..e998229 --- /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 0000000..21e6def --- /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 0000000..640ada7 --- /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 0000000..8cc2df2 --- /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 0000000..ed31911 --- /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 0000000..44b1ecc --- /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":";AAAA,OAAO,EAAW,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,QAAQ,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAKxE;IAA8C,iDAAa;IAQzD,+BAAmB,MAAqB,EAClB,cAAgC;QADtD,YAEE,iBAAO,SACR;QAHkB,YAAM,GAAN,MAAM,CAAe;QAClB,oBAAc,GAAd,cAAc,CAAkB;QAN5C,eAAS,GAAW,CAAC,CAAC;QAGhC,iBAAW,GAAG,KAAK,CAAC;;IAKpB,CAAC;IAGD,0CAAU,GAAV,UAAW,UAAyB;QAClC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IAES,0CAAU,GAApB;QACE,IAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE;YACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;SACvC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,uCAAO,GAAP;QACE,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;QAClC,IAAI,CAAC,UAAU,EAAE;YACf,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,YAAY,EAAE,CAAC;YACnD,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM;iBACvB,SAAS,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAClE,IAAI,UAAU,CAAC,MAAM,EAAE;gBACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC;aACjC;SACF;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,wCAAQ,GAAR;QACE,OAAO,mBAAmB,EAAE,CAAC,IAAI,CAAkB,CAAC;IACtD,CAAC;IACH,4BAAC;AAAD,CAAC,AA5CD,CAA8C,UAAU,GA4CvD;;AAED,MAAM,CAAC,IAAM,+BAA+B,GAA0B,CAAC;IACrE,IAAM,gBAAgB,GAAQ,qBAAqB,CAAC,SAAS,CAAC;IAC9D,OAAO;QACL,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAY,EAAE;QACjC,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;QACvC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAY,EAAE,QAAQ,EAAE,IAAI,EAAE;QACjD,WAAW,EAAE,EAAE,KAAK,EAAE,IAAY,EAAE,QAAQ,EAAE,IAAI,EAAE;QACpD,UAAU,EAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,UAAU,EAAE;QAClD,WAAW,EAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE;QACpE,UAAU,EAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,UAAU,EAAE;QAClD,OAAO,EAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,OAAO,EAAE;QAC5C,QAAQ,EAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,QAAQ,EAAE;KAC/C,CAAC;AACJ,CAAC,CAAC,EAAE,CAAC;AAEL;IAAuC,iDAAoB;IACzD,+BAAY,WAAuB,EACf,WAAqC;QADzD,YAEE,kBAAM,WAAW,CAAC,SACnB;QAFmB,iBAAW,GAAX,WAAW,CAA0B;;IAEzD,CAAC;IACS,sCAAM,GAAhB,UAAiB,GAAQ;QACvB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,iBAAM,MAAM,YAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IACS,yCAAS,GAAnB;QACE,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC;QACpC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,iBAAM,SAAS,WAAE,CAAC;IACpB,CAAC;IACS,4CAAY,GAAtB;QACE,IAAM,WAAW,GAAQ,IAAI,CAAC,WAAW,CAAC;QAC1C,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAM,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC;YAC3C,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC;YAC1B,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;YAC5B,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC;YAC/B,IAAI,UAAU,EAAE;gBACd,UAAU,CAAC,WAAW,EAAE,CAAC;aAC1B;SACF;IACH,CAAC;IACH,4BAAC;AAAD,CAAC,AA3BD,CAAuC,iBAAiB,GA2BvD;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;QAyBO,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,AA7DD,CAAoC,UAAU,GA6D7C"} 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 0000000..c4ef848 --- /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 0000000..6092bee --- /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 0000000..ee5e68a --- /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 0000000..f516e14 --- /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 0000000..5d8c4ca --- /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 0000000..ffa674c --- /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 0000000..77eb463 --- /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 0000000..2189862 --- /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 0000000..4c08930 --- /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 0000000..f963a9a --- /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 0000000..d4cc24a --- /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 0000000..07ea88c --- /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 0000000..6cc88b5 --- /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 0000000..a5517c6 --- /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 0000000..136c863 --- /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 0000000..6c1c1d5 --- /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":";AAAA,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAsIpD,IAAM,wBAAwB,GAAgC;IAC5D,GAAG,EAAE,EAAE;IACP,YAAY,EAAE,UAAC,CAAe,IAAK,OAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAlB,CAAkB;IACrD,UAAU,EAAE,UAAC,KAAU,IAAK,OAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAArB,CAAqB;CAClD,CAAC;AAEF,IAAM,qCAAqC,GACzC,mIAAmI,CAAC;AAItI;IAAyC,4CAAmB;IAS1D,0BAAY,iBAAqE,EAAE,WAAyB;QAA5G,YACE,iBAAO,SAwBR;QAvBC,IAAI,iBAAiB,YAAY,UAAU,EAAE;YAC3C,KAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAC/B,KAAI,CAAC,MAAM,GAAG,iBAAkC,CAAC;SAClD;aAAM;YACL,IAAM,MAAM,GAAG,KAAI,CAAC,OAAO,wBAAQ,wBAAwB,CAAE,CAAC;YAC9D,KAAI,CAAC,OAAO,GAAG,IAAI,OAAO,EAAK,CAAC;YAChC,IAAI,OAAO,iBAAiB,KAAK,QAAQ,EAAE;gBACzC,MAAM,CAAC,GAAG,GAAG,iBAAiB,CAAC;aAChC;iBAAM;gBACL,KAAK,IAAI,GAAG,IAAI,iBAAiB,EAAE;oBACjC,IAAI,iBAAiB,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;wBACzC,MAAM,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;qBACtC;iBACF;aACF;YAED,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,SAAS,EAAE;gBACtC,MAAM,CAAC,aAAa,GAAG,SAAS,CAAC;aAClC;iBAAM,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;gBAChC,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;aAC1D;YACD,KAAI,CAAC,WAAW,GAAG,IAAI,aAAa,EAAE,CAAC;SACxC;;IACH,CAAC;IAED,+BAAI,GAAJ,UAAQ,QAAwB;QAC9B,IAAM,IAAI,GAAG,IAAI,gBAAgB,CAAI,IAAI,CAAC,OAAsC,EAAQ,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1G,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,sCAAW,GAAnB;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,WAAW,GAAG,IAAI,aAAa,EAAE,CAAC;SACxC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,EAAK,CAAC;IAClC,CAAC;IAoBD,oCAAS,GAAT,UAAU,MAAiB,EAAE,QAAmB,EAAE,aAAoC;QACpF,IAAM,IAAI,GAAG,IAAI,CAAC;QAClB,OAAO,IAAI,UAAU,CAAC,UAAC,QAAuB;YAC5C,IAAI;gBACF,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;aACrB;YAAC,OAAO,GAAG,EAAE;gBACZ,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACrB;YAED,IAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,UAAA,CAAC;gBACnC,IAAI;oBACF,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE;wBACpB,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBAClB;iBACF;gBAAC,OAAO,GAAG,EAAE;oBACZ,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBACrB;YACH,CAAC,EACC,UAAA,GAAG,IAAI,OAAA,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAnB,CAAmB,EAC1B,cAAM,OAAA,QAAQ,CAAC,QAAQ,EAAE,EAAnB,CAAmB,CAAC,CAAC;YAE7B,OAAO;gBACL,IAAI;oBACF,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;iBACvB;gBAAC,OAAO,GAAG,EAAE;oBACZ,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBACrB;gBACD,YAAY,CAAC,WAAW,EAAE,CAAC;YAC7B,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,yCAAc,GAAtB;QAAA,iBAuGC;QAtGO,IAAA,iBAA2D,EAAzD,gCAAa,EAAE,sBAAQ,EAAE,YAAG,EAAE,0BAAU,CAAkB;QAClE,IAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;QAE9B,IAAI,MAAM,GAAc,IAAI,CAAC;QAC7B,IAAI;YACF,MAAM,GAAG,QAAQ,CAAC,CAAC;gBACjB,IAAI,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;gBAClC,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;YACzB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtB,IAAI,UAAU,EAAE;gBACd,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;aACtC;SACF;QAAC,OAAO,CAAC,EAAE;YACV,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAClB,OAAO;SACR;QAED,IAAM,YAAY,GAAG,IAAI,YAAY,CAAC;YACpC,KAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,MAAM,IAAI,MAAM,CAAC,UAAU,KAAK,CAAC,EAAE;gBACrC,MAAM,CAAC,KAAK,EAAE,CAAC;aAChB;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,GAAG,UAAC,CAAQ;YACf,IAAA,uBAAO,CAAU;YACzB,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,KAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,OAAO;aACR;YACO,IAAA,yCAAY,CAAkB;YACtC,IAAI,YAAY,EAAE;gBAChB,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACtB;YAED,IAAM,KAAK,GAAG,KAAI,CAAC,WAAW,CAAC;YAE/B,KAAI,CAAC,WAAW,GAAG,UAAU,CAAC,MAAM,CAClC,UAAC,CAAC;gBACA,IAAI,MAAM,CAAC,UAAU,KAAK,CAAC,EAAE;oBAC3B,IAAI;wBACM,IAAA,qCAAU,CAAkB;wBACpC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC1B;oBAAC,OAAO,CAAC,EAAE;wBACZ,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;qBAC3B;iBACF;YACH,CAAC,EACD,UAAC,CAAC;gBACQ,IAAA,+CAAe,CAAkB;gBACzC,IAAI,eAAe,EAAE;oBACnB,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBACjC;gBACD,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;oBACf,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;iBAChC;qBAAM;oBACL,QAAQ,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAC,CAAC;iBACtE;gBACD,KAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC,EACD;gBACU,IAAA,+CAAe,CAAkB;gBACzC,IAAI,eAAe,EAAE;oBACnB,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBACjC;gBACD,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,KAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC,CACiB,CAAC;YAErB,IAAI,KAAK,IAAI,KAAK,YAAY,aAAa,EAAE;gBAC3C,YAAY,CAAC,GAAG,CAAoB,KAAM,CAAC,SAAS,CAAC,KAAI,CAAC,WAAW,CAAC,CAAC,CAAC;aACzE;QACH,CAAC,CAAC;QAEF,MAAM,CAAC,OAAO,GAAG,UAAC,CAAQ;YACxB,KAAI,CAAC,WAAW,EAAE,CAAC;YACnB,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC,CAAC;QAEF,MAAM,CAAC,OAAO,GAAG,UAAC,CAAa;YAC7B,KAAI,CAAC,WAAW,EAAE,CAAC;YACX,IAAA,2CAAa,CAAkB;YACvC,IAAI,aAAa,EAAE;gBACjB,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACvB;YACD,IAAI,CAAC,CAAC,QAAQ,EAAE;gBACd,QAAQ,CAAC,QAAQ,EAAE,CAAC;aACrB;iBAAM;gBACL,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACnB;QACH,CAAC,CAAC;QAEF,MAAM,CAAC,SAAS,GAAG,UAAC,CAAe;YACjC,IAAI;gBACM,IAAA,yCAAY,CAAkB;gBACtC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;aAChC;YAAC,OAAO,GAAG,EAAE;gBACZ,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACrB;QACH,CAAC,CAAC;IACJ,CAAC;IAGD,qCAAU,GAAV,UAAW,UAAyB;QAApC,iBAmBC;QAlBS,IAAA,oBAAM,CAAU;QACxB,IAAI,MAAM,EAAE;YACV,OAAO,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;SACrC;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,cAAc,EAAE,CAAC;SACvB;QACD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACnC,UAAU,CAAC,GAAG,CAAC;YACL,IAAA,uBAAO,CAAU;YACzB,IAAI,KAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBACvC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,KAAK,CAAC,EAAE;oBACvC,OAAO,CAAC,KAAK,EAAE,CAAC;iBACjB;gBACD,KAAI,CAAC,WAAW,EAAE,CAAC;aACpB;QACH,CAAC,CAAC,CAAC;QACH,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,sCAAW,GAAX;QACU,IAAA,sBAAO,CAAU;QACzB,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,KAAK,CAAC,EAAE;YACvC,OAAO,CAAC,KAAK,EAAE,CAAC;SACjB;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,iBAAM,WAAW,WAAE,CAAC;IACtB,CAAC;IACH,uBAAC;AAAD,CAAC,AA5OD,CAAyC,gBAAgB,GA4OxD"} 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 0000000..86ee518 --- /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 0000000..d2ee88d --- /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 0000000..9b9778d --- /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 0000000..ea2c543 --- /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 0000000..f5dbcaa --- /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 0000000..821e4e6 --- /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 0000000..1c4b0c7 --- /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 0000000..567e87c --- /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 0000000..5c38fe7 --- /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 0000000..e175ee5 --- /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 0000000..453c25e --- /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 0000000..d0b7a0a --- /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 0000000..587cb72 --- /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 0000000..55af2ba --- /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 0000000..0c52458 --- /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 0000000..55aa18e --- /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 0000000..9c40ae6 --- /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 0000000..fc758c1 --- /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 0000000..c37371f --- /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 0000000..f150bb3 --- /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 0000000..a826216 --- /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 0000000..d695e5b --- /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 0000000..0e8ecb3 --- /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 0000000..05c10df --- /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 0000000..67a4bd9 --- /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 0000000..bafa2e2 --- /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 0000000..c530a02 --- /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 0000000..8fd0b0c --- /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 0000000..baa8fd3 --- /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 0000000..e65dd6e --- /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 0000000..09f7cd0 --- /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 0000000..a32cf25 --- /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 0000000..9078744 --- /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 0000000..e0b0338 --- /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 0000000..efa034e --- /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 0000000..357a8a7 --- /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 0000000..85d799b --- /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 0000000..d2f93bd --- /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 0000000..7b46b04 --- /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 0000000..6c8ed22 --- /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 0000000..51290a0 --- /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 0000000..42ff0b6 --- /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":"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"} 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 0000000..3e0184c --- /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 0000000..d36149e --- /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 0000000..aa4196a --- /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 0000000..ec48b6f --- /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 0000000..73b8540 --- /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 0000000..ef5924f --- /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 0000000..d65743c --- /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 0000000..e227847 --- /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 0000000..3093f8b --- /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 0000000..c03e7bc --- /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 0000000..d250af8 --- /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 0000000..5bf0097 --- /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 0000000..e862206 --- /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 0000000..318084a --- /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 0000000..26e22e7 --- /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 0000000..21bc8fe --- /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 0000000..b882b6e --- /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 0000000..0beead0 --- /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 0000000..723d954 --- /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 0000000..1591543 --- /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":";AACA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAkElD,MAAM,UAAU,UAAU,CAAI,cAAsB;IAClD,IAAI,MAAM,GAAW,SAAS,CAAC,MAAM,CAAC;IAEtC,IAAI,SAAS,GAAkB,KAAK,CAAC;IACrC,IAAI,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE;QAChD,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5C,MAAM,EAAE,CAAC;KACV;IAED,IAAI,sBAAsB,GAAW,IAAI,CAAC;IAC1C,IAAI,MAAM,IAAI,CAAC,EAAE;QACf,sBAAsB,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;KACvC;IAED,IAAI,aAAa,GAAW,MAAM,CAAC,iBAAiB,CAAC;IACrD,IAAI,MAAM,IAAI,CAAC,EAAE;QACf,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;KAC9B;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;AAED;IACE,4BAAoB,cAAsB,EACtB,sBAA8B,EAC9B,aAAqB,EACrB,SAAwB;QAHxB,mBAAc,GAAd,cAAc,CAAQ;QACtB,2BAAsB,GAAtB,sBAAsB,CAAQ;QAC9B,kBAAa,GAAb,aAAa,CAAQ;QACrB,cAAS,GAAT,SAAS,CAAe;IAC5C,CAAC;IAED,iCAAI,GAAJ,UAAK,UAA2B,EAAE,MAAW;QAC3C,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,AAZD,IAYC;AAED;IAAA;QACE,WAAM,GAAQ,EAAE,CAAC;IAEnB,CAAC;IAAD,cAAC;AAAD,CAAC,AAHD,IAGC;AAmBD;IAAsC,gDAAa;IAIjD,8BAAY,WAA4B,EACpB,cAAsB,EACtB,sBAA8B,EAC9B,aAAqB,EACrB,SAAwB;QAJ5C,YAKE,kBAAM,WAAW,CAAC,SAYnB;QAhBmB,oBAAc,GAAd,cAAc,CAAQ;QACtB,4BAAsB,GAAtB,sBAAsB,CAAQ;QAC9B,mBAAa,GAAb,aAAa,CAAQ;QACrB,eAAS,GAAT,SAAS,CAAe;QAPpC,cAAQ,GAAsB,EAAE,CAAC;QASvC,IAAM,OAAO,GAAG,KAAI,CAAC,WAAW,EAAE,CAAC;QACnC,KAAI,CAAC,YAAY,GAAG,sBAAsB,IAAI,IAAI,IAAI,sBAAsB,GAAG,CAAC,CAAC;QACjF,IAAI,KAAI,CAAC,YAAY,EAAE;YACrB,IAAM,iBAAiB,GAAG,EAAE,UAAU,EAAE,KAAI,EAAE,OAAO,SAAA,EAAE,cAAc,gBAAA,EAAE,CAAC;YACxE,KAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAC,0BAA0B,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC,CAAC;SACnH;aAAM;YACL,IAAM,UAAU,GAAG,EAAE,UAAU,EAAE,KAAI,EAAE,OAAO,SAAA,EAAE,CAAC;YACjD,IAAM,aAAa,GAAyB,EAAE,cAAc,gBAAA,EAAE,sBAAsB,wBAAA,EAAE,UAAU,EAAE,KAAI,EAAE,SAAS,WAAA,EAAE,CAAC;YACpH,KAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAsB,mBAAmB,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;YACzH,KAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAuB,sBAAsB,EAAE,sBAAsB,EAAE,aAAa,CAAC,CAAC,CAAC;SACnH;;IACH,CAAC;IAES,oCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC5B,IAAI,mBAA+B,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,IAAM,SAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAM,MAAM,GAAG,SAAO,CAAC,MAAM,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE;gBACvC,mBAAmB,GAAG,SAAO,CAAC;aAC/B;SACF;QAED,IAAI,mBAAmB,EAAE;YACvB,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;SACxC;IACH,CAAC;IAES,qCAAM,GAAhB,UAAiB,GAAQ;QACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QACzB,iBAAM,MAAM,YAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IAES,wCAAS,GAAnB;QACQ,IAAA,SAAgC,EAA9B,sBAAQ,EAAE,4BAAW,CAAU;QACvC,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,IAAM,SAAO,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;YACjC,WAAW,CAAC,IAAI,CAAC,SAAO,CAAC,MAAM,CAAC,CAAC;SAClC;QACD,iBAAM,SAAS,WAAE,CAAC;IACpB,CAAC;IAGD,2CAAY,GAAZ;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAES,2CAAY,GAAtB,UAAuB,OAAmB;QACxC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACxC,WAAW,CAAC,WAAW,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAEzB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE;YACrC,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAC7B,IAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YAC3C,IAAM,iBAAiB,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,SAAA,EAAE,cAAc,gBAAA,EAAE,CAAC;YACxE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,0BAA0B,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC,CAAC;SACxH;IACH,CAAC;IAED,0CAAW,GAAX;QACE,IAAM,OAAO,GAAe,IAAI,OAAO,EAAK,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,2CAAY,GAAZ,UAAa,OAAmB;QAC9B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACtC,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE/B,IAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,IAAI,WAAW,IAAI,CAAC,EAAE;YACpB,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;SAC/C;IACH,CAAC;IACH,2BAAC;AAAD,CAAC,AAzFD,CAAsC,UAAU,GAyF/C;AAED,SAAS,0BAA0B,CAA6B,KAAU;IACxE,IAAM,UAAU,GAA8B,KAAK,CAAC,UAAU,CAAC;IAE/D,IAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC;IAClC,IAAI,WAAW,EAAE;QACf,UAAU,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;KACtC;IAED,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;QACtB,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;QACzC,KAAK,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;KACxE;AACH,CAAC;AAED,SAAS,sBAAsB,CAAiD,KAA2B;IACjG,IAAA,qDAAsB,EAAE,qCAAc,EAAE,6BAAU,EAAE,2BAAS,CAAW;IAChF,IAAM,OAAO,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IACzC,IAAM,MAAM,GAA0C,IAAI,CAAC;IAC3D,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;QACtB,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAsB,mBAAmB,EAAE,cAAc,EAAE,EAAE,UAAU,YAAA,EAAE,OAAO,SAAA,EAAE,CAAC,CAAC,CAAC;QAC5I,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;KAChD;AACH,CAAC;AAED,SAAS,mBAAmB,CAAI,GAAwB;IAC9C,IAAA,2BAAU,EAAE,qBAAO,CAAS;IACpC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC"} 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 0000000..fa5427d --- /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 0000000..7bb3cee --- /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 0000000..b07709b --- /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 0000000..52879f2 --- /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 0000000..8ac70a8 --- /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 0000000..9535e07 --- /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 0000000..2be83a4 --- /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 0000000..1105b52 --- /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 0000000..9718499 --- /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 0000000..911b122 --- /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 0000000..2827f39 --- /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 0000000..3294279 --- /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 0000000..bc3a803 --- /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 0000000..9c92ccc --- /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 0000000..16b9e95 --- /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 0000000..63a35fa --- /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 0000000..616264d --- /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 0000000..fb2e722 --- /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 0000000..122cb3e --- /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 0000000..0ddc924 --- /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 0000000..e2cdd0d --- /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 0000000..ca125a6 --- /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 0000000..ce18492 --- /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 0000000..b0f304e --- /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 0000000..3fa86ca --- /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 0000000..7cddd3f --- /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 0000000..c54ee75 --- /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 0000000..1e955da --- /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":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAsD/C,MAAM,UAAU,KAAK,CAAI,KAAkB,EAClB,SAAgC;IAAhC,0BAAA,EAAA,iBAAgC;IACvD,IAAM,aAAa,GAAG,MAAM,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;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,2CAAa;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,YAAY,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,YAAY,CAAC,cAAc,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IACH,sBAAC;AAAD,CAAC,AAnED,CAAiC,UAAU,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/_esm5/internal/operators/delayWhen.js b/node_modules/rxjs/_esm5/internal/operators/delayWhen.js new file mode 100644 index 0000000..b021def --- /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 0000000..df44de7 --- /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 0000000..1de64c2 --- /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 0000000..ec9080a --- /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 0000000..4119529 --- /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 0000000..3699089 --- /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 0000000..7f1fd98 --- /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 0000000..7825477 --- /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 0000000..fbb0131 --- /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 0000000..f5dff6e --- /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 0000000..edc4594 --- /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 0000000..d9f04a7 --- /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 0000000..081f55a --- /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 0000000..8b9f150 --- /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 0000000..71f04b6 --- /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 0000000..8e4b3d5 --- /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 0000000..0c57d79 --- /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 0000000..672ecfb --- /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 0000000..f9d7a78 --- /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 0000000..4c0921b --- /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 0000000..5db802a --- /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 0000000..364ab16 --- /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":"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"} 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 0000000..b442c00 --- /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 0000000..5f368bc --- /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 0000000..e863d39 --- /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 0000000..7e4b0b8 --- /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 0000000..366e91d --- /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 0000000..7328095 --- /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 0000000..536c949 --- /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 0000000..41500ac --- /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 0000000..4305b8d --- /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 0000000..d43d396 --- /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 0000000..dba2ede --- /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 0000000..d726fca --- /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 0000000..978266c --- /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 0000000..f81484a --- /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 0000000..4c082a1 --- /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 0000000..9ba5647 --- /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 0000000..320dfe7 --- /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 0000000..4cd3a66 --- /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 0000000..2d5d851 --- /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 0000000..c4fa2b8 --- /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 0000000..803b6b5 --- /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 0000000..7b59f9a --- /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 0000000..3a92b45 --- /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 0000000..8818dbc --- /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 0000000..6371b5c --- /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 0000000..9c6c16c --- /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 0000000..f9bac9d --- /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 0000000..77e7d72 --- /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 0000000..1db8d08 --- /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 0000000..5df9381 --- /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 0000000..da69579 --- /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 0000000..43e5690 --- /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 0000000..b7d295a --- /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 0000000..e340233 --- /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 0000000..9c898d5 --- /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 0000000..5041d0c --- /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 0000000..7a814ae --- /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 0000000..60a8645 --- /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 0000000..cbd3c6a --- /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 0000000..c62a934 --- /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 0000000..531728b --- /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 0000000..27e4bc9 --- /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 0000000..a5ad11f --- /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 0000000..c41d515 --- /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 0000000..898fa3d --- /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 0000000..6c36518 --- /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 0000000..50b742b --- /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 0000000..b22c563 --- /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 0000000..5dce311 --- /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 0000000..510790b --- /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 0000000..4fca18d --- /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 0000000..d9dcec9 --- /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 0000000..34e283c --- /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 0000000..7a5f094 --- /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 0000000..ce55a7f --- /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 0000000..00aedd1 --- /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 0000000..93ec13e --- /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 0000000..4b63d00 --- /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 0000000..9dfb138 --- /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 0000000..74f7dcd --- /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 0000000..5168c21 --- /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 0000000..27b66a6 --- /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 0000000..ffd0e00 --- /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 0000000..b8e0bc5 --- /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 0000000..f4c6b6a --- /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 0000000..bd534ca --- /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 0000000..7b21c64 --- /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 0000000..f3efd03 --- /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 0000000..096cd8e --- /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 0000000..2b9f11c --- /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 0000000..854f94c --- /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 0000000..0c6331c --- /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 0000000..ac3a5e9 --- /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 0000000..f0b2062 --- /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 0000000..4648cb9 --- /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 0000000..c5b04fe --- /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 0000000..06bef93 --- /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 0000000..bcdb4eb --- /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 0000000..be7e768 --- /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 0000000..f3543ea --- /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 0000000..f22b97c --- /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 0000000..e0edce7 --- /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 0000000..45863eb --- /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 0000000..8946dd6 --- /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 0000000..d71dd49 --- /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 0000000..c1b592a --- /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 0000000..35de127 --- /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 0000000..3d87a32 --- /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 0000000..9fe4263 --- /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 0000000..812cbea --- /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 0000000..ab9f142 --- /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 0000000..bf337d3 --- /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 0000000..b5a7447 --- /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 0000000..cee535c --- /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 0000000..ab0ee01 --- /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 0000000..90f3f04 --- /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 0000000..fd531b8 --- /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 0000000..f8afec0 --- /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 0000000..891ab16 --- /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 0000000..7f7ed37 --- /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 0000000..ae104cf --- /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 0000000..643e89d --- /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 0000000..05e1469 --- /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 0000000..94c44d3 --- /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 0000000..19e1251 --- /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 0000000..ff19da6 --- /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 0000000..879122b --- /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 0000000..ea5a2ed --- /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 0000000..d5d2658 --- /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 0000000..d3a5486 --- /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 0000000..38399f3 --- /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 0000000..4a96d2b --- /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 0000000..0d7ed52 --- /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 0000000..e9085ff --- /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 0000000..19ab564 --- /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 0000000..499d6da --- /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 0000000..a347274 --- /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 0000000..38eda57 --- /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 0000000..78a228a --- /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 0000000..bf5a868 --- /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 0000000..61e9716 --- /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 0000000..9e6c83c --- /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 0000000..f2190b6 --- /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 0000000..08d9db8 --- /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 0000000..47bbebc --- /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 0000000..a67d267 --- /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 0000000..87763aa --- /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 0000000..9aed57c --- /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 0000000..693f891 --- /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 0000000..c09bcac --- /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 0000000..7e10933 --- /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 0000000..c129b66 --- /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 0000000..e1109b3 --- /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 0000000..89924d6 --- /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 0000000..c8b0068 --- /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 0000000..918887c --- /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 0000000..05f460d --- /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 0000000..be4c2ea --- /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 0000000..0387d97 --- /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 0000000..b0a3b6e --- /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 0000000..25515fc --- /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 0000000..af2cda1 --- /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":"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"} 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 0000000..2ed4130 --- /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 0000000..c4e373f --- /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 0000000..9d79bce --- /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 0000000..baa09ef --- /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 0000000..cc58dd2 --- /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 0000000..e0919fd --- /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 0000000..b980756 --- /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 0000000..2a01c6c --- /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 0000000..c199cc9 --- /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 0000000..1c1d88b --- /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 0000000..226f596 --- /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 0000000..0fd99fb --- /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 0000000..e2f79e3 --- /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 0000000..98fc42f --- /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 0000000..5284575 --- /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 0000000..d4e76f8 --- /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 0000000..5b40fd5 --- /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 0000000..92fdd5c --- /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 0000000..09f436d --- /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 0000000..98fa65a --- /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 0000000..3aed085 --- /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 0000000..06f7b0f --- /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 0000000..3e49e0b --- /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 0000000..74b829a --- /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 0000000..f13565c --- /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 0000000..f2c9159 --- /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 0000000..035fcaa --- /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 0000000..2adefe5 --- /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 0000000..e4a372c --- /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 0000000..f314809 --- /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 0000000..e18406d --- /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 0000000..541a53d --- /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 0000000..6dca70f --- /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 0000000..ff548cd --- /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 0000000..37ee7f3 --- /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 0000000..9e30824 --- /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 0000000..0c79bfe --- /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 0000000..f7f673a --- /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 0000000..f817919 --- /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 0000000..d50bfb2 --- /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 0000000..1788c64 --- /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 0000000..58e41a7 --- /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 0000000..4a58c4a --- /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 0000000..6c98375 --- /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 0000000..30341cd --- /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 0000000..8231331 --- /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 0000000..6eb96a3 --- /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 0000000..863bc62 --- /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 0000000..dcf762f --- /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 0000000..a68fff5 --- /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 0000000..9ff1ef6 --- /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 0000000..d02429e --- /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 0000000..1e4aac5 --- /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 0000000..e0f3293 --- /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 0000000..2d5ea3b --- /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 0000000..0eb029d --- /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 0000000..41bdb9e --- /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 0000000..d41652d --- /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 0000000..711064f --- /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 0000000..b19facd --- /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 0000000..04c6975 --- /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 0000000..2ef5201 --- /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 0000000..c62542c --- /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 0000000..607b992 --- /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 0000000..401828b --- /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 0000000..bc3c755 --- /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 0000000..cca489d --- /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 0000000..70117cf --- /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 0000000..9d79b64 --- /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 0000000..dee1d43 --- /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 0000000..3b33398 --- /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 0000000..0e7d3af --- /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 0000000..3740348 --- /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 0000000..4dafca3 --- /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 0000000..76345fe --- /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 0000000..02a0b74 --- /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 0000000..69cfe79 --- /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 0000000..f4dde03 --- /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 0000000..954fc15 --- /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 0000000..62742ce --- /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 0000000..b6dc75b --- /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 0000000..58aacd1 --- /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 0000000..6b1d722 --- /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 0000000..6e705e9 --- /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 0000000..e40f423 --- /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 0000000..3173922 --- /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 0000000..52ce6a3 --- /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 0000000..39e072f --- /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 0000000..770234e --- /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 0000000..72e46a4 --- /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 0000000..d9ef2a3 --- /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 0000000..6958919 --- /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 0000000..09c5a25 --- /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 0000000..3774b95 --- /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 0000000..ed0dab0 --- /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 0000000..8826421 --- /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 0000000..d1b7c1e --- /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 0000000..3ff5f6e --- /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 0000000..eb21f1f --- /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 0000000..b5954be --- /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 0000000..709a8a7 --- /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 0000000..f942bed --- /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 0000000..af8b987 --- /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 0000000..fa08bc7 --- /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 0000000..d5c579b --- /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 0000000..dcd975c --- /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 0000000..f5218be --- /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 0000000..75c4eca --- /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 0000000..65de19c --- /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 0000000..5d245d8 --- /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 0000000..a77962e --- /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 0000000..c74adc5 --- /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 0000000..1829846 --- /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 0000000..23bcdb9 --- /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 0000000..48b2a87 --- /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 0000000..29b8a5f --- /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 0000000..f18d25e --- /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 0000000..d4ceec1 --- /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 0000000..1c45718 --- /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 0000000..72d912b --- /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 0000000..5a744fe --- /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 0000000..5316ce1 --- /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 0000000..1a04dfc --- /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 0000000..13f8849 --- /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 0000000..1a01bbe --- /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 0000000..8271a7e --- /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 0000000..73b36eb --- /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 0000000..5a5239c --- /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 0000000..b61db35 --- /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 0000000..5f6c7a9 --- /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 0000000..d49095d --- /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 0000000..f685299 --- /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 0000000..2dbb32a --- /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 0000000..484b550 --- /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":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AACxF,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC"} diff --git a/node_modules/rxjs/_esm5/path-mapping.js b/node_modules/rxjs/_esm5/path-mapping.js new file mode 100644 index 0000000..2fc15a1 --- /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 0000000..856db3b --- /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 0000000..6882405 --- /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 0000000..edf0104 --- /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 0000000..599e9a7 --- /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 0000000..7926a09 --- /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 0000000..c76db00 --- /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 0000000..5d43370 --- /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 0000000..049f9a7 --- /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 0000000..b3e2a75 --- /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 0000000..a0ee559 --- /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 0000000..7163d7a --- /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 0000000..db16f57 --- /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 0000000..302f4ff --- /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 0000000..b392cb2 --- /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 0000000..aeca6ca --- /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 0000000..ad0e211 --- /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 0000000..b4e2966 --- /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 0000000..11b55d9 --- /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 0000000..60c6edc --- /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 0000000..2b32efe --- /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 0000000..744ffd2 --- /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 0000000..969c299 --- /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 0000000..bc5d3f3 --- /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 0000000..29eb2c0 --- /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 0000000..c31b8fe --- /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 0000000..d261ad7 --- /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 0000000..582d5b7 --- /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 0000000..68623e4 --- /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 0000000..2a581e2 --- /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 0000000..053a095 --- /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 0000000..f6e1d87 --- /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 0000000..06572d8 --- /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 0000000..6505176 --- /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 0000000..369039a --- /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 0000000..0d6e05b --- /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 0000000..75321cb --- /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 0000000..f931c43 --- /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 0000000..c7241f8 --- /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 0000000..58fbfa5 --- /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 0000000..ad181b9 --- /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 0000000..c262242 --- /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 0000000..418055c --- /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 0000000..91ea320 --- /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 0000000..3203a9b --- /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 0000000..65bb024 --- /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 0000000..9c228e4 --- /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 0000000..5767d74 --- /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 0000000..3942d95 --- /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 0000000..583456e --- /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 0000000..6cd2b31 --- /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 0000000..522be15 --- /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 0000000..6bfd345 --- /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 0000000..7a111a5 --- /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 0000000..bbc2ca9 --- /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 0000000..ca95870 --- /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 0000000..4c464d0 --- /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 0000000..955e5ba --- /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 0000000..fc70b64 --- /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 0000000..c0720f6 --- /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 0000000..bcb264c --- /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 0000000..c018612 --- /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 0000000..80a4d91 --- /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 0000000..fb765a9 --- /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 0000000..13a90e7 --- /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 0000000..3af25b6 --- /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 0000000..ba16ba4 --- /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 0000000..d7e0150 --- /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 0000000..9b45c4e --- /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 0000000..691cbe4 --- /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 0000000..8a185cb --- /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 0000000..2ae274e --- /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 0000000..39d2f57 --- /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 0000000..c4c1e3b --- /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 0000000..7405653 --- /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 0000000..21b4885 --- /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 0000000..af86d3f --- /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 0000000..60e2f9b --- /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 0000000..39403e4 --- /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 0000000..4f6a8e7 --- /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 0000000..c7ac49a --- /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 0000000..d387fef --- /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 0000000..23b5fb6 --- /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 0000000..5c72041 --- /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 0000000..8d9ceee --- /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 0000000..979d4b8 --- /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 0000000..a3eb5a4 --- /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 0000000..c76b382 --- /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 0000000..16b4fd0 --- /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 0000000..41f68da --- /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 0000000..480f95c --- /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 0000000..aa604d7 --- /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 0000000..b501cae --- /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 0000000..68872bb --- /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 0000000..76dbd49 --- /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 0000000..96237e5 --- /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 0000000..9c7c5d7 --- /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 0000000..c9a5c6f --- /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 0000000..abd78ab --- /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 0000000..7ed332a --- /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 0000000..4d6990c --- /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 0000000..2dbdf86 --- /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 0000000..d6d5a24 --- /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 0000000..20cd73b --- /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 0000000..4ad636f --- /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 0000000..0c53f4e --- /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 0000000..8c8ee88 --- /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 0000000..316a29e --- /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 0000000..9220291 --- /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 0000000..09d0bd9 --- /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 0000000..0cf4be8 --- /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 0000000..5b5317d --- /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 0000000..0721014 --- /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 0000000..88333e7 --- /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 0000000..bbdfce8 --- /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 0000000..d6f48f8 --- /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 0000000..c743a6b --- /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 0000000..e65246e --- /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 0000000..7ccae34 --- /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 0000000..cf9157f --- /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 0000000..da7ee18 --- /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 0000000..8eaafd8 --- /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 0000000..dadc722 --- /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 0000000..9d98af9 --- /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 0000000..752de44 --- /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 0000000..9a843a6 --- /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 0000000..6698aef --- /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 0000000..fb73ad6 --- /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 0000000..85c6832 --- /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 0000000..6957cf5 --- /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 0000000..ace114c --- /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 0000000..e5ff5db --- /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 0000000..a1d7f17 --- /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 0000000..89ad4eb --- /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 0000000..8ffedf9 --- /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 0000000..9a66c53 --- /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 0000000..cdbad98 --- /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 0000000..d8e0070 --- /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 0000000..8f79694 --- /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 0000000..3a5147e --- /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 0000000..96d2017 --- /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 0000000..5828c65 --- /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 0000000..cd27763 --- /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 0000000..a50cebb --- /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 0000000..9e5b758 --- /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 0000000..0ab069a --- /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 0000000..18f368b --- /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 0000000..933d925 --- /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 0000000..5ba22f8 --- /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 0000000..330f8f9 --- /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 0000000..0ba3bac --- /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 0000000..d4196d0 --- /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 0000000..8273e9e --- /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 0000000..a08c77a --- /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 0000000..7c0cc23 --- /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 0000000..f556b82 --- /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 0000000..f48243a --- /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 0000000..10931c8 --- /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 0000000..9eee7cd --- /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 0000000..caf5174 --- /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 0000000..0e0eda0 --- /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 0000000..8fe8f29 --- /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 0000000..49f837d --- /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 0000000..5075eb5 --- /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 0000000..789d3c1 --- /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 0000000..5726e81 --- /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 0000000..4aecfac --- /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 0000000..d0cae89 --- /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 0000000..961de7c --- /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 0000000..c639877 --- /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 0000000..6e231be --- /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 0000000..c00bae3 --- /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 0000000..ee84018 --- /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 0000000..035ea49 --- /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 0000000..1a5e5f1 --- /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 0000000..6ffe1cf --- /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 0000000..1cfe74a --- /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 0000000..fdceab3 --- /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 0000000..d1576dc --- /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 0000000..7db9d99 --- /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 0000000..6e921a7 --- /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 0000000..a864c86 --- /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 0000000..2255ba4 --- /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 0000000..91d31ba --- /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 0000000..c23f16b --- /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 0000000..8d98469 --- /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 0000000..a3982d8 --- /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 0000000..fce0f58 --- /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 0000000..b12264f --- /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 0000000..14e9c80 --- /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 0000000..0a63f44 --- /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 0000000..932d1f4 --- /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 0000000..4c79ff1 --- /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 0000000..9701dab --- /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 0000000..28b04ba --- /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 0000000..08cf515 --- /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 0000000..2acf913 --- /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 0000000..b84aaa9 --- /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 0000000..730a52f --- /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 0000000..27ce72a --- /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 0000000..0b222df --- /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 0000000..b1d158c --- /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 0000000..70f3e2e --- /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 0000000..5b92015 --- /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 0000000..2a289f2 --- /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 0000000..f43757b --- /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 0000000..e9f2a7f --- /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 0000000..91060b4 --- /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 0000000..945bd41 --- /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 0000000..a49f787 --- /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 0000000..5d24be4 --- /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 0000000..e0b6b77 --- /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 0000000..e773199 --- /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 0000000..8e14b7e --- /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 0000000..0efd701 --- /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 0000000..c66f7ae --- /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 0000000..56b5824 --- /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 0000000..7b0277e --- /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 0000000..dfa5c46 --- /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 0000000..10f11d5 --- /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 0000000..ceb8603 --- /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 0000000..06cdc4f --- /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 0000000..02b8b75 --- /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 0000000..9ec784a --- /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 0000000..d8ec3cc --- /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 0000000..e550a31 --- /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 0000000..bdefc21 --- /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 0000000..0d8e15f --- /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 0000000..30f39e2 --- /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 0000000..c741663 --- /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 0000000..17c5fcc --- /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 0000000..9be36cd --- /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 0000000..b6e3a2f --- /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 0000000..5fa91d5 --- /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 0000000..d23db81 --- /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 0000000..88fbc15 --- /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 0000000..03b0670 --- /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 0000000..2f7c199 --- /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 0000000..accd0a8 --- /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 0000000..4ade085 --- /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 0000000..1eb8c75 --- /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 0000000..82b9528 --- /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 0000000..0d2aa97 --- /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 0000000..1cdca28 --- /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 0000000..9f4c34c --- /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 0000000..2930fd3 --- /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 0000000..a458db3 --- /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 0000000..f52406e --- /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 0000000..7b8c869 --- /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 0000000..a85b37a --- /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 0000000..cdd4dcb --- /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 0000000..0af0f3b --- /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 0000000..87e2b9d --- /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 0000000..4f8da48 --- /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 0000000..b7198cc --- /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 0000000..68a62eb --- /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 0000000..1ebb5a3 --- /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 0000000..3bc5e01 --- /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 0000000..3667cb7 --- /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 0000000..ac4949b --- /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 0000000..243d07c --- /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 0000000..6f85bbd --- /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 0000000..a1e6ec7 --- /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 0000000..06bc922 --- /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 0000000..8577776 --- /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 0000000..eb44e12 --- /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 0000000..b113466 --- /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 0000000..f139329 --- /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 0000000..bb48aad --- /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 0000000..c8db530 --- /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 0000000..d278e1d --- /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 0000000..6f63204 --- /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 0000000..4290613 --- /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 0000000..7376df4 --- /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 0000000..8efab1f --- /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 0000000..ca5471a --- /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 0000000..4a23d60 --- /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 0000000..53b67c3 --- /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 0000000..fb9316b --- /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 0000000..c00fa98 --- /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 0000000..bde602f --- /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 0000000..c455337 --- /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 0000000..689a957 --- /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 0000000..3340634 --- /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 0000000..441255f --- /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 0000000..1318150 --- /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 0000000..48d52ee --- /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 0000000..153d8b0 --- /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 0000000..3296e68 --- /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 0000000..9774074 --- /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 0000000..baf8162 --- /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 0000000..e2186c0 --- /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 0000000..75fbc7a --- /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 0000000..f47a31d --- /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 0000000..009d8bd --- /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 0000000..5f0a05c --- /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 0000000..6db65af --- /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 0000000..a77a301 --- /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 0000000..d3612c2 --- /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 0000000..7f31ff4 --- /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 0000000..a5492b9 --- /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 0000000..a0ccd1a --- /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 0000000..d35b3cd --- /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 0000000..e8c6eda --- /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 0000000..8bac037 --- /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 0000000..1456f1e --- /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 0000000..6fe5c69 --- /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 0000000..02ae65d --- /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 0000000..0c432c9 --- /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 0000000..f27a585 --- /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 0000000..02475f1 --- /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 0000000..21ea6b2 --- /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 0000000..69c0389 --- /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 0000000..f0a19cc --- /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 0000000..496218b --- /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 0000000..093c352 --- /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 0000000..5e076c9 --- /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 0000000..9c9e670 --- /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 0000000..cce240d --- /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 0000000..db9e74e --- /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 0000000..a1b5d6d --- /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 0000000..003a9ea --- /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 0000000..546ffb8 --- /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 0000000..d2d3f48 --- /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 0000000..8da50a1 --- /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 0000000..e291bac --- /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 0000000..b1dfdfa --- /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 0000000..f9ac611 --- /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 0000000..1d9bb0b --- /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 0000000..320b844 --- /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 0000000..cc5cb93 --- /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 0000000..62d7c10 --- /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 0000000..08c3bcb --- /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 0000000..aac062c --- /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 0000000..2716631 --- /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 0000000..13d0816 --- /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 0000000..9da93fc --- /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 0000000..b3c0b7f --- /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 0000000..78c8e55 --- /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 0000000..f69102c --- /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 0000000..a9ab1f1 --- /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 0000000..06ff174 --- /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 0000000..84d37ea --- /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 0000000..291ca39 --- /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 0000000..825457b --- /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 0000000..4ff4d7f --- /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 0000000..fb643ca --- /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 0000000..c683297 --- /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 0000000..4cb8a2b --- /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 0000000..e6a434e --- /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 0000000..198a616 --- /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 0000000..fae6799 --- /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 0000000..39a6077 --- /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 0000000..2a69ffd --- /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 0000000..5263dcc --- /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 0000000..b9cd549 --- /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 0000000..cd4ec44 --- /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 0000000..d68cb34 --- /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 0000000..c4f7107 --- /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 0000000..16402c8 --- /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 0000000..7cda577 --- /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 0000000..add6759 --- /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 0000000..a0f1a4f --- /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 0000000..e7c8107 --- /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 0000000..0377690 --- /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 0000000..cc7b16e --- /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 0000000..c7cb12b --- /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 0000000..cfa4eb4 --- /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 0000000..450c41f --- /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 0000000..656fce3 --- /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 0000000..1bf33da --- /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 0000000..da7eccf --- /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 0000000..1018e22 --- /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 0000000..5e80c7a --- /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 0000000..1d82ec6 --- /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 0000000..091a9ae --- /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 0000000..067b878 --- /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 0000000..9ed25df --- /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 0000000..d84082f --- /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 0000000..a2197f2 --- /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 0000000..f5d8564 --- /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 0000000..f647f9b --- /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 0000000..419601b --- /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 0000000..9f71574 --- /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 0000000..548babd --- /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 0000000..af5df33 --- /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 0000000..414202a --- /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 0000000..368d4fa --- /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 0000000..c2472f9 --- /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 0000000..cf8877f --- /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 0000000..70cdb3e --- /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 0000000..dcd81ab --- /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 0000000..73cb0cc --- /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 0000000..93c809f --- /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 0000000..e3636d1 --- /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 0000000..898cd05 --- /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 0000000..0aed754 --- /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 0000000..158be39 --- /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 0000000..8f0288e --- /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 0000000..3cd7a19 --- /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 0000000..e6ff01d --- /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 0000000..ca5d62f --- /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 0000000..0f14a63 --- /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 0000000..dff5519 --- /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 0000000..4963382 --- /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 0000000..b76a9a1 --- /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 0000000..82ccf20 --- /dev/null +++ b/node_modules/rxjs/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/interfaces.d.ts b/node_modules/rxjs/interfaces.d.ts new file mode 100644 index 0000000..5d5821d --- /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 0000000..db91911 --- /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 0000000..21fafaa --- /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 0000000..3f2c80e --- /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 0000000..d0e265e --- /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 0000000..2119394 --- /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 0000000..5ff05a6 --- /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 0000000..fde2be1 --- /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 0000000..55d028b --- /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 0000000..56ffa67 --- /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 0000000..c84b212 --- /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 0000000..99435d6 --- /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 0000000..54d4006 --- /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 0000000..da9c606 --- /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 0000000..d9b6dc4 --- /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 0000000..4b50244 --- /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 0000000..ad94554 --- /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 0000000..dc3eeb6 --- /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 0000000..64be5a0 --- /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":"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"} diff --git a/node_modules/rxjs/internal/Observable.d.ts b/node_modules/rxjs/internal/Observable.d.ts new file mode 100644 index 0000000..6c5c2da --- /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 0000000..780998b --- /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 0000000..4119f09 --- /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 0000000..454905d --- /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 0000000..e457b5f --- /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 0000000..6d12ace --- /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 0000000..a1054c1 --- /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 0000000..3c44713 --- /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 0000000..e883033 --- /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 0000000..1550120 --- /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 0000000..c2377b1 --- /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 0000000..37860d5 --- /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 0000000..28383d0 --- /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 0000000..610c87a --- /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 0000000..246395e --- /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 0000000..ad8b666 --- /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 0000000..8de0b0f --- /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 0000000..98bfde4 --- /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 0000000..47c34db --- /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 0000000..38b0969 --- /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 0000000..de55d2d --- /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 0000000..dc86c2f --- /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 0000000..644e14d --- /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 0000000..4008ca1 --- /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":"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"} diff --git a/node_modules/rxjs/internal/SubjectSubscription.d.ts b/node_modules/rxjs/internal/SubjectSubscription.d.ts new file mode 100644 index 0000000..ed533ee --- /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 0000000..2409d40 --- /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 0000000..f1fe1b9 --- /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 0000000..d841126 --- /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 0000000..08a57fd --- /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 0000000..3b07b8c --- /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 0000000..bf8ccca --- /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 0000000..3e60dd1 --- /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 0000000..6f52756 --- /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 0000000..7e62207 --- /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 0000000..ec56be9 --- /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 0000000..d8f2929 --- /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 0000000..9bfb1a0 --- /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 0000000..e4a722c --- /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 0000000..24cb3dd --- /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 0000000..fe3a8e8 --- /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 0000000..9772f58 --- /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 0000000..b8b17ac --- /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 0000000..0a42c0e --- /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 0000000..e79b2d2 --- /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 0000000..de7d5ea --- /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 0000000..39fd17f --- /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 0000000..ac6efeb --- /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 0000000..52b31da --- /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 0000000..5a2f62b --- /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 0000000..135bbd2 --- /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 0000000..025fdc5 --- /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":";;AAAA,4CAA2C;AAC3C,gDAA+C;AAG/C,wCAAuC;AACvC,yDAAwD;AACxD,mDAAkD;AAClD,2CAA0C;AAoJ1C,SAAgB,gBAAgB,CAC9B,YAAsB,EACtB,cAAsC,EACtC,SAAyB;IAGzB,IAAI,cAAc,EAAE;QAClB,IAAI,yBAAW,CAAC,cAAc,CAAC,EAAE;YAC/B,SAAS,GAAG,cAAc,CAAC;SAC5B;aAAM;YAEL,OAAO;gBAAC,cAAc;qBAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;oBAAd,yBAAc;;gBAAK,OAAA,gBAAgB,CAAC,YAAY,EAAE,SAAS,CAAC,eAAI,IAAI,EAAE,IAAI,CAChF,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;YAF0B,CAE1B,CAAC;SACH;KACF;IAED,OAAO;QAAoB,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QACvC,IAAM,MAAM,GAAmB;YAC7B,OAAO,EAAE,SAAS;YAClB,IAAI,MAAA;YACJ,YAAY,cAAA;YACZ,SAAS,WAAA;YACT,OAAO,EAAE,IAAI;SACd,CAAC;QACF,OAAO,IAAI,uBAAU,CAAI,UAAA,UAAU;YACzB,IAAA,wBAAO,CAAY;YACrB,IAAA,wBAAO,CAAY;YACzB,IAAI,CAAC,SAAS,EAAE;gBACd,IAAI,CAAC,OAAO,EAAE;oBACZ,OAAO,GAAG,MAAM,CAAC,OAAO,GAAG,IAAI,2BAAY,EAAK,CAAC;oBACjD,IAAM,OAAO,GAAG;wBAAC,mBAAmB;6BAAnB,UAAmB,EAAnB,qBAAmB,EAAnB,IAAmB;4BAAnB,8BAAmB;;wBAClC,IAAM,GAAG,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;wBAE9B,IAAI,GAAG,EAAE;4BACP,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;4BACnB,OAAO;yBACR;wBAED,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;wBAC/D,OAAO,CAAC,QAAQ,EAAE,CAAC;oBACrB,CAAC,CAAC;oBAEF,IAAI;wBACF,YAAY,CAAC,KAAK,CAAC,OAAO,EAAM,IAAI,SAAE,OAAO,GAAE,CAAC;qBACjD;oBAAC,OAAO,GAAG,EAAE;wBACZ,IAAI,+BAAc,CAAC,OAAO,CAAC,EAAE;4BAC3B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;yBACpB;6BAAM;4BACL,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;yBACnB;qBACF;iBACF;gBACD,OAAO,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;aACtC;iBAAM;gBACL,OAAO,SAAS,CAAC,QAAQ,CAAmB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,QAAA,EAAE,UAAU,YAAA,EAAE,OAAO,SAAA,EAAE,CAAC,CAAC;aAC3F;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AA3DD,4CA2DC;AAgBD,SAAS,QAAQ,CAA6C,KAAuB;IAArF,iBA0BC;IAzBS,IAAA,qBAAM,EAAE,6BAAU,EAAE,uBAAO,CAAW;IACtC,IAAA,kCAAY,EAAE,kBAAI,EAAE,4BAAS,CAAY;IACjD,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAE7B,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,GAAG,MAAM,CAAC,OAAO,GAAG,IAAI,2BAAY,EAAK,CAAC;QAEjD,IAAM,OAAO,GAAG;YAAC,mBAAmB;iBAAnB,UAAmB,EAAnB,qBAAmB,EAAnB,IAAmB;gBAAnB,8BAAmB;;YAClC,IAAM,GAAG,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,GAAG,EAAE;gBACP,KAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAsB,aAAa,EAAE,CAAC,EAAE,EAAE,GAAG,KAAA,EAAE,OAAO,SAAA,EAAE,CAAC,CAAC,CAAC;aACvF;iBAAM;gBACL,IAAM,KAAK,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC/D,KAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAqB,YAAY,EAAE,CAAC,EAAE,EAAE,KAAK,OAAA,EAAE,OAAO,SAAA,EAAE,CAAC,CAAC,CAAC;aACvF;QACH,CAAC,CAAC;QAEF,IAAI;YACF,YAAY,CAAC,KAAK,CAAC,OAAO,EAAM,IAAI,SAAE,OAAO,GAAE,CAAC;SACjD;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAsB,aAAa,EAAE,CAAC,EAAE,EAAE,GAAG,KAAA,EAAE,OAAO,SAAA,EAAE,CAAC,CAAC,CAAC;SACvF;KACF;IAED,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;AAC1C,CAAC;AAOD,SAAS,YAAY,CAAI,GAAuB;IACtC,IAAA,iBAAK,EAAE,qBAAO,CAAS;IAC/B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,OAAO,CAAC,QAAQ,EAAE,CAAC;AACrB,CAAC;AAOD,SAAS,aAAa,CAAI,GAAwB;IACxC,IAAA,aAAG,EAAE,qBAAO,CAAS;IAC7B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC"} 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 0000000..3c76625 --- /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 0000000..ca87420 --- /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 0000000..9eafcd6 --- /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 0000000..c547774 --- /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 0000000..2f1061b --- /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 0000000..4337db2 --- /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 0000000..67ca07e --- /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 0000000..7278515 --- /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 0000000..8a635af --- /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 0000000..a88eda7 --- /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 0000000..432d777 --- /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 0000000..3c5a93e --- /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 0000000..84cc6f1 --- /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 0000000..d3edd3c --- /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 0000000..da0ce6a --- /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 0000000..72e29f4 --- /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 0000000..b7399e1 --- /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 0000000..8f4e299 --- /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 0000000..8f37340 --- /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 0000000..ac7694b --- /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 0000000..0a4b31b --- /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 0000000..e78db13 --- /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 0000000..714cf95 --- /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 0000000..1d0f249 --- /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 0000000..0a370e9 --- /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 0000000..cfa90b6 --- /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 0000000..7192f67 --- /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 0000000..176490a --- /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 0000000..40870ad --- /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 0000000..8d99a74 --- /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 0000000..8691d02 --- /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 0000000..4f6069f --- /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 0000000..effad4d --- /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 0000000..76b4ffe --- /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 0000000..545e587 --- /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 0000000..a1dde84 --- /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 0000000..a093358 --- /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 0000000..5355c43 --- /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 0000000..9e948ef --- /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 0000000..e8b8247 --- /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 0000000..6cb21b1 --- /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 0000000..f49bcb0 --- /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 0000000..f36d19a --- /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 0000000..8d319a4 --- /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 0000000..59e88a4 --- /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 0000000..2220b09 --- /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 0000000..2d15d4c --- /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 0000000..c4a2fdf --- /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 0000000..301c39d --- /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 0000000..4aa193e --- /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 0000000..9286ebf --- /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 0000000..2efbe10 --- /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 0000000..48341d5 --- /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 0000000..0b39bff --- /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 0000000..3881ab9 --- /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 0000000..7e8a836 --- /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 0000000..b0d3b87 --- /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 0000000..14bf24e --- /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 0000000..89d5e8e --- /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 0000000..bfd65e0 --- /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 0000000..b080ec4 --- /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 0000000..13e437c --- /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 0000000..8c023d1 --- /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 0000000..f3337db --- /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 0000000..05ab045 --- /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 0000000..5a30ddd --- /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 0000000..5b81cce --- /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 0000000..3eba9e2 --- /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 0000000..9305eb6 --- /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 0000000..5e915e6 --- /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 0000000..10037fe --- /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 0000000..12065a4 --- /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 0000000..e750027 --- /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 0000000..dc33aff --- /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 0000000..91ed70e --- /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 0000000..91392cd --- /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 0000000..550feb6 --- /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 0000000..b096a5e --- /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 0000000..8aad405 --- /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 0000000..8e5c0df --- /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 0000000..01cde87 --- /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 0000000..cb833c4 --- /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 0000000..0d28544 --- /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 0000000..def5d43 --- /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 0000000..ce684a3 --- /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 0000000..f7a928d --- /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 0000000..adf2a57 --- /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 0000000..21014e4 --- /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 0000000..063ca57 --- /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 0000000..4747304 --- /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 0000000..4653938 --- /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 0000000..3d55cd8 --- /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 0000000..2025029 --- /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 0000000..d7b250a --- /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 0000000..2b85c50 --- /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 0000000..a50214e --- /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 0000000..5c2f910 --- /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 0000000..195f261 --- /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 0000000..7042a37 --- /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 0000000..ee4f507 --- /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 0000000..24743fd --- /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 0000000..8437ae0 --- /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 0000000..dd764e6 --- /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 0000000..39dd40e --- /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 0000000..dcaa26f --- /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 0000000..b68efb1 --- /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 0000000..1cd2203 --- /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 0000000..a94eba2 --- /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 0000000..87afb80 --- /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 0000000..bbfb625 --- /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 0000000..3f1cf27 --- /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 0000000..cffbe35 --- /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 0000000..c5fd6b3 --- /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 0000000..92e29cd --- /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 0000000..3c4759b --- /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 0000000..3b1839c --- /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 0000000..d8dda0a --- /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 0000000..ba3b82f --- /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 0000000..aa6f42e --- /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 0000000..a19279a --- /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 0000000..d087978 --- /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 0000000..7902e0a --- /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 0000000..b4d58f0 --- /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 0000000..2b588f7 --- /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 0000000..f3b05e5 --- /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 0000000..01ef183 --- /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 0000000..7b7d929 --- /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 0000000..fb98840 --- /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 0000000..e79dff9 --- /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 0000000..9dcf300 --- /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 0000000..91ac226 --- /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 0000000..3e80fad --- /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 0000000..ab69336 --- /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 0000000..fe4d95c --- /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 0000000..fc24b2c --- /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 0000000..b6f5e32 --- /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 0000000..2dfc616 --- /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 0000000..9d09853 --- /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 0000000..3ef496b --- /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 0000000..84164cf --- /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 0000000..40ea6b2 --- /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 0000000..cc9bc7b --- /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 0000000..df37b18 --- /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 0000000..ea09c21 --- /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 0000000..bd66791 --- /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 0000000..5c955f3 --- /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 0000000..4af7d5d --- /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 0000000..4b3e2f0 --- /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 0000000..b05d8b8 --- /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 0000000..5453347 --- /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 0000000..8ead9aa --- /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 0000000..84ee827 --- /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 0000000..9a4de95 --- /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 0000000..063d26d --- /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 0000000..c43aa3f --- /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 0000000..0e28116 --- /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 0000000..c79b577 --- /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 0000000..1fd507a --- /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 0000000..05c9cce --- /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 0000000..74eb5e9 --- /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 0000000..58ef57a --- /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 0000000..df1be47 --- /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 0000000..bfe67a8 --- /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 0000000..f63e466 --- /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 0000000..b631320 --- /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 0000000..0b96023 --- /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 0000000..55ff96c --- /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 0000000..853a912 --- /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 0000000..4fbb425 --- /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 0000000..028bd4e --- /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 0000000..67e08f6 --- /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 0000000..a99efaa --- /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 0000000..9189215 --- /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 0000000..502036e --- /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 0000000..d4a1e67 --- /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 0000000..b42928e --- /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 0000000..f0ced3a --- /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 0000000..840948a --- /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 0000000..39c01b8 --- /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 0000000..b2bee98 --- /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 0000000..c2305d2 --- /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 0000000..a77c1bd --- /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 0000000..ada40d5 --- /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 0000000..b4c9bba --- /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 0000000..11ebd79 --- /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 0000000..3d84b19 --- /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 0000000..0dcc0f5 --- /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 0000000..855db40 --- /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 0000000..ef4f02c --- /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 0000000..9da6850 --- /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 0000000..899eb8e --- /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 0000000..ab62452 --- /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 0000000..036117e --- /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 0000000..255982c --- /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 0000000..be3d4c9 --- /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 0000000..53523e5 --- /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 0000000..1eb7f09 --- /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 0000000..56d058f --- /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 0000000..2125bab --- /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 0000000..116ddab --- /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 0000000..95f7fe2 --- /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 0000000..ba78b73 --- /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 0000000..ea43cd2 --- /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 0000000..94a3ed8 --- /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 0000000..7321559 --- /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 0000000..b83f946 --- /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 0000000..d2d604f --- /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 0000000..404d14c --- /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 0000000..8309141 --- /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 0000000..e37d07f --- /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 0000000..b34069f --- /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 0000000..19fc0a9 --- /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 0000000..966952b --- /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 0000000..6a4e0ab --- /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 0000000..29bb166 --- /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 0000000..e8e5dde --- /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 0000000..f4cf9f6 --- /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 0000000..1433a34 --- /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 0000000..803ca32 --- /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 0000000..82b9e5a --- /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 0000000..61aeb68 --- /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 0000000..5e4171d --- /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 0000000..460413d --- /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 0000000..a91824d --- /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 0000000..44da4c9 --- /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 0000000..eff80b8 --- /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 0000000..29cabb3 --- /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 0000000..a93c984 --- /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 0000000..0d2a8f3 --- /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 0000000..4c732d2 --- /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 0000000..726ab22 --- /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 0000000..be37be0 --- /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 0000000..a20b055 --- /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 0000000..4d024d0 --- /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":"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"} 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 0000000..cd1d5a1 --- /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 0000000..c3522a2 --- /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 0000000..bb4a5ab --- /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 0000000..d4198e5 --- /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 0000000..69e8121 --- /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 0000000..898e23b --- /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 0000000..72abf65 --- /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 0000000..780cf3e --- /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 0000000..f17a17e --- /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 0000000..e00592e --- /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 0000000..2782102 --- /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 0000000..e2cc508 --- /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 0000000..3034ace --- /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 0000000..3ace8fb --- /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 0000000..8d5b133 --- /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 0000000..2c2bf86 --- /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 0000000..5d5f8b6 --- /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 0000000..4b0f494 --- /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 0000000..901aac1 --- /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 0000000..1311dfe --- /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 0000000..bfd8233 --- /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 0000000..0022014 --- /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 0000000..ae96c71 --- /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 0000000..b1241fe --- /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 0000000..301780e --- /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 0000000..6bb6af7 --- /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 0000000..a65b359 --- /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 0000000..7757de5 --- /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 0000000..a921c25 --- /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 0000000..ab2c9b1 --- /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 0000000..e1d44d6 --- /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 0000000..6131a40 --- /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 0000000..a831305 --- /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 0000000..0012786 --- /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 0000000..2765417 --- /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 0000000..d8ad7ef --- /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 0000000..6e39cff --- /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 0000000..bae5b00 --- /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 0000000..1c95a44 --- /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 0000000..6020a76 --- /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 0000000..b59dcf5 --- /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 0000000..3e37321 --- /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 0000000..da75389 --- /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 0000000..63296cf --- /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 0000000..93baad8 --- /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 0000000..e74e9ec --- /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 0000000..5684ba9 --- /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 0000000..bbc4ca6 --- /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 0000000..d1ecb28 --- /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 0000000..0460a95 --- /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 0000000..a923cdc --- /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 0000000..17a225e --- /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 0000000..2058373 --- /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 0000000..6070238 --- /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 0000000..0608256 --- /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 0000000..6f0e873 --- /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 0000000..0551f61 --- /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 0000000..cb55ffe --- /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 0000000..9c0b488 --- /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 0000000..a45b0ca --- /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 0000000..f2ba124 --- /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 0000000..4431737 --- /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 0000000..69e638d --- /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 0000000..9083f1e --- /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 0000000..525580b --- /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 0000000..071346b --- /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 0000000..8e03bc5 --- /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 0000000..b43c1b7 --- /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 0000000..a27e6bf --- /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 0000000..67ee97b --- /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 0000000..dbb6bce --- /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 0000000..7ec29c1 --- /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 0000000..e8439ab --- /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 0000000..398eeb8 --- /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 0000000..aaf1dea --- /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 0000000..2b52778 --- /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 0000000..6cedb59 --- /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 0000000..0e6961a --- /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 0000000..d5deef7 --- /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 0000000..b99c2d8 --- /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 0000000..1ad14fb --- /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 0000000..dedad7d --- /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 0000000..0bd54a0 --- /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 0000000..5a7a06e --- /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 0000000..46ab8c2 --- /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 0000000..4e407ab --- /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 0000000..aa08a67 --- /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 0000000..bd9be1b --- /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 0000000..7900c8b --- /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 0000000..dd314f9 --- /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 0000000..a5ae21b --- /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 0000000..8196342 --- /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 0000000..f22aaca --- /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 0000000..e3c2c8c --- /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 0000000..fd72f0c --- /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 0000000..542326a --- /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 0000000..b67954e --- /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 0000000..92042f5 --- /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 0000000..d4bd464 --- /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 0000000..a184147 --- /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 0000000..f01f86d --- /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 0000000..509b3ee --- /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 0000000..ecf9c96 --- /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 0000000..c9fbdb4 --- /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 0000000..6d89e90 --- /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 0000000..798178e --- /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 0000000..2874b69 --- /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 0000000..f6056f7 --- /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 0000000..35ec284 --- /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 0000000..745296a --- /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 0000000..0f11175 --- /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 0000000..e6e127a --- /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 0000000..8ab4475 --- /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 0000000..9a6b3a8 --- /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 0000000..8bff772 --- /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 0000000..3bab1e1 --- /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 0000000..57ead77 --- /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 0000000..324812c --- /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 0000000..360da38 --- /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 0000000..74291cc --- /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 0000000..72a4db2 --- /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 0000000..01eec10 --- /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 0000000..fc7c148 --- /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 0000000..5a3302f --- /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 0000000..259cf99 --- /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 0000000..c961320 --- /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 0000000..af02ffa --- /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 0000000..156c44b --- /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 0000000..343f02d --- /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":"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"} 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 0000000..1238bca --- /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 0000000..7722c34 --- /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 0000000..5817ed7 --- /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 0000000..029c2e2 --- /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 0000000..9ed2bc0 --- /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 0000000..d915b13 --- /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 0000000..8d4ac4e --- /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 0000000..0241d2a --- /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 0000000..8935e58 --- /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 0000000..05ea509 --- /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 0000000..d01253c --- /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 0000000..62c1550 --- /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 0000000..f7e5ee7 --- /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 0000000..52bb279 --- /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 0000000..66f136a --- /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 0000000..2103751 --- /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 0000000..ca6639f --- /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 0000000..5064cfa --- /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 0000000..ae29815 --- /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 0000000..2b4a3dc --- /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 0000000..0532f6d --- /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 0000000..3e5ed18 --- /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 0000000..0bc25a0 --- /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 0000000..5ac86c0 --- /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":";;;;;;;;;;;;;;;AACA,4CAA2C;AAE3C,sCAAqC;AAkErC,SAAgB,WAAW,CAAI,UAAkB,EAClB,gBAA4B;IAA5B,iCAAA,EAAA,oBAA4B;IACzD,OAAO,SAAS,2BAA2B,CAAC,MAAqB;QAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAI,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAC/E,CAAC,CAAC;AACJ,CAAC;AALD,kCAKC;AAED;IAEE,6BAAoB,UAAkB,EAClB,gBAAwB;QADxB,eAAU,GAAV,UAAU,CAAQ;QAClB,qBAAgB,GAAhB,gBAAgB,CAAQ;IAC5C,CAAC;IAED,kCAAI,GAAJ,UAAK,UAAqC,EAAE,MAAW;QACrD,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACzG,CAAC;IACH,0BAAC;AAAD,CAAC,AATD,IASC;AAOD;IAAuC,yCAAa;IAIlD,+BAAsB,WAAsC,EACxC,UAAkB,EAClB,gBAAwB;QAF5C,YAGE,kBAAM,WAAW,CAAC,SAEnB;QALqB,iBAAW,GAAX,WAAW,CAA2B;QACxC,gBAAU,GAAV,UAAU,CAAQ;QAClB,sBAAgB,GAAhB,gBAAgB,CAAQ;QALpC,aAAO,GAAiB,CAAE,IAAI,iBAAO,EAAK,CAAE,CAAC;QAC7C,WAAK,GAAW,CAAC,CAAC;QAMxB,WAAW,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;;IACpC,CAAC;IAES,qCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAM,gBAAgB,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;QAC/F,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;QAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC5C,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACxB;QACD,IAAM,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,UAAU,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,gBAAgB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACxD,OAAO,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC;SAC5B;QACD,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,gBAAgB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACzD,IAAM,QAAM,GAAG,IAAI,iBAAO,EAAK,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,QAAM,CAAC,CAAC;YACrB,WAAW,CAAC,IAAI,CAAC,QAAM,CAAC,CAAC;SAC1B;IACH,CAAC;IAES,sCAAM,GAAhB,UAAiB,GAAQ;QACvB,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,OAAO,EAAE;YACX,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBACzC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aAC5B;SACF;QACD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAES,yCAAS,GAAnB;QACE,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,OAAO,EAAE;YACX,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBACzC,OAAO,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC;aAC5B;SACF;QACD,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAES,4CAAY,GAAtB;QACE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IACH,4BAAC;AAAD,CAAC,AAxDD,CAAuC,uBAAU,GAwDhD"} 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 0000000..2d793d5 --- /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 0000000..d9a6d9b --- /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 0000000..e814999 --- /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":"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"} 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 0000000..b71f351 --- /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 0000000..c0d144a --- /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 0000000..7cd4830 --- /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 0000000..bb92a73 --- /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 0000000..c38bfa2 --- /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 0000000..0ea034d --- /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 0000000..7732a85 --- /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 0000000..c913dc5 --- /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 0000000..d6c5e61 --- /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 0000000..eadea67 --- /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 0000000..8e0620e --- /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 0000000..3396fe7 --- /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 0000000..d14e5aa --- /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 0000000..40f88aa --- /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 0000000..b2e5895 --- /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 0000000..bd519ce --- /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 0000000..31938d2 --- /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 0000000..4fb17f3 --- /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 0000000..baf3d96 --- /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 0000000..3cf6bc0 --- /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 0000000..018a115 --- /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 0000000..22b23b1 --- /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 0000000..83e49c8 --- /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 0000000..14955a9 --- /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 0000000..9d56ab0 --- /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 0000000..826910d --- /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 0000000..f38e834 --- /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 0000000..2f95c4e --- /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 0000000..4fd1554 --- /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 0000000..5d9e86c --- /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 0000000..f1a860a --- /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 0000000..6c4e62c --- /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 0000000..bd02c3a --- /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 0000000..5ff0afa --- /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 0000000..92625aa --- /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 0000000..570c451 --- /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 0000000..ff6d5fb --- /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 0000000..79ffe05 --- /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 0000000..7f5bfa5 --- /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 0000000..cafb969 --- /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 0000000..021809e --- /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 0000000..2c8f130 --- /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 0000000..708c6c9 --- /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 0000000..b66249d --- /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 0000000..193eb05 --- /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 0000000..b4f5d0c --- /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 0000000..123d707 --- /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 0000000..65b5273 --- /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 0000000..950adea --- /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 0000000..10e9a12 --- /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 0000000..c710074 --- /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 0000000..e263c30 --- /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 0000000..ded9219 --- /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 0000000..bf808e1 --- /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 0000000..bdde0f6 --- /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 0000000..e831d1d --- /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 0000000..618ceec --- /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 0000000..ef062b1 --- /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 0000000..fcf7da0 --- /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 0000000..2f0c0f0 --- /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 0000000..2a30509 --- /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 0000000..1ca4bbc --- /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 0000000..fb902f3 --- /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 0000000..3f57738 --- /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 0000000..6f5aafb --- /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 0000000..bae853b --- /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 0000000..23ccea6 --- /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 0000000..2653627 --- /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 0000000..96608c3 --- /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 0000000..b19ffa6 --- /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 0000000..6344c35 --- /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 0000000..2f8cb58 --- /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 0000000..edce2b4 --- /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 0000000..3855934 --- /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 0000000..c140dc4 --- /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 0000000..7d27016 --- /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 0000000..ddf72de --- /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 0000000..49e2047 --- /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 0000000..20da948 --- /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 0000000..dfddcd1 --- /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 0000000..f739995 --- /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 0000000..b1d4a76 --- /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 0000000..7829307 --- /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 0000000..9de5e97 --- /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 0000000..083d11e --- /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 0000000..f387cef --- /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 0000000..12c26c7 --- /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 0000000..73b23b4 --- /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 0000000..718a1dd --- /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 0000000..cbffe53 --- /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 0000000..cc95434 --- /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 0000000..fd8597f --- /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 0000000..c3f4734 --- /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 0000000..1181d60 --- /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 0000000..7bb158d --- /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 0000000..ae60ae3 --- /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 0000000..a2a40c3 --- /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 0000000..6bf509c --- /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 0000000..4fe018c --- /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":"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"} diff --git a/node_modules/rxjs/internal/types.d.ts b/node_modules/rxjs/internal/types.d.ts new file mode 100644 index 0000000..145d2d5 --- /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 0000000..11e638d --- /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 0000000..92d4483 --- /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 0000000..830b291 --- /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 0000000..121be11 --- /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 0000000..1beb7e5 --- /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 0000000..f3b499e --- /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 0000000..1824ca8 --- /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 0000000..3cdbb22 --- /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 0000000..87fc247 --- /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 0000000..02ccec2 --- /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 0000000..659e145 --- /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 0000000..b94c151 --- /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 0000000..3838aa4 --- /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 0000000..c9125ba --- /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 0000000..e42ab0d --- /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 0000000..3127694 --- /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 0000000..ff38247 --- /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 0000000..c10c91c --- /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 0000000..34c8c27 --- /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 0000000..6d0170b --- /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 0000000..aaefdf3 --- /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 0000000..6c6114a --- /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 0000000..7981377 --- /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 0000000..0757e79 --- /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 0000000..971f871 --- /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 0000000..01531e9 --- /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 0000000..d9dcd08 --- /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 0000000..e77b450 --- /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 0000000..dd3398f --- /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 0000000..5ab22b1 --- /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 0000000..2fb7fa5 --- /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 0000000..3f018e2 --- /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 0000000..1b8a3fc --- /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 0000000..dd4e60f --- /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 0000000..57e80c4 --- /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 0000000..a920d3f --- /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 0000000..e9c093c --- /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 0000000..87b20b0 --- /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 0000000..2a0fa76 --- /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 0000000..1013f97 --- /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 0000000..933e980 --- /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 0000000..1cfe00f --- /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 0000000..7c8970a --- /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 0000000..e7b060f --- /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 0000000..190c29e --- /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 0000000..8868691 --- /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 0000000..a90c244 --- /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 0000000..e34e59e --- /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 0000000..ea65a07 --- /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 0000000..0a4094e --- /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 0000000..38764c3 --- /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 0000000..afcc62f --- /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 0000000..a0eb186 --- /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 0000000..c9b173d --- /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 0000000..22fb0e5 --- /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 0000000..5ec1c26 --- /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 0000000..124e1ad --- /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 0000000..58fe8dd --- /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 0000000..acc3a6c --- /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 0000000..d370834 --- /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 0000000..c4c522a --- /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 0000000..787db5c --- /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 0000000..11f1972 --- /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 0000000..916910d --- /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 0000000..e5e836f --- /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 0000000..8acc3ab --- /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 0000000..5e05a9e --- /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 0000000..a955773 --- /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 0000000..940809c --- /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 0000000..043ca7f --- /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 0000000..91af752 --- /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 0000000..5369220 --- /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 0000000..e2518ad --- /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 0000000..f177040 --- /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 0000000..2ec1b79 --- /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 0000000..586ba4f --- /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 0000000..8e1d03c --- /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 0000000..7501631 --- /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 0000000..506861e --- /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 0000000..71fca0b --- /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 0000000..491b43a --- /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 0000000..b5ffb57 --- /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 0000000..9654d86 --- /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 0000000..ddc93fd --- /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 0000000..029c232 --- /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 0000000..4c659e2 --- /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 0000000..948a705 --- /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 0000000..9d0abf3 --- /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 0000000..732cacd --- /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 0000000..9cbc1e3 --- /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 0000000..9fd034f --- /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 0000000..8ca42bb --- /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 0000000..dae7811 --- /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 0000000..6125789 --- /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 0000000..ad8dd81 --- /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 0000000..859f416 --- /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 0000000..421ce98 --- /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 0000000..9f66d74 --- /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 0000000..6ae2897 --- /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 0000000..07fd52c --- /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 0000000..7e9793a --- /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 0000000..e241e6e --- /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 0000000..42f2191 --- /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 0000000..4f5ccde --- /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 0000000..7eb1124 --- /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 0000000..acf57b5 --- /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 0000000..50d6d87 --- /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 0000000..30da288 --- /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 0000000..b280ef6 --- /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 0000000..4012874 --- /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 0000000..ce2da26 --- /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 0000000..7b3b628 --- /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 0000000..5ba74a5 --- /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 0000000..1790306 --- /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 0000000..e68ac03 --- /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 0000000..46f11d4 --- /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 0000000..7d0eb03 --- /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 0000000..f6efca6 --- /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 0000000..44975e5 --- /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 0000000..a21b3cc --- /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 0000000..a90ea58 --- /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 0000000..04ca51d --- /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 0000000..cec9147 --- /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 0000000..e03517f --- /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 0000000..7b92c50 --- /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 0000000..6f9f0ba --- /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 0000000..309ce0c --- /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 0000000..7d46670 --- /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 0000000..68a7dce --- /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 0000000..1943818 --- /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 0000000..d263732 --- /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 0000000..c9fa4dd --- /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 0000000..e7962f5 --- /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 0000000..14eb12b --- /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 0000000..04291ab --- /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 0000000..a25de71 --- /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 0000000..77b8c5e --- /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 0000000..e0a473c --- /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 0000000..b45e61b --- /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 0000000..213645a --- /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 0000000..c4ec664 --- /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 0000000..036e800 --- /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 0000000..63805da --- /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 0000000..8441d24 --- /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 0000000..ad7086c --- /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 0000000..de2b2a5 --- /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 0000000..5eb484a --- /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 0000000..cdb4680 --- /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 0000000..28c6ea8 --- /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 0000000..dfe181f --- /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 0000000..afc8a95 --- /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 0000000..dcff25e --- /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 0000000..860fbef --- /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 0000000..643ea91 --- /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 0000000..1864fbc --- /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 0000000..de44057 --- /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 0000000..a53c68a --- /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 0000000..70245d1 --- /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 0000000..d030788 --- /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 0000000..a352afb --- /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 0000000..b35691d --- /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 0000000..ae0aac2 --- /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 0000000..2660a27 --- /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 0000000..05f774a --- /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 0000000..f500c0a --- /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 0000000..f24002a --- /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 0000000..9432594 --- /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 0000000..a353068 --- /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 0000000..be97f28 --- /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 0000000..4c560ad --- /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 0000000..6435727 --- /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 0000000..f354b93 --- /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 0000000..a9f14f3 --- /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 0000000..02b4a51 --- /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 0000000..5058bef --- /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 0000000..fc5ea45 --- /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 0000000..c24410f --- /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 0000000..fbb19bc --- /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 0000000..a94931e --- /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 0000000..aab5734 --- /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 0000000..fb1bde4 --- /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 0000000..b9438f4 --- /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 0000000..d5bfe5d --- /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 0000000..826c090 --- /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 0000000..e9420ef --- /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 0000000..d4b7033 --- /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 0000000..e6424b4 --- /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 0000000..bf27da3 --- /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 0000000..673b315 --- /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 0000000..766857a --- /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 0000000..6b7a005 --- /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 0000000..1a02f81 --- /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 0000000..4ada85e --- /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 0000000..4826a98 --- /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 0000000..e216730 --- /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 0000000..91ef18a --- /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 0000000..2e838d7 --- /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 0000000..d528bf5 --- /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 0000000..bf02ae9 --- /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 0000000..60a64ee --- /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 0000000..495c98d --- /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 0000000..cd1cc87 --- /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 0000000..1b33988 --- /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 0000000..c2fa408 --- /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 0000000..36b767b --- /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 0000000..6933d74 --- /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 0000000..d7ed9cb --- /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 0000000..02a2c46 --- /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 0000000..27530bf --- /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 0000000..3720625 --- /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 0000000..c036f46 --- /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 0000000..53dc311 --- /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 0000000..37d2b3a --- /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 0000000..d9a0f58 --- /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 0000000..f4e79c4 --- /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 0000000..97f8377 --- /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 0000000..cf2bdc8 --- /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 0000000..bad30db --- /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 0000000..0312e3e --- /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 0000000..bb8a1b0 --- /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 0000000..5417b2b --- /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 0000000..6662550 --- /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 0000000..fe42d97 --- /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 0000000..ae39447 --- /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 0000000..ee359a2 --- /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 0000000..fe33fa5 --- /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 0000000..64c2777 --- /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 0000000..b580adc --- /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 0000000..d0c6e20 --- /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 0000000..8affd77 --- /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 0000000..ad23753 --- /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 0000000..719f66f --- /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 0000000..ee7be9d --- /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 0000000..71a71a4 --- /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 0000000..2d260ed --- /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 0000000..d64bec1 --- /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 0000000..273374a --- /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 0000000..b746865 --- /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 0000000..ed258a4 --- /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 0000000..5cbace9 --- /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 0000000..39ccb55 --- /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 0000000..01c6ef4 --- /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 0000000..8d8b24c --- /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 0000000..dd4b5f6 --- /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 0000000..22eda3d --- /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 0000000..b61ca78 --- /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 0000000..7c2d953 --- /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 0000000..bd1d12e --- /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 0000000..8b46336 --- /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 0000000..5b4c7e5 --- /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 0000000..cb1ccc3 --- /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 0000000..59ea93e --- /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 0000000..836bddd --- /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 0000000..71bd4e2 --- /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 0000000..5c05cde --- /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 0000000..4272a67 --- /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 0000000..13c3366 --- /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 0000000..297046c --- /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 0000000..cd4af4a --- /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 0000000..0fbcf41 --- /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 0000000..30d4362 --- /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 0000000..9a2fb7e --- /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 0000000..b8fee0b --- /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 0000000..ac3d484 --- /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 0000000..340ae41 --- /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 0000000..4a5f8b4 --- /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 0000000..2a9d0e7 --- /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 0000000..423a870 --- /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 0000000..268d152 --- /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 0000000..286e225 --- /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 0000000..907f828 --- /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 0000000..45beb4c --- /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 0000000..f99039c --- /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 0000000..88b896f --- /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 0000000..554885c --- /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 0000000..16dcc21 --- /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 0000000..e263d78 --- /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 0000000..650a742 --- /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 0000000..ae0e349 --- /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 0000000..77268c1 --- /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 0000000..eb49020 --- /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 0000000..9883c58 --- /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 0000000..dfbf90d --- /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 0000000..7f5908c --- /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 0000000..74845b4 --- /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 0000000..4800190 --- /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 0000000..732765b --- /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 0000000..3a3ccff --- /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 0000000..d2d957f --- /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 0000000..8e48646 --- /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 0000000..f394a58 --- /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 0000000..dc48cf7 --- /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 0000000..3f532c0 --- /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 0000000..39c2412 --- /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 0000000..f9bfb59 --- /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 0000000..f72afa7 --- /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 0000000..47ead4a --- /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 0000000..febfab5 --- /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 0000000..5826513 --- /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 0000000..5719796 --- /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 0000000..1ab3ad1 --- /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 0000000..776b9c6 --- /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 0000000..7937d7a --- /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 0000000..5ab71fa --- /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 0000000..64da967 --- /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 0000000..ac3f202 --- /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 0000000..c7bedea --- /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 0000000..7567e9e --- /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 0000000..96cf01f --- /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 0000000..80fa956 --- /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 0000000..6ea83a3 --- /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 0000000..ccc3cd5 --- /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 0000000..1af3dbc --- /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 0000000..44c0185 --- /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 0000000..d9b4699 --- /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 0000000..dced2d3 --- /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 0000000..8464a9f --- /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 0000000..69fffd9 --- /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 0000000..f79e230 --- /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 0000000..a79e6ac --- /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 0000000..5e51c65 --- /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 0000000..547fcf8 --- /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 0000000..1d4370b --- /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 0000000..6f5c620 --- /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 0000000..136ea11 --- /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 0000000..df88f6c --- /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 0000000..823ded3 --- /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 0000000..e5ac4f4 --- /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 0000000..0bde8f5 --- /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 0000000..b28322a --- /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 0000000..afe0bf4 --- /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 0000000..994f496 --- /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 0000000..83f8da9 --- /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 0000000..2092fd4 --- /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 0000000..75c1c99 --- /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 0000000..b97b8ee --- /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 0000000..5c8afd9 --- /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 0000000..7e21988 --- /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 0000000..3a5bbc3 --- /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 0000000..846fb6c --- /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 0000000..2b851f7 --- /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 0000000..22d42b1 --- /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 0000000..c6e9dbd --- /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 0000000..5fb6b8d --- /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 0000000..3b3a79b --- /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 0000000..27b13bb --- /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 0000000..e4984e8 --- /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 0000000..bcdf798 --- /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 0000000..8536820 --- /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 0000000..e293593 --- /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 0000000..af7e790 --- /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 0000000..44ae6ea --- /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 0000000..b205b7c --- /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 0000000..7af3d2f --- /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 0000000..20713a3 --- /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 0000000..339cfeb --- /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 0000000..822438a --- /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 0000000..203ff36 --- /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 0000000..62db5c3 --- /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 0000000..11df701 --- /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 0000000..9068f9d --- /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 0000000..339c0f2 --- /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 0000000..ccc2f24 --- /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 0000000..9c52bd7 --- /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 0000000..6caec4d --- /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 0000000..a21b3e1 --- /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 0000000..ab766d9 --- /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 0000000..5454dfb --- /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 0000000..face44b --- /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 0000000..03d1ccd --- /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 0000000..1da869d --- /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 0000000..dd0297a --- /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 0000000..94311e3 --- /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 0000000..a69337e --- /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 0000000..86843ed --- /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 0000000..051ee8e --- /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 0000000..cdadf42 --- /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 0000000..648fac9 --- /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 0000000..4bb164a --- /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 0000000..64094ed --- /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 0000000..b9c3eef --- /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 0000000..99e70f5 --- /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 0000000..f5c6715 --- /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 0000000..03da532 --- /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 0000000..ccdc3f3 --- /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 0000000..f321f6d --- /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 0000000..2d42da8 --- /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 0000000..f2e9c4d --- /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 0000000..df2ee70 --- /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 0000000..0f25011 --- /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 0000000..0d9ac56 --- /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 0000000..cec78e6 --- /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 0000000..00af2a0 --- /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 0000000..00a3de5 --- /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 0000000..2e5a328 --- /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 0000000..ad51274 --- /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 0000000..bd36257 --- /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 0000000..4e0bb6d --- /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 0000000..57d501d --- /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 0000000..f9de722 --- /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 0000000..8609265 --- /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 0000000..e7efcd7 --- /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 0000000..abbad54 --- /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 0000000..c359d66 --- /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 0000000..039a0d2 --- /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 0000000..00b6dc4 --- /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 0000000..78f822b --- /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 0000000..1527cc9 --- /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 0000000..a989c61 --- /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 0000000..20c167c --- /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 0000000..d091762 --- /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 0000000..f980c46 --- /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 0000000..c371a3a --- /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 0000000..2503ab4 --- /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 0000000..949cc81 --- /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 0000000..78c2f57 --- /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 0000000..f8fd1be --- /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 0000000..1f004ab --- /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 0000000..83e1600 --- /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 0000000..b082666 --- /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 0000000..16a81e6 --- /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 0000000..645b413 --- /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 0000000..16822ab --- /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 0000000..f3fca31 --- /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 0000000..23aae0a --- /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 0000000..49d52cf --- /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 0000000..2f7b797 --- /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 0000000..ebe37d5 --- /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 0000000..dee5c58 --- /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 0000000..e6b1b6b --- /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 0000000..ff363fb --- /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 0000000..2db66e0 --- /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 0000000..c65339a --- /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 0000000..2bcd50d --- /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 0000000..ffb693b --- /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 0000000..5127c15 --- /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 0000000..1a025ca --- /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 0000000..cd308f2 --- /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 0000000..023f73d --- /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 0000000..1dd7d98 --- /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 0000000..44f7a52 --- /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 0000000..d7ba991 --- /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 0000000..a28014f --- /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 0000000..ae6df51 --- /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 0000000..c506071 --- /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 0000000..2e06416 --- /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 0000000..b8b857f --- /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 0000000..c627f74 --- /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 0000000..7a5491e --- /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 0000000..d515665 --- /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 0000000..5c1e4bd --- /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 0000000..cc770ca --- /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 0000000..1371230 --- /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 0000000..038bf34 --- /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 0000000..374e415 --- /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 0000000..3051a59 --- /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 0000000..47c6002 --- /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 0000000..af7569e --- /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 0000000..3cf8344 --- /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 0000000..8ab3b5a --- /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 0000000..b1b305d --- /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 0000000..c8ab403 --- /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 0000000..1285196 --- /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 0000000..83becb3 --- /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 0000000..ea76932 --- /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 0000000..7c8febb --- /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 0000000..d27a262 --- /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 0000000..c1c4a4d --- /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 0000000..918d177 --- /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 0000000..e6126f6 --- /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 0000000..50c4485 --- /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 0000000..f0b65f7 --- /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 0000000..1f24b84 --- /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 0000000..6a88266 --- /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 0000000..b46e3b3 --- /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 0000000..383ebf0 --- /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 0000000..07d5f63 --- /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 0000000..09347a2 --- /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 0000000..cec991e --- /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 0000000..8a324c2 --- /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 0000000..42e3723 --- /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 0000000..18a613d --- /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 0000000..7dcde39 --- /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 0000000..d94a634 --- /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 0000000..c5eb0b5 --- /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 0000000..7889029 --- /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 0000000..d3a1717 --- /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 0000000..9c032b9 --- /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 0000000..0b289da --- /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 0000000..0d9761e --- /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 0000000..477a990 --- /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 0000000..830890c --- /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 0000000..955b451 --- /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 0000000..31c1010 --- /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 0000000..504d7d7 --- /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 0000000..3e7d601 --- /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 0000000..1a84e51 --- /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 0000000..c942abc --- /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 0000000..b4e7b0e --- /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 0000000..4b9a445 --- /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 0000000..1ec1baf --- /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 0000000..d737910 --- /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 0000000..89540c4 --- /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 0000000..88b22fb --- /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 0000000..f4f88ab --- /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 0000000..c8c02e2 --- /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 0000000..d5fe5c3 --- /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 0000000..bd9c58c --- /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 0000000..359d96f --- /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 0000000..2cbae8f --- /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 0000000..d08843a --- /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 0000000..7967958 --- /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 0000000..cd5ce95 --- /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 0000000..5cca87e --- /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 0000000..fc40d12 --- /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 0000000..bd59ce3 --- /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 0000000..855a06e --- /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 0000000..d5f1d4b --- /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 0000000..c915fc3 --- /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 0000000..71296c3 --- /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 0000000..44e394a --- /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 0000000..78509e5 --- /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 0000000..0bc2a2b --- /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 0000000..cb94a1c --- /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 0000000..38b927b --- /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 0000000..107586c --- /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 0000000..f2d2c0b --- /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 0000000..b1772bd --- /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 0000000..95bf169 --- /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 0000000..f81cc02 --- /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 0000000..9c2effc --- /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 0000000..00ba913 --- /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 0000000..52f17f5 --- /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 0000000..7385eb0 --- /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 0000000..27308d0 --- /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 0000000..136f9fe --- /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 0000000..5f5283b --- /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 0000000..ca7eec1 --- /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 0000000..2696672 --- /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 0000000..56e0cc3 --- /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 0000000..f2a7dd4 --- /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 0000000..05fb848 --- /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 0000000..e746c05 --- /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 0000000..fb52eed --- /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 0000000..ee855d4 --- /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 0000000..77a94e8 --- /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 0000000..bd87451 --- /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 0000000..81a1dc1 --- /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 0000000..57c8ee1 --- /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 0000000..297835e --- /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 0000000..0de6115 --- /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 0000000..b9f8cae --- /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 0000000..c1a450c --- /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 0000000..d7395a3 --- /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 0000000..937f174 --- /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 0000000..b43e00d --- /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 0000000..b4bdbc3 --- /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 0000000..87392c7 --- /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 0000000..bce9e1b --- /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 0000000..6dd2b1a --- /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 0000000..52798df --- /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 0000000..1652b4b --- /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 0000000..6ab686e --- /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 0000000..c2d8b4e --- /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 0000000..5533997 --- /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 0000000..ac16ccf --- /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 0000000..1d4e2ef --- /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 0000000..3623a02 --- /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 0000000..7793ae2 --- /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 0000000..b31197a --- /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 0000000..889291a --- /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 0000000..4104e3a --- /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 0000000..25eea26 --- /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 0000000..be4b205 --- /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 0000000..ec90001 --- /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 0000000..1098d9d --- /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 0000000..5b99781 --- /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 0000000..9895fc4 --- /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 0000000..0e5b597 --- /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 0000000..37a4ad6 --- /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 0000000..4d64b1e --- /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 0000000..72a4c00 --- /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 0000000..25543c3 --- /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 0000000..007138c --- /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 0000000..7007461 --- /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 0000000..5feb7da --- /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 0000000..9f503dd --- /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 0000000..767b33c --- /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 0000000..935b8e3 --- /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 0000000..3213996 --- /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 0000000..085acfb --- /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 0000000..393865b --- /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 0000000..36c2a33 --- /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 0000000..f554f73 --- /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 0000000..261ab0f --- /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 0000000..eeabae9 --- /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 0000000..7e0b79f --- /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 0000000..5007f94 --- /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 0000000..8664e61 --- /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 0000000..4ea9351 --- /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 0000000..344f887 --- /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 0000000..4eaac47 --- /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 0000000..13f2758 --- /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 0000000..4f1d270 --- /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 0000000..be08874 --- /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 0000000..cefd4d0 --- /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 0000000..b6a775f --- /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 0000000..07d6248 --- /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 0000000..e2fae80 --- /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 0000000..7082e98 --- /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 0000000..86ab797 --- /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 0000000..4e90bf3 --- /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 0000000..bc95de8 --- /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 0000000..243d55d --- /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 0000000..fb26bc0 --- /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 0000000..a5ff308 --- /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 0000000..db045ca --- /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 0000000..f5aef40 --- /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 0000000..c24370a --- /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 0000000..0d92af1 --- /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 0000000..db7cfe3 --- /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 0000000..e909f54 --- /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 0000000..b899345 --- /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 0000000..ed62cb8 --- /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 0000000..ce3a18e --- /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 0000000..24240e3 --- /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 0000000..fb73d33 --- /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 0000000..0332391 --- /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 0000000..40494b2 --- /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 0000000..04b9e61 --- /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 0000000..59a8dec --- /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 0000000..7e3e29b --- /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 0000000..d34f33d --- /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 0000000..2c431df --- /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 0000000..6acb026 --- /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 0000000..4de1452 --- /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 0000000..18de036 --- /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 0000000..9d11aa8 --- /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 0000000..a689bf0 --- /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 0000000..eeb1107 --- /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 0000000..6306ce0 --- /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 0000000..9d8288a --- /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 0000000..c5b7eee --- /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 0000000..7e6f21c --- /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 0000000..1fc4eda --- /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 0000000..b311cc3 --- /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 0000000..b762a0c --- /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 0000000..d8fa76a --- /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 0000000..86a90f8 --- /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 0000000..cf3ad89 --- /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 0000000..4f5d5b3 --- /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 0000000..b8088a2 --- /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 0000000..9a1673a --- /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 0000000..15b9f46 --- /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 0000000..164b937 --- /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 0000000..0cff6cd --- /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 0000000..19a3637 --- /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 0000000..f0cc429 --- /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 0000000..212e77e --- /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 0000000..cf4ae30 --- /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 0000000..6a4d4f2 --- /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 0000000..0a4cd45 --- /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 0000000..0cef04c --- /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 0000000..cbb1caa --- /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 0000000..1a3d2b8 --- /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 0000000..23b8666 --- /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 0000000..a784384 --- /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 0000000..f21633b --- /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 0000000..9c32dfc --- /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 0000000..73fc972 --- /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 0000000..92a552d --- /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 0000000..98a272d --- /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 0000000..62f15d4 --- /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 0000000..b830080 --- /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 0000000..167707f --- /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 0000000..1a455c2 --- /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 0000000..71628ca --- /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 0000000..c0266e3 --- /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 0000000..cbab035 --- /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 0000000..b972107 --- /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 0000000..52c6f58 --- /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 0000000..86f796a --- /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 0000000..bf03677 --- /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 0000000..590bf88 --- /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 0000000..a2cd5ba --- /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 0000000..730e49e --- /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 0000000..5869204 --- /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 0000000..23e12bb --- /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 0000000..047e412 --- /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 0000000..fd1d1af --- /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 0000000..2defbb2 --- /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 0000000..48e47eb --- /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 0000000..c8464bf --- /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 0000000..caebab4 --- /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 0000000..c47a012 --- /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 0000000..7e8cb1f --- /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 0000000..38d90af --- /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 0000000..a874325 --- /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 0000000..72b4d9e --- /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 0000000..9433d0c --- /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 0000000..a0c6b03 --- /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 0000000..e050f1e --- /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 0000000..d0e3267 --- /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 0000000..de58757 --- /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 0000000..044da47 --- /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 0000000..e4e8ef4 --- /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 0000000..4600fdb --- /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 0000000..7583aee --- /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 0000000..4a41728 --- /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 0000000..d95ebb9 --- /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 0000000..b5c5b38 --- /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 0000000..574fd44 --- /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 0000000..7cb38bd --- /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 0000000..af5c7c1 --- /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 0000000..a711dec --- /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 0000000..b484a44 --- /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 0000000..67b6cb7 --- /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 0000000..13f37f0 --- /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 0000000..dae529f --- /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 0000000..ef73adc --- /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 0000000..3bde4ec --- /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 0000000..00177d7 --- /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 0000000..3706e3f --- /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 0000000..f9ae8e9 --- /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 0000000..8343640 --- /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 0000000..9470284 --- /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 0000000..50944ec --- /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 0000000..81a2af0 --- /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 0000000..0f6d414 --- /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 0000000..6750c7e --- /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 0000000..8586b76 --- /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 0000000..0b19815 --- /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 0000000..d112fc4 --- /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 0000000..8ddaa18 --- /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 0000000..eefac38 --- /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 0000000..f83f732 --- /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 0000000..c2c1c47 --- /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 0000000..fcd346e --- /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 0000000..3c82843 --- /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 0000000..aebe750 --- /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 0000000..bcaac0b --- /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 0000000..2ac910a --- /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 0000000..55abcab --- /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 0000000..a9a2a49 --- /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 0000000..a21951d --- /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 0000000..7af4aea --- /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 0000000..40530d7 --- /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 0000000..53cbc37 --- /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 0000000..cc52d3a --- /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 0000000..3bca777 --- /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 0000000..0fcb439 --- /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 0000000..e9c94d6 --- /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 0000000..f3fab1a --- /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 0000000..ff87a2d --- /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 0000000..f280e18 --- /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 0000000..50c7316 --- /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 0000000..95047c7 --- /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 0000000..dae6776 --- /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 0000000..4e14245 --- /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 0000000..abb05c3 --- /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 0000000..83c2fab --- /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 0000000..c1424d3 --- /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 0000000..3c38baa --- /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 0000000..7dc9b93 --- /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 0000000..03f81ae --- /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 0000000..1f36353 --- /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 0000000..614eee6 --- /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 0000000..0571937 --- /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 0000000..df052ac --- /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 0000000..25b5348 --- /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 0000000..261d64f --- /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 0000000..b8d2fee --- /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 0000000..32e814e --- /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 0000000..e714e35 --- /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 0000000..00f9bdf --- /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 0000000..1f2912e --- /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 0000000..8d736e4 --- /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 0000000..0e05a4b --- /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 0000000..0160e20 --- /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 0000000..5d09870 --- /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 0000000..5041a51 --- /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 0000000..8686c55 --- /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 0000000..986c3d6 --- /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 0000000..acaee73 --- /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 0000000..68d2483 --- /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 0000000..322d5c0 --- /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 0000000..0a6e3cb --- /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 0000000..1a7bc9c --- /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 0000000..0eb7640 --- /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 0000000..fd113fd --- /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 0000000..1884717 --- /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 0000000..31089f1 --- /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 0000000..d489c81 --- /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 0000000..4cd6e79 --- /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 0000000..e21e1fa --- /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 0000000..096d4b4 --- /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 0000000..8558c1a --- /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 0000000..177faad --- /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 0000000..002baeb --- /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 0000000..36aedaf --- /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 0000000..c205efa --- /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 0000000..15d1c49 --- /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 0000000..1cc0d95 --- /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 0000000..3681a82 --- /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 0000000..4193fe2 --- /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 0000000..8c3a835 --- /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 0000000..7a5b403 --- /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 0000000..34fb4d6 --- /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 0000000..ef5af62 --- /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 0000000..af6476f --- /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 0000000..901bbba --- /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 0000000..91f8d0f --- /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 0000000..df03b11 --- /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 0000000..eb1c233 --- /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 0000000..76672d6 --- /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 0000000..347c48e --- /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 0000000..37a8c20 --- /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 0000000..5545f36 --- /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 0000000..b2c25f7 --- /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 0000000..840c2c7 --- /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 0000000..0b32ced --- /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 0000000..6cf7fe0 --- /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 0000000..fbefdfe --- /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 0000000..73735d7 --- /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 0000000..45d2c8b --- /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 0000000..1176ad7 --- /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 0000000..8877ecd --- /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 0000000..f577342 --- /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 0000000..35e85f2 --- /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 0000000..4f0c1c7 --- /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 0000000..3d8dd40 --- /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 0000000..828abef --- /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 0000000..e22bd65 --- /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 0000000..e1866a7 --- /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 0000000..c3edb4e --- /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 0000000..57dd0bd --- /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 0000000..bcb90c4 --- /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 0000000..6190e75 --- /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 0000000..03e5305 --- /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 0000000..fbbdbcc --- /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 0000000..f887a2f --- /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 0000000..6d22ee1 --- /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 0000000..719fa20 --- /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 0000000..8fbd3c8 --- /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 0000000..f8678a7 --- /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 0000000..b72849c --- /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 0000000..6bb64cd --- /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 0000000..cbbedaf --- /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 0000000..97ff196 --- /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 0000000..6af3911 --- /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 0000000..a26261c --- /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 0000000..dbc2e59 --- /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 0000000..c4a43f1 --- /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 0000000..f16b42e --- /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 0000000..d7840c6 --- /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 0000000..2cfcad8 --- /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 0000000..44b98a6 --- /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 0000000..e0d8e13 --- /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 0000000..6580e38 --- /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 0000000..503edd0 --- /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 0000000..1b99816 --- /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 0000000..7f678db --- /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 0000000..c7ddd80 --- /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 0000000..fde0f54 --- /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 0000000..2642141 --- /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 0000000..a9a47f1 --- /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 0000000..826df0d --- /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 0000000..b774707 --- /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 0000000..fce57b9 --- /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 0000000..413156a --- /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 0000000..2cbf76f --- /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 0000000..3befdf0 --- /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 0000000..4da1799 --- /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 0000000..b116f17 --- /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 0000000..d055c84 --- /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 0000000..8724be9 --- /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 0000000..782d4dc --- /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 0000000..f786334 --- /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 0000000..f05c5ae --- /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 0000000..15f7450 --- /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 0000000..f39e3de --- /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 0000000..1175b2e --- /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 0000000..c75d56f --- /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 0000000..eabdfa4 --- /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 0000000..24f8f22 --- /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 0000000..3e69835 --- /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 0000000..2a5ebe6 --- /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 0000000..c6e0168 --- /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 0000000..201abfb --- /dev/null +++ b/node_modules/rxjs/package.json @@ -0,0 +1,210 @@ +{ + "_from": "rxjs@^6.5.5", + "_id": "rxjs@6.6.3", + "_inBundle": false, + "_integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "_location": "/rxjs", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "rxjs@^6.5.5", + "name": "rxjs", + "escapedName": "rxjs", + "rawSpec": "^6.5.5", + "saveSpec": null, + "fetchSpec": "^6.5.5" + }, + "_requiredBy": [ + "/wait-on" + ], + "_resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "_shasum": "8ca84635c4daa900c0d3967a6ee7ac60271ee552", + "_spec": "rxjs@^6.5.5", + "_where": "/home/wyrihaximus/Projects/WyriHaximus/github-action-helm3/node_modules/wait-on", + "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 0000000..f293624 --- /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 0000000..c010af9 --- /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 0000000..9e0de76 --- /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 0000000..934d4b5 --- /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 0000000..287a6f8 --- /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 0000000..115c33e --- /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 0000000..ed5a613 --- /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 0000000..a60a16c --- /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 0000000..35f600b --- /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 0000000..daea584 --- /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 0000000..3d8dcb9 --- /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 0000000..2278582 --- /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 0000000..2c4d977 --- /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 0000000..f8b4f44 --- /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 0000000..79e3b4a --- /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 0000000..031ce38 --- /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 0000000..5cf5d67 --- /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 0000000..5d9956d --- /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 0000000..cc1e68d --- /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 0000000..867ce2f --- /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 0000000..fb9a9f9 --- /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 0000000..9060ae7 --- /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 0000000..f92dafd --- /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 0000000..b66aea9 --- /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 0000000..d75682b --- /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 0000000..e04c752 --- /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 0000000..c21eb1f --- /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 0000000..7448233 --- /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 0000000..4f481ce --- /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 0000000..15356d5 --- /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 0000000..028cf4c --- /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 0000000..7926a09 --- /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 0000000..049f9a7 --- /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 0000000..7163d7a --- /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 0000000..b392cb2 --- /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 0000000..b4e2966 --- /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 0000000..2b32efe --- /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 0000000..bc5d3f3 --- /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 0000000..d261ad7 --- /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 0000000..2a581e2 --- /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 0000000..06572d8 --- /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 0000000..0d6e05b --- /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 0000000..c7241f8 --- /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 0000000..c262242 --- /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 0000000..3203a9b --- /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 0000000..5767d74 --- /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 0000000..6cd2b31 --- /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 0000000..7a111a5 --- /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 0000000..4c464d0 --- /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 0000000..c0720f6 --- /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 0000000..80a4d91 --- /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 0000000..3af25b6 --- /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 0000000..9b45c4e --- /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 0000000..2ae274e --- /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 0000000..7405653 --- /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 0000000..60e2f9b --- /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 0000000..c7ac49a --- /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 0000000..5c72041 --- /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 0000000..a3eb5a4 --- /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 0000000..41f68da --- /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 0000000..b501cae --- /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 0000000..96237e5 --- /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 0000000..abd78ab --- /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 0000000..2dbdf86 --- /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 0000000..4ad636f --- /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 0000000..316a29e --- /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 0000000..0cf4be8 --- /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 0000000..88333e7 --- /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 0000000..c743a6b --- /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 0000000..cf9157f --- /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 0000000..dadc722 --- /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 0000000..9a843a6 --- /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 0000000..85c6832 --- /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 0000000..e5ff5db --- /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 0000000..8ffedf9 --- /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 0000000..d8e0070 --- /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 0000000..96d2017 --- /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 0000000..a50cebb --- /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 0000000..18f368b --- /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 0000000..330f8f9 --- /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 0000000..8273e9e --- /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 0000000..f556b82 --- /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 0000000..9eee7cd --- /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 0000000..8fe8f29 --- /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 0000000..789d3c1 --- /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 0000000..d0cae89 --- /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 0000000..6e231be --- /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 0000000..035ea49 --- /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 0000000..1cfe74a --- /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 0000000..7db9d99 --- /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 0000000..2255ba4 --- /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 0000000..8d98469 --- /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 0000000..b12264f --- /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 0000000..932d1f4 --- /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 0000000..28b04ba --- /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 0000000..b84aaa9 --- /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 0000000..0b222df --- /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 0000000..5b92015 --- /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 0000000..e9f2a7f --- /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 0000000..a49f787 --- /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 0000000..e773199 --- /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 0000000..c66f7ae --- /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 0000000..dfa5c46 --- /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 0000000..06cdc4f --- /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 0000000..d8ec3cc --- /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 0000000..0d8e15f --- /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 0000000..17c5fcc --- /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 0000000..5fa91d5 --- /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 0000000..03b0670 --- /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 0000000..4ade085 --- /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 0000000..0d2aa97 --- /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 0000000..2930fd3 --- /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 0000000..7b8c869 --- /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 0000000..0af0f3b --- /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 0000000..b7198cc --- /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 0000000..3bc5e01 --- /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 0000000..243d07c --- /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 0000000..06bc922 --- /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 0000000..b113466 --- /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 0000000..c8db530 --- /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 0000000..4290613 --- /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 0000000..ca5471a --- /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 0000000..fb9316b --- /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 0000000..c455337 --- /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 0000000..441255f --- /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 0000000..153d8b0 --- /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 0000000..baf8162 --- /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 0000000..f47a31d --- /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 0000000..6db65af --- /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 0000000..7f31ff4 --- /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 0000000..d35b3cd --- /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 0000000..1456f1e --- /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 0000000..0c432c9 --- /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 0000000..21ea6b2 --- /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 0000000..496218b --- /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 0000000..9c9e670 --- /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 0000000..a1b5d6d --- /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 0000000..d2d3f48 --- /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 0000000..b1dfdfa --- /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 0000000..320b844 --- /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 0000000..08c3bcb --- /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 0000000..13d0816 --- /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 0000000..78c8e55 --- /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 0000000..06ff174 --- /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 0000000..825457b --- /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 0000000..c683297 --- /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 0000000..198a616 --- /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 0000000..2a69ffd --- /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 0000000..cd4ec44 --- /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 0000000..16402c8 --- /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 0000000..a0f1a4f --- /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 0000000..cc7b16e --- /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 0000000..450c41f --- /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 0000000..da7eccf --- /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 0000000..1d82ec6 --- /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 0000000..9ed25df --- /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 0000000..f5d8564 --- /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 0000000..9f71574 --- /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 0000000..414202a --- /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 0000000..cf8877f --- /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 0000000..73cb0cc --- /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 0000000..898cd05 --- /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 0000000..e6ff01d --- /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 0000000..dff5519 --- /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 0000000..9e8c94d --- /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 0000000..5d5821d --- /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 0000000..c7b0058 --- /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 0000000..5ff05a6 --- /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 0000000..218e8d2 --- /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 0000000..20de21c --- /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 0000000..048e9a3 --- /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 0000000..f65f70c --- /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 0000000..c677428 --- /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 0000000..3ae9243 --- /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 0000000..93b65e6 --- /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 0000000..b051321 --- /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 0000000..7a91bdd --- /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 0000000..ee6ef89 --- /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 0000000..e41e41b --- /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 0000000..d5b4734 --- /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 0000000..99af066 --- /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 0000000..4e65584 --- /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 0000000..0c97812 --- /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 0000000..bb38008 --- /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 0000000..53311c5 --- /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 0000000..4e7ffbf --- /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 0000000..d66e3b1 --- /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 0000000..b48801d --- /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 0000000..605961a --- /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 0000000..ac5e6ea --- /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 0000000..5949742 --- /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 0000000..df6c7aa --- /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 0000000..d1f3f91 --- /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 0000000..6fe7e81 --- /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 0000000..0700382 --- /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 0000000..d0885c1 --- /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 0000000..5ff824b --- /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 0000000..e115607 --- /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 0000000..179afe6 --- /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 0000000..400e54f --- /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 0000000..697e928 --- /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 0000000..b5953be --- /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 0000000..015f56c --- /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 0000000..f83b8d4 --- /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 0000000..e7ffd2b --- /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 0000000..6a297b4 --- /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 0000000..28ebef6 --- /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 0000000..c160c18 --- /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 0000000..6618739 --- /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 0000000..fc9d3f9 --- /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 0000000..789a285 --- /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 0000000..280ea4e --- /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 0000000..752d4a2 --- /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 0000000..9f0900e --- /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 0000000..85bd81c --- /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 0000000..637172f --- /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 0000000..06b587c --- /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 0000000..316d378 --- /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 0000000..4beb397 --- /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 0000000..a061060 --- /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 0000000..568d7a8 --- /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 0000000..1f03caa --- /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 0000000..9418ff9 --- /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 0000000..50facdc --- /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 0000000..d3bb274 --- /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 0000000..ea01b6a --- /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 0000000..6edc64b --- /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 0000000..19c5c89 --- /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 0000000..3ea0169 --- /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 0000000..af36ed7 --- /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 0000000..f696000 --- /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 0000000..ad984f6 --- /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 0000000..aee6466 --- /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 0000000..a6716bb --- /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 0000000..64b0ba0 --- /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 0000000..3f52fc6 --- /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 0000000..1c33a9a --- /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 0000000..78fad34 --- /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 0000000..8244d49 --- /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 0000000..6d6123e --- /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 0000000..0f10f18 --- /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 0000000..33cc448 --- /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 0000000..ba1dcb1 --- /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 0000000..7a9f9be --- /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 0000000..6eef0b2 --- /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 0000000..b649fc5 --- /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 0000000..5cee983 --- /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 0000000..46aa651 --- /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 0000000..5e2c9a6 --- /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 0000000..54c5002 --- /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 0000000..9a50669 --- /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 0000000..2047a78 --- /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 0000000..953aacc --- /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 0000000..d19d613 --- /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 0000000..31cd7cc --- /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 0000000..bdb62d4 --- /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 0000000..80ad111 --- /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 0000000..3f6343f --- /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 0000000..e153e77 --- /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 0000000..7321559 --- /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 0000000..37a0467 --- /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 0000000..23626c5 --- /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 0000000..f969ed6 --- /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 0000000..a072604 --- /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 0000000..deff345 --- /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 0000000..d135aa6 --- /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 0000000..cb628cf --- /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 0000000..6659290 --- /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 0000000..d885846 --- /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 0000000..6f7e62f --- /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 0000000..c734852 --- /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 0000000..c7c0e2c --- /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 0000000..97d28d5 --- /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 0000000..8a5bd66 --- /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 0000000..104ed9f --- /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 0000000..8c2eb26 --- /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 0000000..c2aef15 --- /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 0000000..543f0d7 --- /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 0000000..e4596f3 --- /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 0000000..792b315 --- /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 0000000..e431657 --- /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 0000000..a64b52a --- /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 0000000..75b51d3 --- /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 0000000..6039fdb --- /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 0000000..227c366 --- /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 0000000..7bde309 --- /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 0000000..744ec4b --- /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 0000000..a6ce566 --- /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 0000000..3be9fed --- /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 0000000..1a26baf --- /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 0000000..0ff1227 --- /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 0000000..a1eb511 --- /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 0000000..a614c49 --- /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 0000000..f055968 --- /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 0000000..e8976b3 --- /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 0000000..e23e147 --- /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 0000000..b5b7f2a --- /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 0000000..60b6087 --- /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 0000000..66e2531 --- /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 0000000..5647f13 --- /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 0000000..81ce063 --- /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 0000000..3c5a4c1 --- /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 0000000..1334c4f --- /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 0000000..cbedac4 --- /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 0000000..dc71e44 --- /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 0000000..b43205c --- /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 0000000..5d215f6 --- /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 0000000..898dc9a --- /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 0000000..473169b --- /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 0000000..57087a0 --- /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 0000000..380e72e --- /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 0000000..baed778 --- /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 0000000..7f39c4e --- /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 0000000..02e77ce --- /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 0000000..b049e73 --- /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 0000000..9578851 --- /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 0000000..d4061c8 --- /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 0000000..40d0560 --- /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 0000000..48390a3 --- /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 0000000..cccfd35 --- /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 0000000..29c8770 --- /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 0000000..c2fc218 --- /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 0000000..67e0b16 --- /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 0000000..007b194 --- /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 0000000..b02ffc9 --- /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 0000000..163ae43 --- /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 0000000..1b56860 --- /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 0000000..dc90438 --- /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 0000000..9e970c0 --- /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 0000000..ec1bfaf --- /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 0000000..ec819f7 --- /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 0000000..6cf91bc --- /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 0000000..e9ea64f --- /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 0000000..c550429 --- /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 0000000..1fe1622 --- /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 0000000..659aa58 --- /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 0000000..05f128f --- /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 0000000..aad77ea --- /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 0000000..b5a8b51 --- /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 0000000..e9dab3d --- /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 0000000..7017ea5 --- /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 0000000..a3f6205 --- /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 0000000..bbd721d --- /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 0000000..e81614b --- /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 0000000..0af26ea --- /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 0000000..8e9871a --- /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 0000000..a321d71 --- /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 0000000..3a558e3 --- /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 0000000..29f620e --- /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 0000000..34dcb60 --- /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 0000000..03858bf --- /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 0000000..1724137 --- /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 0000000..a95c71c --- /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 0000000..7c7dc9e --- /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 0000000..e532dc8 --- /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 0000000..e81c574 --- /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 0000000..b9bd72d --- /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 0000000..6eb1d07 --- /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 0000000..ba29661 --- /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 0000000..45d2066 --- /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 0000000..fd0ae50 --- /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 0000000..02f1a0d --- /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 0000000..7c1ed24 --- /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 0000000..deed48e --- /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 0000000..63e2c7f --- /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 0000000..6d0082a --- /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 0000000..6589842 --- /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 0000000..092f8a2 --- /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 0000000..6f634d4 --- /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 0000000..b18edf0 --- /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 0000000..287e887 --- /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 0000000..fbd8fc4 --- /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 0000000..fc8fd07 --- /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 0000000..7983f47 --- /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 0000000..536a52e --- /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 0000000..f3df524 --- /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 0000000..20ee36d --- /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 0000000..594f195 --- /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 0000000..fc857f2 --- /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 0000000..e5e6952 --- /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 0000000..c207dd9 --- /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 0000000..7ab51e5 --- /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 0000000..c872f6a --- /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 0000000..0ca5294 --- /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 0000000..a62f24c --- /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 0000000..b53c566 --- /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 0000000..c64c850 --- /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 0000000..31368ce --- /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 0000000..e03d140 --- /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 0000000..1745421 --- /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 0000000..30da288 --- /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 0000000..ce2da26 --- /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 0000000..1790306 --- /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 0000000..7d0eb03 --- /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 0000000..a21b3cc --- /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 0000000..cec9147 --- /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 0000000..6f9f0ba --- /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 0000000..68a7dce --- /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 0000000..c9fa4dd --- /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 0000000..04291ab --- /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 0000000..e0a473c --- /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 0000000..c4ec664 --- /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 0000000..8441d24 --- /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 0000000..5eb484a --- /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 0000000..dfe181f --- /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 0000000..860fbef --- /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 0000000..de44057 --- /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 0000000..d030788 --- /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 0000000..ae0aac2 --- /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 0000000..f500c0a --- /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 0000000..a353068 --- /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 0000000..6435727 --- /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 0000000..02b4a51 --- /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 0000000..c24410f --- /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 0000000..aab5734 --- /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 0000000..d5bfe5d --- /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 0000000..d4b7033 --- /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 0000000..673b315 --- /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 0000000..1a02f81 --- /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 0000000..5325060 --- /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 0000000..fb01a6b --- /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 0000000..fd13b94 --- /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 0000000..9656f0f --- /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 0000000..d7ed9cb --- /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 0000000..3720625 --- /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 0000000..37d2b3a --- /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 0000000..97f8377 --- /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 0000000..0312e3e --- /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 0000000..6662550 --- /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 0000000..ee359a2 --- /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 0000000..b580adc --- /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 0000000..ad23753 --- /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 0000000..71a71a4 --- /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 0000000..273374a --- /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 0000000..5cbace9 --- /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 0000000..8d8b24c --- /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 0000000..b61ca78 --- /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 0000000..8b46336 --- /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 0000000..59ea93e --- /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 0000000..5c05cde --- /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 0000000..297046c --- /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 0000000..30d4362 --- /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 0000000..ac3d484 --- /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 0000000..2a9d0e7 --- /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 0000000..286e225 --- /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 0000000..f99039c --- /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 0000000..16dcc21 --- /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 0000000..ae0e349 --- /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 0000000..9883c58 --- /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 0000000..74845b4 --- /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 0000000..3a3ccff --- /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 0000000..f394a58 --- /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 0000000..39c2412 --- /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 0000000..47ead4a --- /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 0000000..5719796 --- /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 0000000..7937d7a --- /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 0000000..ac3f202 --- /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 0000000..96cf01f --- /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 0000000..ccc3cd5 --- /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 0000000..d9b4699 --- /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 0000000..69fffd9 --- /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 0000000..5e51c65 --- /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 0000000..6f5c620 --- /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 0000000..823ded3 --- /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 0000000..b28322a --- /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 0000000..83f8da9 --- /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 0000000..b97b8ee --- /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 0000000..3a5bbc3 --- /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 0000000..22d42b1 --- /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 0000000..3b3a79b --- /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 0000000..bcdf798 --- /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 0000000..af7e790 --- /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 0000000..7af3d2f --- /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 0000000..822438a --- /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 0000000..11df701 --- /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 0000000..ccc2f24 --- /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 0000000..a21b3e1 --- /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 0000000..face44b --- /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 0000000..dd0297a --- /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 0000000..86843ed --- /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 0000000..648fac9 --- /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 0000000..b9c3eef --- /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 0000000..03da532 --- /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 0000000..2d42da8 --- /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 0000000..0f25011 --- /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 0000000..00af2a0 --- /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 0000000..ad51274 --- /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 0000000..57d501d --- /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 0000000..e7efcd7 --- /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 0000000..039a0d2 --- /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 0000000..1527cc9 --- /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 0000000..d091762 --- /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 0000000..2503ab4 --- /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 0000000..f8fd1be --- /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 0000000..b082666 --- /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 0000000..16822ab --- /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 0000000..49d52cf --- /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 0000000..dee5c58 --- /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 0000000..2db66e0 --- /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 0000000..ffb693b --- /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 0000000..cd308f2 --- /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 0000000..44f7a52 --- /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 0000000..ae6df51 --- /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 0000000..b8b857f --- /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 0000000..d515665 --- /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 0000000..1371230 --- /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 0000000..3051a59 --- /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 0000000..3cf8344 --- /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 0000000..c8ab403 --- /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 0000000..ea76932 --- /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 0000000..c1c4a4d --- /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 0000000..50c4485 --- /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 0000000..6a88266 --- /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 0000000..07d5f63 --- /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 0000000..8a324c2 --- /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 0000000..7dcde39 --- /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 0000000..7889029 --- /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 0000000..0b289da --- /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 0000000..830890c --- /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 0000000..504d7d7 --- /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 0000000..c942abc --- /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 0000000..1ec1baf --- /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 0000000..88b22fb --- /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 0000000..d5fe5c3 --- /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 0000000..2cbae8f --- /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 0000000..cd5ce95 --- /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 0000000..bd59ce3 --- /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 0000000..c915fc3 --- /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 0000000..78509e5 --- /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 0000000..38b927b --- /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 0000000..b1772bd --- /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 0000000..9c2effc --- /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 0000000..7385eb0 --- /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 0000000..5f5283b --- /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 0000000..56e0cc3 --- /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 0000000..e746c05 --- /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 0000000..77a94e8 --- /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 0000000..57c8ee1 --- /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 0000000..b9f8cae --- /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 0000000..937f174 --- /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 0000000..87392c7 --- /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 0000000..52798df --- /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 0000000..c2d8b4e --- /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 0000000..1d4e2ef --- /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 0000000..b31197a --- /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 0000000..25eea26 --- /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 0000000..1098d9d --- /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 0000000..0e5b597 --- /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 0000000..72a4c00 --- /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 0000000..7007461 --- /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 0000000..767b33c --- /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 0000000..085acfb --- /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 0000000..f554f73 --- /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 0000000..7e0b79f --- /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 0000000..4ea9351 --- /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 0000000..13f2758 --- /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 0000000..cefd4d0 --- /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 0000000..d2b7050 --- /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 0000000..4e90bf3 --- /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 0000000..fb26bc0 --- /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 0000000..f5aef40 --- /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 0000000..db7cfe3 --- /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 0000000..ed62cb8 --- /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 0000000..fb73d33 --- /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 0000000..04b9e61 --- /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 0000000..d34f33d --- /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 0000000..4de1452 --- /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 0000000..a689bf0 --- /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 0000000..9d8288a --- /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 0000000..1fc4eda --- /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 0000000..d8fa76a --- /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 0000000..4f5d5b3 --- /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 0000000..15b9f46 --- /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 0000000..19a3637 --- /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 0000000..cf4ae30 --- /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 0000000..0cef04c --- /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 0000000..23b8666 --- /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 0000000..9c32dfc --- /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 0000000..98a272d --- /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 0000000..167707f --- /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 0000000..c0266e3 --- /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 0000000..52c6f58 --- /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 0000000..590bf88 --- /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 0000000..276cb8e --- /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 0000000..fd1d1af --- /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 0000000..c8464bf --- /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 0000000..7e8cb1f --- /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 0000000..72b4d9e --- /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 0000000..e050f1e --- /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 0000000..044da47 --- /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 0000000..7d9f674 --- /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 0000000..b5c5b38 --- /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 0000000..af5c7c1 --- /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 0000000..67b6cb7 --- /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 0000000..ef73adc --- /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 0000000..3706e3f --- /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 0000000..9470284 --- /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 0000000..0f6d414 --- /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 0000000..0b19815 --- /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 0000000..eefac38 --- /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 0000000..f83f732 --- /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 0000000..3c82843 --- /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 0000000..2ac910a --- /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 0000000..a21951d --- /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 0000000..53cbc37 --- /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 0000000..0fcb439 --- /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 0000000..ff87a2d --- /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 0000000..95047c7 --- /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 0000000..abb05c3 --- /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 0000000..3c38baa --- /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 0000000..1f36353 --- /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 0000000..df052ac --- /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 0000000..b8d2fee --- /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 0000000..00f9bdf --- /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 0000000..0e05a4b --- /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 0000000..5041a51 --- /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 0000000..acaee73 --- /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 0000000..0a6e3cb --- /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 0000000..fd113fd --- /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 0000000..d489c81 --- /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 0000000..096d4b4 --- /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 0000000..002baeb --- /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 0000000..15d1c49 --- /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 0000000..4193fe2 --- /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 0000000..34fb4d6 --- /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 0000000..901bbba --- /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 0000000..eb1c233 --- /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 0000000..37a8c20 --- /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 0000000..840c2c7 --- /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 0000000..fbefdfe --- /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 0000000..1176ad7 --- /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 0000000..35e85f2 --- /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 0000000..828abef --- /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 0000000..c3edb4e --- /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 0000000..6190e75 --- /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 0000000..f887a2f --- /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 0000000..8fbd3c8 --- /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 0000000..6bb64cd --- /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 0000000..6af3911 --- /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 0000000..c4a43f1 --- /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 0000000..2cfcad8 --- /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 0000000..6580e38 --- /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 0000000..7f678db --- /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 0000000..2642141 --- /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 0000000..b774707 --- /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 0000000..2cbf76f --- /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 0000000..b116f17 --- /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 0000000..782d4dc --- /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 0000000..15f7450 --- /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 0000000..c75d56f --- /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 0000000..3e69835 --- /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 0000000..f293624 --- /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 0000000..934d4b5 --- /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 0000000..ed5a613 --- /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 0000000..daea584 --- /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 0000000..7090360 --- /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 0000000..c5fc191 --- /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 0000000..cf3866a --- /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 0000000..4c23a72 --- /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 0000000..1a11a9f --- /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 0000000..14e7621 --- /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 0000000..48e4712 --- /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 0000000..8d25892 --- /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 0000000..2bfaf13 --- /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 0000000..3ae25a9 --- /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 0000000..31aae0b --- /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 0000000..fbf4c1c --- /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 0000000..b5ef81c --- /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 0000000..3dad2b9 --- /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 0000000..74d0de4 --- /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 0000000..685e462 --- /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 0000000..5ca2e21 --- /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 0000000..a8b03d2 --- /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 0000000..c5ebb01 --- /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 0000000..7b4a54a --- /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 0000000..e7ffaae --- /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 0000000..eeefcc2 --- /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 0000000..4b57d81 --- /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 0000000..cdf34ca --- /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 0000000..1494a4b --- /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 0000000..fd1a1f2 --- /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 0000000..0fe22e1 --- /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 0000000..3831576 --- /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 0000000..da6342a --- /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 0000000..25b6c79 --- /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 0000000..471f192 --- /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 0000000..9220f62 --- /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 0000000..6edb1ef --- /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 0000000..88495b8 --- /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 0000000..4540e11 --- /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 0000000..2ab44cc --- /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 0000000..61e1c7f --- /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 0000000..57c45c7 --- /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 0000000..833d950 --- /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 0000000..34020bd --- /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 0000000..7090360 --- /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 0000000..e843ac9 --- /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 0000000..0ed8d47 --- /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 0000000..c5fc191 --- /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 0000000..1cccc45 --- /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 0000000..03c9bd7 --- /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 0000000..cf3866a --- /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 0000000..fe2c8fb --- /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 0000000..a044a41 --- /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 0000000..4c23a72 --- /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 0000000..755148d --- /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 0000000..910637e --- /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 0000000..1a11a9f --- /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 0000000..48e4712 --- /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 0000000..493a895 --- /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 0000000..fc8bea3 --- /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 0000000..8d25892 --- /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 0000000..781eaac --- /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 0000000..43f933f --- /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 0000000..2bfaf13 --- /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 0000000..763687f --- /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 0000000..58b1722 --- /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 0000000..3ae25a9 --- /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 0000000..3f694db --- /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 0000000..65e5099 --- /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 0000000..31aae0b --- /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 0000000..11ddb2d --- /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 0000000..6fcb847 --- /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 0000000..fbf4c1c --- /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 0000000..53d3e1d --- /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 0000000..58684c5 --- /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 0000000..b5ef81c --- /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 0000000..96dd781 --- /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 0000000..31bdb17 --- /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 0000000..3dad2b9 --- /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 0000000..01dec18 --- /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 0000000..1806438 --- /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 0000000..74d0de4 --- /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 0000000..670bc65 --- /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 0000000..f4eb9bd --- /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 0000000..685e462 --- /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 0000000..f021096 --- /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 0000000..e437626 --- /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 0000000..5ca2e21 --- /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 0000000..123665b --- /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 0000000..4b49835 --- /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 0000000..a8b03d2 --- /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 0000000..83f5ecf --- /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 0000000..541be63 --- /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 0000000..c5ebb01 --- /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 0000000..8ab33c3 --- /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 0000000..668a2c2 --- /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 0000000..7b4a54a --- /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 0000000..0f720e9 --- /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 0000000..1662a61 --- /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 0000000..e7ffaae --- /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 0000000..59afc85 --- /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 0000000..a7c5645 --- /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 0000000..eeefcc2 --- /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 0000000..ada8604 --- /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 0000000..4156a54 --- /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 0000000..4b57d81 --- /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 0000000..0a0d27f --- /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 0000000..957d301 --- /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 0000000..cdf34ca --- /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 0000000..82aaee1 --- /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 0000000..0f49141 --- /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 0000000..1494a4b --- /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 0000000..9c20b95 --- /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 0000000..0bf0d89 --- /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 0000000..fd1a1f2 --- /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 0000000..addd047 --- /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 0000000..2b8dfb0 --- /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 0000000..0fe22e1 --- /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 0000000..c8c32ae --- /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 0000000..55d6e35 --- /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 0000000..3831576 --- /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 0000000..5ab75a3 --- /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 0000000..0b543b5 --- /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 0000000..da6342a --- /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 0000000..aab054c --- /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 0000000..6808847 --- /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 0000000..25b6c79 --- /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 0000000..03e889e --- /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 0000000..fe0aa14 --- /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 0000000..471f192 --- /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 0000000..f206984 --- /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 0000000..f916ff9 --- /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 0000000..9220f62 --- /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 0000000..a64fea5 --- /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 0000000..c0715f3 --- /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 0000000..6edb1ef --- /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 0000000..1c47e68 --- /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 0000000..ed148b7 --- /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 0000000..88495b8 --- /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 0000000..c25a8d5 --- /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 0000000..c7419fd --- /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 0000000..4540e11 --- /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 0000000..15c6aa3 --- /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 0000000..cf2f9cc --- /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 0000000..2ab44cc --- /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 0000000..0ce16c8 --- /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 0000000..dad2ba6 --- /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 0000000..61e1c7f --- /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 0000000..be519c1 --- /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 0000000..616740e --- /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 0000000..57c45c7 --- /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 0000000..58e4f2b --- /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 0000000..34f3abf --- /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 0000000..833d950 --- /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 0000000..475f11b --- /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 0000000..be7b7db --- /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 0000000..34020bd --- /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/tslib/CopyrightNotice.txt b/node_modules/tslib/CopyrightNotice.txt new file mode 100644 index 0000000..2e4a05c --- /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 0000000..fa7d1bd --- /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 0000000..a7ee5aa --- /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 tslib + +# TypeScript 2.3.2 or earlier +npm install 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.[version].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/modules/index.js b/node_modules/tslib/modules/index.js new file mode 100644 index 0000000..c2b6149 --- /dev/null +++ b/node_modules/tslib/modules/index.js @@ -0,0 +1,51 @@ +import tslib from '../tslib.js'; +const { + __extends, + __assign, + __rest, + __decorate, + __param, + __metadata, + __awaiter, + __generator, + __exportStar, + __createBinding, + __values, + __read, + __spread, + __spreadArrays, + __await, + __asyncGenerator, + __asyncDelegator, + __asyncValues, + __makeTemplateObject, + __importStar, + __importDefault, + __classPrivateFieldGet, + __classPrivateFieldSet, +} = tslib; +export { + __extends, + __assign, + __rest, + __decorate, + __param, + __metadata, + __awaiter, + __generator, + __exportStar, + __createBinding, + __values, + __read, + __spread, + __spreadArrays, + __await, + __asyncGenerator, + __asyncDelegator, + __asyncValues, + __makeTemplateObject, + __importStar, + __importDefault, + __classPrivateFieldGet, + __classPrivateFieldSet, +}; diff --git a/node_modules/tslib/modules/package.json b/node_modules/tslib/modules/package.json new file mode 100644 index 0000000..96ae6e5 --- /dev/null +++ b/node_modules/tslib/modules/package.json @@ -0,0 +1,3 @@ +{ + "type": "module" +} \ No newline at end of file diff --git a/node_modules/tslib/package.json b/node_modules/tslib/package.json new file mode 100644 index 0000000..745335a --- /dev/null +++ b/node_modules/tslib/package.json @@ -0,0 +1,64 @@ +{ + "_from": "tslib@^1.9.0", + "_id": "tslib@1.14.1", + "_inBundle": false, + "_integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "_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.14.1.tgz", + "_shasum": "cf2d38bdc34a134bcaf1091c41f6619e2f672d00", + "_spec": "tslib@^1.9.0", + "_where": "/home/wyrihaximus/Projects/WyriHaximus/github-action-helm3/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", + "exports": { + ".": { + "module": "./tslib.es6.js", + "import": "./modules/index.js", + "default": "./tslib.js" + }, + "./": "./" + }, + "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.14.1" +} diff --git a/node_modules/tslib/test/validateModuleExportsMatchCommonJS/index.js b/node_modules/tslib/test/validateModuleExportsMatchCommonJS/index.js new file mode 100644 index 0000000..0c1b613 --- /dev/null +++ b/node_modules/tslib/test/validateModuleExportsMatchCommonJS/index.js @@ -0,0 +1,23 @@ +// When on node 14, it validates that all of the commonjs exports +// are correctly re-exported for es modules importers. + +const nodeMajor = Number(process.version.split(".")[0].slice(1)) +if (nodeMajor < 14) { + console.log("Skipping because node does not support module exports.") + process.exit(0) +} + +// ES Modules import via the ./modules folder +import * as esTSLib from "../../modules/index.js" + +// Force a commonjs resolve +import { createRequire } from "module"; +const commonJSTSLib = createRequire(import.meta.url)("../../tslib.js"); + +for (const key in commonJSTSLib) { + if (commonJSTSLib.hasOwnProperty(key)) { + if(!esTSLib[key]) throw new Error(`ESModules is missing ${key} - it needs to be re-exported in ./modules/index.js`) + } +} + +console.log("All exports in commonjs are available for es module consumers.") diff --git a/node_modules/tslib/test/validateModuleExportsMatchCommonJS/package.json b/node_modules/tslib/test/validateModuleExportsMatchCommonJS/package.json new file mode 100644 index 0000000..166e509 --- /dev/null +++ b/node_modules/tslib/test/validateModuleExportsMatchCommonJS/package.json @@ -0,0 +1,6 @@ +{ + "type": "module", + "scripts": { + "test": "node index.js" + } +} diff --git a/node_modules/tslib/tslib.d.ts b/node_modules/tslib/tslib.d.ts new file mode 100644 index 0000000..4d7f724 --- /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 0000000..b122e41 --- /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 0000000..7fdec02 --- /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 0000000..44c9ba5 --- /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 0000000..fbce018 --- /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/universalify/LICENSE b/node_modules/universalify/LICENSE new file mode 100644 index 0000000..514e84e --- /dev/null +++ b/node_modules/universalify/LICENSE @@ -0,0 +1,20 @@ +(The MIT License) + +Copyright (c) 2017, Ryan Zimmerman + +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/universalify/README.md b/node_modules/universalify/README.md new file mode 100644 index 0000000..487067b --- /dev/null +++ b/node_modules/universalify/README.md @@ -0,0 +1,76 @@ +# universalify + +[![Travis branch](https://img.shields.io/travis/RyanZim/universalify/master.svg)](https://travis-ci.org/RyanZim/universalify) +![Coveralls github branch](https://img.shields.io/coveralls/github/RyanZim/universalify/master.svg) +![npm](https://img.shields.io/npm/dm/universalify.svg) +![npm](https://img.shields.io/npm/l/universalify.svg) + +Make a callback- or promise-based function support both promises and callbacks. + +Uses the native promise implementation. + +## Installation + +```bash +npm install universalify +``` + +## API + +### `universalify.fromCallback(fn)` + +Takes a callback-based function to universalify, and returns the universalified function. + +Function must take a callback as the last parameter that will be called with the signature `(error, result)`. `universalify` does not support calling the callback with more than three arguments, and does not ensure that the callback is only called once. + +```js +function callbackFn (n, cb) { + setTimeout(() => cb(null, n), 15) +} + +const fn = universalify.fromCallback(callbackFn) + +// Works with Promises: +fn('Hello World!') +.then(result => console.log(result)) // -> Hello World! +.catch(error => console.error(error)) + +// Works with Callbacks: +fn('Hi!', (error, result) => { + if (error) return console.error(error) + console.log(result) + // -> Hi! +}) +``` + +### `universalify.fromPromise(fn)` + +Takes a promise-based function to universalify, and returns the universalified function. + +Function must return a valid JS promise. `universalify` does not ensure that a valid promise is returned. + +```js +function promiseFn (n) { + return new Promise(resolve => { + setTimeout(() => resolve(n), 15) + }) +} + +const fn = universalify.fromPromise(promiseFn) + +// Works with Promises: +fn('Hello World!') +.then(result => console.log(result)) // -> Hello World! +.catch(error => console.error(error)) + +// Works with Callbacks: +fn('Hi!', (error, result) => { + if (error) return console.error(error) + console.log(result) + // -> Hi! +}) +``` + +## License + +MIT diff --git a/node_modules/universalify/index.js b/node_modules/universalify/index.js new file mode 100644 index 0000000..0c9ba39 --- /dev/null +++ b/node_modules/universalify/index.js @@ -0,0 +1,25 @@ +'use strict' + +exports.fromCallback = function (fn) { + return Object.defineProperty(function () { + if (typeof arguments[arguments.length - 1] === 'function') fn.apply(this, arguments) + else { + return new Promise((resolve, reject) => { + arguments[arguments.length] = (err, res) => { + if (err) return reject(err) + resolve(res) + } + arguments.length++ + fn.apply(this, arguments) + }) + } + }, 'name', { value: fn.name }) +} + +exports.fromPromise = function (fn) { + return Object.defineProperty(function () { + const cb = arguments[arguments.length - 1] + if (typeof cb !== 'function') return fn.apply(this, arguments) + else fn.apply(this, arguments).then(r => cb(null, r), cb) + }, 'name', { value: fn.name }) +} diff --git a/node_modules/universalify/package.json b/node_modules/universalify/package.json new file mode 100644 index 0000000..dad4de1 --- /dev/null +++ b/node_modules/universalify/package.json @@ -0,0 +1,64 @@ +{ + "_from": "universalify@^0.1.0", + "_id": "universalify@0.1.2", + "_inBundle": false, + "_integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "_location": "/universalify", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "universalify@^0.1.0", + "name": "universalify", + "escapedName": "universalify", + "rawSpec": "^0.1.0", + "saveSpec": null, + "fetchSpec": "^0.1.0" + }, + "_requiredBy": [ + "/fs-extra" + ], + "_resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "_shasum": "b646f69be3942dabcecc9d6639c80dc105efaa66", + "_spec": "universalify@^0.1.0", + "_where": "/home/wyrihaximus/Projects/WyriHaximus/github-action-helm3/node_modules/fs-extra", + "author": { + "name": "Ryan Zimmerman", + "email": "opensrc@ryanzim.com" + }, + "bugs": { + "url": "https://github.com/RyanZim/universalify/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Make a callback- or promise-based function support both promises and callbacks.", + "devDependencies": { + "colortape": "^0.1.2", + "coveralls": "^3.0.1", + "nyc": "^10.2.0", + "standard": "^10.0.1", + "tape": "^4.6.3" + }, + "engines": { + "node": ">= 4.0.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/RyanZim/universalify#readme", + "keywords": [ + "callback", + "native", + "promise" + ], + "license": "MIT", + "name": "universalify", + "repository": { + "type": "git", + "url": "git+https://github.com/RyanZim/universalify.git" + }, + "scripts": { + "test": "standard && nyc tape test/*.js | colortape" + }, + "version": "0.1.2" +} diff --git a/node_modules/wait-file/LICENSE.md b/node_modules/wait-file/LICENSE.md new file mode 100755 index 0000000..8db2662 --- /dev/null +++ b/node_modules/wait-file/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Endilie Yacop Sucipto + +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/wait-file/README.md b/node_modules/wait-file/README.md new file mode 100755 index 0000000..ad31b1b --- /dev/null +++ b/node_modules/wait-file/README.md @@ -0,0 +1,59 @@ +# Wait-file + +Wait for file resource(s) to become available in Node.js. + +[![Build Status](https://travis-ci.com/endiliey/wait-file.svg?branch=master)](https://travis-ci.com/endiliey/wait-file) + +## Installation + +```bash +npm install wait-file +``` + +### Node.js API usage + +waitFile(opts, [cb]) - function which triggers resource checks + +- opts - see below example +- cb(err) - if err is provided then, resource checks did not succeed + +Requires Node.js v8+ + +```javascript +const { waitFile } = require('wait-file'); +const opts = { + resources: ['file1', '/path/to/file2'], + delay: 0, // initial delay in ms, default 0ms + interval: 100, // poll interval in ms, default 250ms + log: false, // outputs to stdout, remaining resources waited on and when complete or errored, default false + reverse: false, // resources being NOT available, default false + timeout: 30000, // timeout in ms, default Infinity + verbose: false, // optional flag which outputs debug output, default false + window: 1000, // stabilization time in ms, default 750ms +}; + +// Usage with callback function +waitFile(opts, function(err) { + if (err) { + return console.error(err); + } + // once here, all resources are available +}); + +// Usage with promises +waitFile(opts) + .then(function() { + // once here, all resources are available + }) + .catch(function(err) { + console.error(err); + }); + +// Usage with async await +try { + await waitFile(opts); + // once here, all resources are available +} catch (err) { + console.error(err); +} +``` diff --git a/node_modules/wait-file/dist/index.d.ts b/node_modules/wait-file/dist/index.d.ts new file mode 100755 index 0000000..533341f --- /dev/null +++ b/node_modules/wait-file/dist/index.d.ts @@ -0,0 +1,11 @@ +export interface Opts { + resources: string[]; + delay?: number; + interval?: number; + log?: boolean; + reverse?: boolean; + timeout?: number; + verbose?: boolean; + window?: number; +} +export declare function waitFile(opts: Opts, cb?: (err?: Error) => any): any; diff --git a/node_modules/wait-file/dist/index.js b/node_modules/wait-file/dist/index.js new file mode 100755 index 0000000..cd181c4 --- /dev/null +++ b/node_modules/wait-file/dist/index.js @@ -0,0 +1,8 @@ + +'use strict' + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./wait-file.cjs.production.min.js') +} else { + module.exports = require('./wait-file.cjs.development.js') +} diff --git a/node_modules/wait-file/dist/wait-file.cjs.development.js b/node_modules/wait-file/dist/wait-file.cjs.development.js new file mode 100755 index 0000000..2df0838 --- /dev/null +++ b/node_modules/wait-file/dist/wait-file.cjs.development.js @@ -0,0 +1,180 @@ +'use strict'; + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var fs = _interopDefault(require('fs-extra')); +var Joi = require('@hapi/joi'); +var Rx = _interopDefault(require('rx')); + +const WAIT_FILE_SCHEMA = +/*#__PURE__*/ +Joi.object().keys({ + resources: + /*#__PURE__*/ + Joi.array().items(Joi.string().required()).required(), + delay: + /*#__PURE__*/ + Joi.number().integer().min(0).default(0), + interval: + /*#__PURE__*/ + Joi.number().integer().min(0).default(250), + log: + /*#__PURE__*/ + Joi.boolean().default(false), + reverse: + /*#__PURE__*/ + Joi.boolean().default(false), + timeout: + /*#__PURE__*/ + Joi.number().integer().min(0).default(Infinity), + verbose: + /*#__PURE__*/ + Joi.boolean().default(false), + window: + /*#__PURE__*/ + Joi.number().integer().min(0).default(750) +}); + +function waitFileImpl(oldOpts, cb) { + const validResult = Joi.validate(oldOpts, WAIT_FILE_SCHEMA); + + if (validResult.error && cb) { + return cb(validResult.error); + } + + const opts = validResult.value; // it needs to be at least interval + + if (opts.window < opts.interval) { + opts.window = opts.interval; + } + + const output = opts.verbose ? console.log.bind(console) : function () {}; + const log = opts.log ? console.log.bind(console) : function () {}; // the resources last known to be waiting for + + let lastWaitForOutput; + let timeoutTimer = null; + + if (opts.timeout !== Infinity) { + timeoutTimer = setTimeout(function () { + log('wait-file(%s) timed out waiting for: %s; exiting with error', process.pid, lastWaitForOutput); + cb && cb(new Error('Timeout')); + }, opts.timeout); + } + + function cleanup(err) { + if (timeoutTimer) { + clearTimeout(timeoutTimer); + timeoutTimer = null; + } + + if (cb) { + cb(err); + cb = null; + } + } + + function createFile(file) { + const fstat = Rx.Observable.fromNodeCallback(fs.stat); + const source = fstat(file); + const fakeStat = Rx.Observable.just({ + size: -1 + }); + return Rx.Observable.catch(source, fakeStat).map(function (stat) { + return { + val: stat.size, + data: stat + }; + }); + } + /* Stability checking occurs by using an Rx window, + It waits until all of the vals from the resources are >=0, + then it waits for a window which has no changes + (duplicate outputs are filtered by distinctUntilChanged) + */ + + + let lastValues = null; + const src = Rx.Observable.timer(opts.delay, opts.interval).concatMap(() => { + return Rx.Observable.from(opts.resources).concatMap(function (resource) { + return createFile(resource); + }, function (resource, obj) { + return { + resource: resource, + val: obj.val, + data: obj.data + }; + }).reduce(function (acc, x) { + acc[x.resource] = x.val; + return acc; + }, {}); + }).map(function (values) { + lastValues = values; // save lastValues for later ref + + return values; + }).distinctUntilChanged().windowWithTime(opts.window); + + function lastValuesAllAvailable() { + if (!lastValues) { + return false; + } + + var notReady = opts.resources.filter(function (k) { + var lastValue = lastValues && lastValues[k]; + var result = typeof lastValue !== 'number' || lastValue < 0; + return opts.reverse ? !result : result; + }); // only output when changes + + var notReadyString = notReady.join(', '); + + if (notReadyString && notReadyString !== lastWaitForOutput) { + log('wait-file(%s) waiting for: %s', process.pid, notReadyString); + lastWaitForOutput = notReadyString; + } + + return !notReady.length; + } + + let subsc = src.subscribe(function (child) { + let childSub = child.toArray().subscribe(function (x) { + output('child next', x); + + if (lastValuesAllAvailable() && !x.length) { + output('stabilized'); + log('wait-file(%s) exiting successfully found all: %s', process.pid, opts.resources.join(', ')); + childSub.dispose(); + subsc.dispose(); + cleanup(); + } + }, function (err) { + output('child err', err); + }, function () { + output('child complete'); + }); + }, function (err) { + output('err: ', err); + log('wait-file(%s) exiting with error', process.pid, err); + cleanup(err); + }, function () { + output('complete'); + cleanup(); + }); +} + +function waitFile(opts, cb) { + if (cb && cb !== undefined) { + return waitFileImpl(opts, cb); + } else { + return new Promise((resolve, reject) => { + waitFileImpl(opts, err => { + if (err) { + reject(err); + } else { + resolve(); + } + }); + }); + } +} + +exports.waitFile = waitFile; +//# sourceMappingURL=wait-file.cjs.development.js.map diff --git a/node_modules/wait-file/dist/wait-file.cjs.development.js.map b/node_modules/wait-file/dist/wait-file.cjs.development.js.map new file mode 100755 index 0000000..ab60545 --- /dev/null +++ b/node_modules/wait-file/dist/wait-file.cjs.development.js.map @@ -0,0 +1 @@ +{"version":3,"file":"wait-file.cjs.development.js","sources":["../src/index.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport * as Joi from '@hapi/joi';\r\nimport Rx from 'rx';\r\n\r\nexport interface Opts {\r\n resources: string[];\r\n delay?: number;\r\n interval?: number;\r\n log?: boolean;\r\n reverse?: boolean;\r\n timeout?: number;\r\n verbose?: boolean;\r\n window?: number;\r\n}\r\n\r\ninterface File {\r\n val: number;\r\n data: Stats;\r\n}\r\n\r\ninterface Stats {\r\n size: number;\r\n [key: string]: any;\r\n}\r\n\r\ninterface Value {\r\n [resource: string]: number;\r\n}\r\n\r\nconst WAIT_FILE_SCHEMA = Joi.object().keys({\r\n resources: Joi.array()\r\n .items(Joi.string().required())\r\n .required(),\r\n delay: Joi.number()\r\n .integer()\r\n .min(0)\r\n .default(0),\r\n interval: Joi.number()\r\n .integer()\r\n .min(0)\r\n .default(250),\r\n log: Joi.boolean().default(false),\r\n reverse: Joi.boolean().default(false),\r\n timeout: Joi.number()\r\n .integer()\r\n .min(0)\r\n .default(Infinity),\r\n verbose: Joi.boolean().default(false),\r\n window: Joi.number()\r\n .integer()\r\n .min(0)\r\n .default(750),\r\n});\r\n\r\nfunction waitFileImpl(oldOpts: Opts, cb: null | ((err?: Error) => any)) {\r\n const validResult = Joi.validate(oldOpts, WAIT_FILE_SCHEMA);\r\n if (validResult.error && cb) {\r\n return cb(validResult.error);\r\n }\r\n const opts = validResult.value as Required;\r\n\r\n // it needs to be at least interval\r\n if (opts.window < opts.interval) {\r\n opts.window = opts.interval;\r\n }\r\n\r\n const output = opts.verbose ? console.log.bind(console) : function() {};\r\n\r\n const log = opts.log ? console.log.bind(console) : function() {};\r\n\r\n // the resources last known to be waiting for\r\n let lastWaitForOutput: string;\r\n\r\n let timeoutTimer: null | NodeJS.Timeout = null;\r\n if (opts.timeout !== Infinity) {\r\n timeoutTimer = setTimeout(function() {\r\n log(\r\n 'wait-file(%s) timed out waiting for: %s; exiting with error',\r\n process.pid,\r\n lastWaitForOutput\r\n );\r\n cb && cb(new Error('Timeout'));\r\n }, opts.timeout);\r\n }\r\n\r\n function cleanup(err?: Error) {\r\n if (timeoutTimer) {\r\n clearTimeout(timeoutTimer);\r\n timeoutTimer = null;\r\n }\r\n if (cb) {\r\n cb(err);\r\n cb = null;\r\n }\r\n }\r\n\r\n function createFile(file: string): Rx.Observable {\r\n const fstat = Rx.Observable.fromNodeCallback(fs.stat);\r\n const source = (fstat(file)) as Rx.Observable;\r\n const fakeStat = Rx.Observable.just({ size: -1 });\r\n return Rx.Observable.catch(source, fakeStat).map(function(stat) {\r\n return {\r\n val: stat.size, // key comparator used\r\n data: stat, // additional data for debugging\r\n };\r\n });\r\n }\r\n\r\n /* Stability checking occurs by using an Rx window,\r\n It waits until all of the vals from the resources are >=0,\r\n then it waits for a window which has no changes\r\n (duplicate outputs are filtered by distinctUntilChanged)\r\n */\r\n let lastValues: Value | null = null;\r\n const src = Rx.Observable.timer(opts.delay, opts.interval)\r\n .concatMap(() => {\r\n return Rx.Observable.from(opts.resources)\r\n .concatMap(\r\n function(resource: string) {\r\n return createFile(resource);\r\n },\r\n function(resource: string, obj: File) {\r\n return { resource: resource, val: obj.val, data: obj.data };\r\n }\r\n )\r\n .reduce(function(acc: Value, x) {\r\n acc[x.resource] = x.val;\r\n return acc;\r\n }, {});\r\n })\r\n .map(function(values: Value) {\r\n lastValues = values; // save lastValues for later ref\r\n return values;\r\n })\r\n .distinctUntilChanged()\r\n .windowWithTime(opts.window);\r\n\r\n function lastValuesAllAvailable(): boolean {\r\n if (!lastValues) {\r\n return false;\r\n }\r\n var notReady = opts.resources.filter(function(k) {\r\n var lastValue = lastValues && lastValues[k];\r\n var result = typeof lastValue !== 'number' || lastValue < 0;\r\n return opts.reverse ? !result : result;\r\n });\r\n\r\n // only output when changes\r\n var notReadyString = notReady.join(', ');\r\n if (notReadyString && notReadyString !== lastWaitForOutput) {\r\n log('wait-file(%s) waiting for: %s', process.pid, notReadyString);\r\n lastWaitForOutput = notReadyString;\r\n }\r\n\r\n return !notReady.length;\r\n }\r\n\r\n let subsc = src.subscribe(\r\n function(child) {\r\n let childSub = child.toArray().subscribe(\r\n function(x) {\r\n output('child next', x);\r\n if (lastValuesAllAvailable() && !x.length) {\r\n output('stabilized');\r\n log(\r\n 'wait-file(%s) exiting successfully found all: %s',\r\n process.pid,\r\n opts.resources.join(', ')\r\n );\r\n childSub.dispose();\r\n subsc.dispose();\r\n cleanup();\r\n }\r\n },\r\n function(err) {\r\n output('child err', err);\r\n },\r\n function() {\r\n output('child complete');\r\n }\r\n );\r\n },\r\n function(err) {\r\n output('err: ', err);\r\n log('wait-file(%s) exiting with error', process.pid, err);\r\n cleanup(err);\r\n },\r\n function() {\r\n output('complete');\r\n cleanup();\r\n }\r\n );\r\n}\r\n\r\nexport function waitFile(opts: Opts, cb?: (err?: Error) => any) {\r\n if (cb && cb !== undefined) {\r\n return waitFileImpl(opts, cb);\r\n } else {\r\n return new Promise((resolve, reject) => {\r\n waitFileImpl(opts, err => {\r\n if (err) {\r\n reject(err);\r\n } else {\r\n resolve();\r\n }\r\n });\r\n });\r\n }\r\n}\r\n"],"names":["WAIT_FILE_SCHEMA","Joi","keys","resources","items","required","delay","integer","min","default","interval","log","reverse","timeout","Infinity","verbose","window","waitFileImpl","oldOpts","cb","validResult","error","opts","value","output","console","bind","lastWaitForOutput","timeoutTimer","setTimeout","process","pid","Error","cleanup","err","clearTimeout","createFile","file","fstat","Rx","Observable","fromNodeCallback","fs","stat","source","fakeStat","just","size","catch","map","val","data","lastValues","src","timer","concatMap","from","resource","obj","reduce","acc","x","values","distinctUntilChanged","windowWithTime","lastValuesAllAvailable","notReady","filter","k","lastValue","result","notReadyString","join","length","subsc","subscribe","child","childSub","toArray","dispose","waitFile","undefined","Promise","resolve","reject"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/wait-file/dist/wait-file.cjs.production.min.js b/node_modules/wait-file/dist/wait-file.cjs.production.min.js new file mode 100755 index 0000000..93beed4 --- /dev/null +++ b/node_modules/wait-file/dist/wait-file.cjs.production.min.js @@ -0,0 +1,2 @@ +"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}var n=e(require("fs-extra")),t=require("@hapi/joi"),r=e(require("rx"));const i=t.object().keys({resources:t.array().items(t.string().required()).required(),delay:t.number().integer().min(0).default(0),interval:t.number().integer().min(0).default(250),log:t.boolean().default(!1),reverse:t.boolean().default(!1),timeout:t.number().integer().min(0).default(Infinity),verbose:t.boolean().default(!1),window:t.number().integer().min(0).default(750)});function o(e,o){const u=t.validate(e,i);if(u.error&&o)return o(u.error);const l=u.value;l.windowr.Observable.from(l.resources).concatMap(function(e){return function(e){const t=r.Observable.fromNodeCallback(n.stat)(e),i=r.Observable.just({size:-1});return r.Observable.catch(t,i).map(function(e){return{val:e.size,data:e}})}(e)},function(e,n){return{resource:e,val:n.val,data:n.data}}).reduce(function(e,n){return e[n.resource]=n.val,e},{})).map(function(e){return b=e,e}).distinctUntilChanged().windowWithTime(l.window).subscribe(function(e){let n=e.toArray().subscribe(function(e){s("child next",e),function(){if(!b)return!1;var e=l.resources.filter(function(e){var n=b&&b[e],t="number"!=typeof n||n<0;return l.reverse?!t:t}),n=e.join(", ");return n&&n!==c&&(a("wait-file(%s) waiting for: %s",process.pid,n),c=n),!e.length}()&&!e.length&&(s("stabilized"),a("wait-file(%s) exiting successfully found all: %s",process.pid,l.resources.join(", ")),n.dispose(),m.dispose(),d())},function(e){s("child err",e)},function(){s("child complete")})},function(e){s("err: ",e),a("wait-file(%s) exiting with error",process.pid,e),d(e)},function(){s("complete"),d()})}exports.waitFile=function(e,n){return n&&void 0!==n?o(e,n):new Promise((n,t)=>{o(e,e=>{e?t(e):n()})})}; +//# sourceMappingURL=wait-file.cjs.production.min.js.map diff --git a/node_modules/wait-file/dist/wait-file.cjs.production.min.js.map b/node_modules/wait-file/dist/wait-file.cjs.production.min.js.map new file mode 100755 index 0000000..687704c --- /dev/null +++ b/node_modules/wait-file/dist/wait-file.cjs.production.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"wait-file.cjs.production.min.js","sources":["../src/index.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport * as Joi from '@hapi/joi';\r\nimport Rx from 'rx';\r\n\r\nexport interface Opts {\r\n resources: string[];\r\n delay?: number;\r\n interval?: number;\r\n log?: boolean;\r\n reverse?: boolean;\r\n timeout?: number;\r\n verbose?: boolean;\r\n window?: number;\r\n}\r\n\r\ninterface File {\r\n val: number;\r\n data: Stats;\r\n}\r\n\r\ninterface Stats {\r\n size: number;\r\n [key: string]: any;\r\n}\r\n\r\ninterface Value {\r\n [resource: string]: number;\r\n}\r\n\r\nconst WAIT_FILE_SCHEMA = Joi.object().keys({\r\n resources: Joi.array()\r\n .items(Joi.string().required())\r\n .required(),\r\n delay: Joi.number()\r\n .integer()\r\n .min(0)\r\n .default(0),\r\n interval: Joi.number()\r\n .integer()\r\n .min(0)\r\n .default(250),\r\n log: Joi.boolean().default(false),\r\n reverse: Joi.boolean().default(false),\r\n timeout: Joi.number()\r\n .integer()\r\n .min(0)\r\n .default(Infinity),\r\n verbose: Joi.boolean().default(false),\r\n window: Joi.number()\r\n .integer()\r\n .min(0)\r\n .default(750),\r\n});\r\n\r\nfunction waitFileImpl(oldOpts: Opts, cb: null | ((err?: Error) => any)) {\r\n const validResult = Joi.validate(oldOpts, WAIT_FILE_SCHEMA);\r\n if (validResult.error && cb) {\r\n return cb(validResult.error);\r\n }\r\n const opts = validResult.value as Required;\r\n\r\n // it needs to be at least interval\r\n if (opts.window < opts.interval) {\r\n opts.window = opts.interval;\r\n }\r\n\r\n const output = opts.verbose ? console.log.bind(console) : function() {};\r\n\r\n const log = opts.log ? console.log.bind(console) : function() {};\r\n\r\n // the resources last known to be waiting for\r\n let lastWaitForOutput: string;\r\n\r\n let timeoutTimer: null | NodeJS.Timeout = null;\r\n if (opts.timeout !== Infinity) {\r\n timeoutTimer = setTimeout(function() {\r\n log(\r\n 'wait-file(%s) timed out waiting for: %s; exiting with error',\r\n process.pid,\r\n lastWaitForOutput\r\n );\r\n cb && cb(new Error('Timeout'));\r\n }, opts.timeout);\r\n }\r\n\r\n function cleanup(err?: Error) {\r\n if (timeoutTimer) {\r\n clearTimeout(timeoutTimer);\r\n timeoutTimer = null;\r\n }\r\n if (cb) {\r\n cb(err);\r\n cb = null;\r\n }\r\n }\r\n\r\n function createFile(file: string): Rx.Observable {\r\n const fstat = Rx.Observable.fromNodeCallback(fs.stat);\r\n const source = (fstat(file)) as Rx.Observable;\r\n const fakeStat = Rx.Observable.just({ size: -1 });\r\n return Rx.Observable.catch(source, fakeStat).map(function(stat) {\r\n return {\r\n val: stat.size, // key comparator used\r\n data: stat, // additional data for debugging\r\n };\r\n });\r\n }\r\n\r\n /* Stability checking occurs by using an Rx window,\r\n It waits until all of the vals from the resources are >=0,\r\n then it waits for a window which has no changes\r\n (duplicate outputs are filtered by distinctUntilChanged)\r\n */\r\n let lastValues: Value | null = null;\r\n const src = Rx.Observable.timer(opts.delay, opts.interval)\r\n .concatMap(() => {\r\n return Rx.Observable.from(opts.resources)\r\n .concatMap(\r\n function(resource: string) {\r\n return createFile(resource);\r\n },\r\n function(resource: string, obj: File) {\r\n return { resource: resource, val: obj.val, data: obj.data };\r\n }\r\n )\r\n .reduce(function(acc: Value, x) {\r\n acc[x.resource] = x.val;\r\n return acc;\r\n }, {});\r\n })\r\n .map(function(values: Value) {\r\n lastValues = values; // save lastValues for later ref\r\n return values;\r\n })\r\n .distinctUntilChanged()\r\n .windowWithTime(opts.window);\r\n\r\n function lastValuesAllAvailable(): boolean {\r\n if (!lastValues) {\r\n return false;\r\n }\r\n var notReady = opts.resources.filter(function(k) {\r\n var lastValue = lastValues && lastValues[k];\r\n var result = typeof lastValue !== 'number' || lastValue < 0;\r\n return opts.reverse ? !result : result;\r\n });\r\n\r\n // only output when changes\r\n var notReadyString = notReady.join(', ');\r\n if (notReadyString && notReadyString !== lastWaitForOutput) {\r\n log('wait-file(%s) waiting for: %s', process.pid, notReadyString);\r\n lastWaitForOutput = notReadyString;\r\n }\r\n\r\n return !notReady.length;\r\n }\r\n\r\n let subsc = src.subscribe(\r\n function(child) {\r\n let childSub = child.toArray().subscribe(\r\n function(x) {\r\n output('child next', x);\r\n if (lastValuesAllAvailable() && !x.length) {\r\n output('stabilized');\r\n log(\r\n 'wait-file(%s) exiting successfully found all: %s',\r\n process.pid,\r\n opts.resources.join(', ')\r\n );\r\n childSub.dispose();\r\n subsc.dispose();\r\n cleanup();\r\n }\r\n },\r\n function(err) {\r\n output('child err', err);\r\n },\r\n function() {\r\n output('child complete');\r\n }\r\n );\r\n },\r\n function(err) {\r\n output('err: ', err);\r\n log('wait-file(%s) exiting with error', process.pid, err);\r\n cleanup(err);\r\n },\r\n function() {\r\n output('complete');\r\n cleanup();\r\n }\r\n );\r\n}\r\n\r\nexport function waitFile(opts: Opts, cb?: (err?: Error) => any) {\r\n if (cb && cb !== undefined) {\r\n return waitFileImpl(opts, cb);\r\n } else {\r\n return new Promise((resolve, reject) => {\r\n waitFileImpl(opts, err => {\r\n if (err) {\r\n reject(err);\r\n } else {\r\n resolve();\r\n }\r\n });\r\n });\r\n }\r\n}\r\n"],"names":["WAIT_FILE_SCHEMA","Joi","keys","resources","items","required","delay","integer","min","default","interval","log","reverse","timeout","Infinity","verbose","window","waitFileImpl","oldOpts","cb","validResult","error","opts","value","output","console","bind","lastWaitForOutput","timeoutTimer","cleanup","err","clearTimeout","setTimeout","process","pid","Error","lastValues","subsc","Rx","Observable","timer","concatMap","from","resource","file","source","fromNodeCallback","fs","stat","fstat","fakeStat","just","size","catch","map","val","data","createFile","obj","reduce","acc","x","values","distinctUntilChanged","windowWithTime","subscribe","child","childSub","toArray","notReady","filter","k","lastValue","result","notReadyString","join","length","lastValuesAllAvailable","dispose","undefined","Promise","resolve","reject"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/wait-file/dist/wait-file.esm.js b/node_modules/wait-file/dist/wait-file.esm.js new file mode 100755 index 0000000..2e2542a --- /dev/null +++ b/node_modules/wait-file/dist/wait-file.esm.js @@ -0,0 +1,176 @@ +import fs from 'fs-extra'; +import { validate, object, array, string, number, boolean } from '@hapi/joi'; +import Rx from 'rx'; + +const WAIT_FILE_SCHEMA = +/*#__PURE__*/ +object().keys({ + resources: + /*#__PURE__*/ + array().items(string().required()).required(), + delay: + /*#__PURE__*/ + number().integer().min(0).default(0), + interval: + /*#__PURE__*/ + number().integer().min(0).default(250), + log: + /*#__PURE__*/ + boolean().default(false), + reverse: + /*#__PURE__*/ + boolean().default(false), + timeout: + /*#__PURE__*/ + number().integer().min(0).default(Infinity), + verbose: + /*#__PURE__*/ + boolean().default(false), + window: + /*#__PURE__*/ + number().integer().min(0).default(750) +}); + +function waitFileImpl(oldOpts, cb) { + const validResult = validate(oldOpts, WAIT_FILE_SCHEMA); + + if (validResult.error && cb) { + return cb(validResult.error); + } + + const opts = validResult.value; // it needs to be at least interval + + if (opts.window < opts.interval) { + opts.window = opts.interval; + } + + const output = opts.verbose ? console.log.bind(console) : function () {}; + const log = opts.log ? console.log.bind(console) : function () {}; // the resources last known to be waiting for + + let lastWaitForOutput; + let timeoutTimer = null; + + if (opts.timeout !== Infinity) { + timeoutTimer = setTimeout(function () { + log('wait-file(%s) timed out waiting for: %s; exiting with error', process.pid, lastWaitForOutput); + cb && cb(new Error('Timeout')); + }, opts.timeout); + } + + function cleanup(err) { + if (timeoutTimer) { + clearTimeout(timeoutTimer); + timeoutTimer = null; + } + + if (cb) { + cb(err); + cb = null; + } + } + + function createFile(file) { + const fstat = Rx.Observable.fromNodeCallback(fs.stat); + const source = fstat(file); + const fakeStat = Rx.Observable.just({ + size: -1 + }); + return Rx.Observable.catch(source, fakeStat).map(function (stat) { + return { + val: stat.size, + data: stat + }; + }); + } + /* Stability checking occurs by using an Rx window, + It waits until all of the vals from the resources are >=0, + then it waits for a window which has no changes + (duplicate outputs are filtered by distinctUntilChanged) + */ + + + let lastValues = null; + const src = Rx.Observable.timer(opts.delay, opts.interval).concatMap(() => { + return Rx.Observable.from(opts.resources).concatMap(function (resource) { + return createFile(resource); + }, function (resource, obj) { + return { + resource: resource, + val: obj.val, + data: obj.data + }; + }).reduce(function (acc, x) { + acc[x.resource] = x.val; + return acc; + }, {}); + }).map(function (values) { + lastValues = values; // save lastValues for later ref + + return values; + }).distinctUntilChanged().windowWithTime(opts.window); + + function lastValuesAllAvailable() { + if (!lastValues) { + return false; + } + + var notReady = opts.resources.filter(function (k) { + var lastValue = lastValues && lastValues[k]; + var result = typeof lastValue !== 'number' || lastValue < 0; + return opts.reverse ? !result : result; + }); // only output when changes + + var notReadyString = notReady.join(', '); + + if (notReadyString && notReadyString !== lastWaitForOutput) { + log('wait-file(%s) waiting for: %s', process.pid, notReadyString); + lastWaitForOutput = notReadyString; + } + + return !notReady.length; + } + + let subsc = src.subscribe(function (child) { + let childSub = child.toArray().subscribe(function (x) { + output('child next', x); + + if (lastValuesAllAvailable() && !x.length) { + output('stabilized'); + log('wait-file(%s) exiting successfully found all: %s', process.pid, opts.resources.join(', ')); + childSub.dispose(); + subsc.dispose(); + cleanup(); + } + }, function (err) { + output('child err', err); + }, function () { + output('child complete'); + }); + }, function (err) { + output('err: ', err); + log('wait-file(%s) exiting with error', process.pid, err); + cleanup(err); + }, function () { + output('complete'); + cleanup(); + }); +} + +function waitFile(opts, cb) { + if (cb && cb !== undefined) { + return waitFileImpl(opts, cb); + } else { + return new Promise((resolve, reject) => { + waitFileImpl(opts, err => { + if (err) { + reject(err); + } else { + resolve(); + } + }); + }); + } +} + +export { waitFile }; +//# sourceMappingURL=wait-file.esm.js.map diff --git a/node_modules/wait-file/dist/wait-file.esm.js.map b/node_modules/wait-file/dist/wait-file.esm.js.map new file mode 100755 index 0000000..aac0d07 --- /dev/null +++ b/node_modules/wait-file/dist/wait-file.esm.js.map @@ -0,0 +1 @@ +{"version":3,"file":"wait-file.esm.js","sources":["../src/index.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport * as Joi from '@hapi/joi';\r\nimport Rx from 'rx';\r\n\r\nexport interface Opts {\r\n resources: string[];\r\n delay?: number;\r\n interval?: number;\r\n log?: boolean;\r\n reverse?: boolean;\r\n timeout?: number;\r\n verbose?: boolean;\r\n window?: number;\r\n}\r\n\r\ninterface File {\r\n val: number;\r\n data: Stats;\r\n}\r\n\r\ninterface Stats {\r\n size: number;\r\n [key: string]: any;\r\n}\r\n\r\ninterface Value {\r\n [resource: string]: number;\r\n}\r\n\r\nconst WAIT_FILE_SCHEMA = Joi.object().keys({\r\n resources: Joi.array()\r\n .items(Joi.string().required())\r\n .required(),\r\n delay: Joi.number()\r\n .integer()\r\n .min(0)\r\n .default(0),\r\n interval: Joi.number()\r\n .integer()\r\n .min(0)\r\n .default(250),\r\n log: Joi.boolean().default(false),\r\n reverse: Joi.boolean().default(false),\r\n timeout: Joi.number()\r\n .integer()\r\n .min(0)\r\n .default(Infinity),\r\n verbose: Joi.boolean().default(false),\r\n window: Joi.number()\r\n .integer()\r\n .min(0)\r\n .default(750),\r\n});\r\n\r\nfunction waitFileImpl(oldOpts: Opts, cb: null | ((err?: Error) => any)) {\r\n const validResult = Joi.validate(oldOpts, WAIT_FILE_SCHEMA);\r\n if (validResult.error && cb) {\r\n return cb(validResult.error);\r\n }\r\n const opts = validResult.value as Required;\r\n\r\n // it needs to be at least interval\r\n if (opts.window < opts.interval) {\r\n opts.window = opts.interval;\r\n }\r\n\r\n const output = opts.verbose ? console.log.bind(console) : function() {};\r\n\r\n const log = opts.log ? console.log.bind(console) : function() {};\r\n\r\n // the resources last known to be waiting for\r\n let lastWaitForOutput: string;\r\n\r\n let timeoutTimer: null | NodeJS.Timeout = null;\r\n if (opts.timeout !== Infinity) {\r\n timeoutTimer = setTimeout(function() {\r\n log(\r\n 'wait-file(%s) timed out waiting for: %s; exiting with error',\r\n process.pid,\r\n lastWaitForOutput\r\n );\r\n cb && cb(new Error('Timeout'));\r\n }, opts.timeout);\r\n }\r\n\r\n function cleanup(err?: Error) {\r\n if (timeoutTimer) {\r\n clearTimeout(timeoutTimer);\r\n timeoutTimer = null;\r\n }\r\n if (cb) {\r\n cb(err);\r\n cb = null;\r\n }\r\n }\r\n\r\n function createFile(file: string): Rx.Observable {\r\n const fstat = Rx.Observable.fromNodeCallback(fs.stat);\r\n const source = (fstat(file)) as Rx.Observable;\r\n const fakeStat = Rx.Observable.just({ size: -1 });\r\n return Rx.Observable.catch(source, fakeStat).map(function(stat) {\r\n return {\r\n val: stat.size, // key comparator used\r\n data: stat, // additional data for debugging\r\n };\r\n });\r\n }\r\n\r\n /* Stability checking occurs by using an Rx window,\r\n It waits until all of the vals from the resources are >=0,\r\n then it waits for a window which has no changes\r\n (duplicate outputs are filtered by distinctUntilChanged)\r\n */\r\n let lastValues: Value | null = null;\r\n const src = Rx.Observable.timer(opts.delay, opts.interval)\r\n .concatMap(() => {\r\n return Rx.Observable.from(opts.resources)\r\n .concatMap(\r\n function(resource: string) {\r\n return createFile(resource);\r\n },\r\n function(resource: string, obj: File) {\r\n return { resource: resource, val: obj.val, data: obj.data };\r\n }\r\n )\r\n .reduce(function(acc: Value, x) {\r\n acc[x.resource] = x.val;\r\n return acc;\r\n }, {});\r\n })\r\n .map(function(values: Value) {\r\n lastValues = values; // save lastValues for later ref\r\n return values;\r\n })\r\n .distinctUntilChanged()\r\n .windowWithTime(opts.window);\r\n\r\n function lastValuesAllAvailable(): boolean {\r\n if (!lastValues) {\r\n return false;\r\n }\r\n var notReady = opts.resources.filter(function(k) {\r\n var lastValue = lastValues && lastValues[k];\r\n var result = typeof lastValue !== 'number' || lastValue < 0;\r\n return opts.reverse ? !result : result;\r\n });\r\n\r\n // only output when changes\r\n var notReadyString = notReady.join(', ');\r\n if (notReadyString && notReadyString !== lastWaitForOutput) {\r\n log('wait-file(%s) waiting for: %s', process.pid, notReadyString);\r\n lastWaitForOutput = notReadyString;\r\n }\r\n\r\n return !notReady.length;\r\n }\r\n\r\n let subsc = src.subscribe(\r\n function(child) {\r\n let childSub = child.toArray().subscribe(\r\n function(x) {\r\n output('child next', x);\r\n if (lastValuesAllAvailable() && !x.length) {\r\n output('stabilized');\r\n log(\r\n 'wait-file(%s) exiting successfully found all: %s',\r\n process.pid,\r\n opts.resources.join(', ')\r\n );\r\n childSub.dispose();\r\n subsc.dispose();\r\n cleanup();\r\n }\r\n },\r\n function(err) {\r\n output('child err', err);\r\n },\r\n function() {\r\n output('child complete');\r\n }\r\n );\r\n },\r\n function(err) {\r\n output('err: ', err);\r\n log('wait-file(%s) exiting with error', process.pid, err);\r\n cleanup(err);\r\n },\r\n function() {\r\n output('complete');\r\n cleanup();\r\n }\r\n );\r\n}\r\n\r\nexport function waitFile(opts: Opts, cb?: (err?: Error) => any) {\r\n if (cb && cb !== undefined) {\r\n return waitFileImpl(opts, cb);\r\n } else {\r\n return new Promise((resolve, reject) => {\r\n waitFileImpl(opts, err => {\r\n if (err) {\r\n reject(err);\r\n } else {\r\n resolve();\r\n }\r\n });\r\n });\r\n }\r\n}\r\n"],"names":["WAIT_FILE_SCHEMA","Joi","keys","resources","items","required","delay","integer","min","default","interval","log","reverse","timeout","Infinity","verbose","window","waitFileImpl","oldOpts","cb","validResult","error","opts","value","output","console","bind","lastWaitForOutput","timeoutTimer","setTimeout","process","pid","Error","cleanup","err","clearTimeout","createFile","file","fstat","Rx","Observable","fromNodeCallback","fs","stat","source","fakeStat","just","size","catch","map","val","data","lastValues","src","timer","concatMap","from","resource","obj","reduce","acc","x","values","distinctUntilChanged","windowWithTime","lastValuesAllAvailable","notReady","filter","k","lastValue","result","notReadyString","join","length","subsc","subscribe","child","childSub","toArray","dispose","waitFile","undefined","Promise","resolve","reject"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/wait-file/package.json b/node_modules/wait-file/package.json new file mode 100755 index 0000000..cd46d34 --- /dev/null +++ b/node_modules/wait-file/package.json @@ -0,0 +1,87 @@ +{ + "_from": "wait-file", + "_id": "wait-file@1.0.5", + "_inBundle": false, + "_integrity": "sha512-udLpJY/eOxlrMm3+XD1RLuF2oT9B7J7wiyR5/9xrvQymS6YR6trWvVhzOldHrVbLwyiRmLj9fcvsjzpSXeZHkw==", + "_location": "/wait-file", + "_phantomChildren": {}, + "_requested": { + "type": "tag", + "registry": true, + "raw": "wait-file", + "name": "wait-file", + "escapedName": "wait-file", + "rawSpec": "", + "saveSpec": null, + "fetchSpec": "latest" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmjs.org/wait-file/-/wait-file-1.0.5.tgz", + "_shasum": "377f48795f1765046a41bb0671c142ef8e509ae6", + "_spec": "wait-file", + "_where": "/home/wyrihaximus/Projects/WyriHaximus/github-action-helm3", + "bugs": { + "url": "https://github.com/endiliey/wait-file/issues" + }, + "bundleDependencies": false, + "dependencies": { + "@hapi/joi": "^15.1.0", + "fs-extra": "^8.1.0", + "rx": "^4.1.0" + }, + "deprecated": false, + "description": "Wait for file resource(s) to become available in Node.js.", + "devDependencies": { + "@types/fs-extra": "^8.0.0", + "@types/hapi__joi": "^15.0.2", + "@types/jest": "^24.0.15", + "@types/rx": "^4.1.1", + "@types/temp": "^0.8.34", + "husky": "^2.3.0", + "prettier": "^1.17.1", + "pretty-quick": "^1.11.0", + "temp": "^0.9.0", + "tsdx": "^0.9.3", + "tslib": "^1.9.3", + "typescript": "^3.5.3" + }, + "files": [ + "dist" + ], + "homepage": "https://github.com/endiliey/wait-file#readme", + "husky": { + "hooks": { + "pre-commit": "pretty-quick --staged" + } + }, + "keywords": [ + "wait", + "wait file", + "file polling" + ], + "main": "dist/index.js", + "module": "dist/wait-file.es.production.js", + "name": "wait-file", + "peerDependencies": {}, + "prettier": { + "printWidth": 80, + "semi": true, + "singleQuote": true, + "trailingComma": "es5" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/endiliey/wait-file.git" + }, + "scripts": { + "build": "tsdx build --target node", + "prepublish": "yarn build", + "start": "tsdx watch", + "test": "tsdx test" + }, + "typings": "dist/index.d.ts", + "version": "1.0.5" +} diff --git a/node_modules/wait-on/.editorconfig b/node_modules/wait-on/.editorconfig new file mode 100644 index 0000000..a8a0b06 --- /dev/null +++ b/node_modules/wait-on/.editorconfig @@ -0,0 +1,9 @@ +# top-most EditorConfig file +root = true + +# Unix-style newlines with a newline ending every file +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true diff --git a/node_modules/wait-on/.eslintrc.js b/node_modules/wait-on/.eslintrc.js new file mode 100644 index 0000000..84ff005 --- /dev/null +++ b/node_modules/wait-on/.eslintrc.js @@ -0,0 +1,19 @@ +module.exports = { + env: { + mocha: true + }, + plugins: ['chai-friendly'], + extends: ['standard', 'prettier', 'prettier/standard'], + rules: { + 'no-use-before-define': 'off', + 'no-unused-vars': [ + 'error', + { + varsIgnorePattern: 'should|expect' + } + ], + // disable the original no-unused-expressions use chai-friendly + 'no-unused-expressions': 'off', + 'chai-friendly/no-unused-expressions': 'error' + } +}; diff --git a/node_modules/wait-on/.travis.yml b/node_modules/wait-on/.travis.yml new file mode 100644 index 0000000..8c52337 --- /dev/null +++ b/node_modules/wait-on/.travis.yml @@ -0,0 +1,8 @@ +language: node_js +node_js: + - '8' + - '10' + - '11' + - '12' + - '14' + - node diff --git a/node_modules/wait-on/LICENSE b/node_modules/wait-on/LICENSE new file mode 100644 index 0000000..68abfe1 --- /dev/null +++ b/node_modules/wait-on/LICENSE @@ -0,0 +1,9 @@ +The MIT License (MIT) + +Copyright (c) 2015 Jeff Barczewski + +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/wait-on/README.md b/node_modules/wait-on/README.md new file mode 100644 index 0000000..b2728ee --- /dev/null +++ b/node_modules/wait-on/README.md @@ -0,0 +1,295 @@ +# wait-on - wait for files, ports, sockets, http(s) resources + +wait-on is a cross-platform command line utility which will wait for files, ports, sockets, and http(s) resources to become available (or not available using reverse mode). Functionality is also available via a Node.js API. Cross-platform - runs everywhere Node.js runs (linux, unix, mac OS X, windows) + +wait-on will wait for period of time for a file to stop growing before triggering availability which is good for monitoring files that are being built. Likewise wait-on will wait for period of time for other resources to remain available before triggering success. + +For http(s) resources wait-on will check that the requests are returning 2XX (success) to HEAD or GET requests (after following any redirects). + +wait-on can also be used in reverse mode which waits for resources to NOT be available. This is useful in waiting for services to shutdown before continuing. (Thanks @skarbovskiy for adding this feature) + +[![Build Status](https://secure.travis-ci.org/jeffbski/wait-on.png?branch=master)](http://travis-ci.org/jeffbski/wait-on) + +## Installation + +Latest version 3+ requires Node.js v8.9+ + +(Node.js v4 users can still use wait-on@2.1.2, and older Node.js +engines, use wait-on@1.5.4) + +```bash +npm install wait-on # local version +OR +npm install -g wait-on # global version +``` + +## Usage + +Use from command line or using Node.js programmatic API. + +### CLI Usage + +Assuming NEXT_CMD is the command to run when resources are available, then wait-on will wait and then exit with a successful exit code (0) once all resources are available, causing NEXT_CMD to be run. + +wait-on can also be used in reverse mode, which waits for resources to NOT be available. This is useful in waiting for services to shutdown before continuing. (Thanks @skarbovskiy for adding) + +If wait-on is interrupted before all resources are available, it will exit with a non-zero exit code and thus NEXT_CMD will not be run. + +```bash +wait-on file1 && NEXT_CMD # wait for file1, then exec NEXT_CMD +wait-on f1 f2 && NEXT_CMD # wait for both f1 and f2, the exec NEXT_CMD +wait-on http://localhost:8000/foo && NEXT_CMD # wait for http 2XX HEAD +wait-on https://myserver/foo && NEXT_CMD # wait for https 2XX HEAD +wait-on http-get://localhost:8000/foo && NEXT_CMD # wait for http 2XX GET +wait-on https-get://myserver/foo && NEXT_CMD # wait for https 2XX GET +wait-on tcp:4000 && NEXT_CMD # wait for service to listen on a TCP port +wait-on socket:/path/mysock # wait for service to listen on domain socket +wait-on http://unix:/var/SOCKPATH:/a/foo # wait for http HEAD on domain socket +wait-on http-get://unix:/var/SOCKPATH:/a/foo # wait for http GET on domain socket +``` + +``` +Usage: wait-on {OPTIONS} resource [...resource] + +Description: + + wait-on is a command line utility which will wait for files, ports, + sockets, and http(s) resources to become available (or not available + using reverse flag). Exits with success code (0) when all resources + are ready. Non-zero exit code if interrupted or timed out. + + Options may also be specified in a config file (js or json). For + example --config configFile.js would result in configFile.js being + required and the resulting object will be merged with any + command line options before wait-on is called. See exampleConfig.js + + In shell combine with && to conditionally run another command + once resources are available. ex: wait-on f1 && NEXT_CMD + + resources types are defined by their prefix, if no prefix is + present, the resource is assumed to be of type 'file' + + resource prefixes are: + + file: - regular file (also default type). ex: file:/path/to/file + http: - HTTP HEAD returns 2XX response. ex: http://m.com:90/foo + https: - HTTPS HEAD returns 2XX response. ex: https://my/bar + http-get: - HTTP GET returns 2XX response. ex: http://m.com:90/foo + https-get: - HTTPS GET returns 2XX response. ex: https://my/bar + tcp: - TCP port is listening. ex: 1.2.3.4:9000 or foo.com:700 + socket: - Domain Socket is listening. ex: socket:/path/to/sock + For http over socket, use http://unix:SOCK_PATH:URL_PATH + like http://unix:/path/to/sock:/foo/bar or + http-get://unix:/path/to/sock:/foo/bar + +Standard Options: + + -c, --config + + js or json config file, useful for http(s) options + + -d, --delay + + Initial delay before checking for resources in ms, default 0 + + --httpTimeout + + Maximum time in ms to wait for an HTTP HEAD/GET request, default 0 + which results in using the OS default + +-i, --interval + + Interval to poll resources in ms, default 250ms + + -l, --log + + Log resources begin waited on and when complete or errored + + -r, --reverse + + Reverse operation, wait for resources to NOT be available + + -s, --simultaneous + + Simultaneous / Concurrent connections to a resource, default Infinity + Setting this to 1 would delay new requests until previous one has completed. + Used to limit the number of connections attempted to a resource at a time. + + -t, --timeout + + Maximum time in ms to wait before exiting with failure (1) code, + default Infinity + + --tcpTimeout + + Maximum time in ms for tcp connect, default 300ms + + -v, --verbose + + Enable debug output to stdout + + -w, --window + + Stability window, the time in ms defining the window of time that + resource needs to have not changed (file size or availability) before + signalling success, default 750ms. If less than interval, it will be + reset to the value of interval. This is only used for files, other + resources are considered available on first detection. + + -h, --help + + Show this message +``` + +### Node.js API usage + +```javascript +var waitOn = require('wait-on'); +var opts = { + resources: [ + 'file1', + 'http://foo.com:8000/bar', + 'https://my.com/cat', + 'http-get://foo.com:8000/bar', + 'https-get://my.com/cat', + 'tcp:foo.com:8000', + 'socket:/my/sock', + 'http://unix:/my/sock:/my/url', + 'http-get://unix:/my/sock:/my/url', + ], + delay: 1000, // initial delay in ms, default 0 + interval: 100, // poll interval in ms, default 250ms + simultaneous: 1, // limit to 1 connection per resource at a time + timeout: 30000, // timeout in ms, default Infinity + tcpTimeout: 1000, // tcp timeout in ms, default 300ms + window: 1000, // stabilization time in ms, default 750ms + + // http options + ca: [ + /* strings or binaries */ + ], + cert: [ + /* strings or binaries */ + ], + key: [ + /* strings or binaries */ + ], + passphrase: 'yourpassphrase', + proxy: false /* OR proxy config as defined in axios. + If not set axios detects proxy from env vars http_proxy and https_proxy + https://github.com/axios/axios#config-defaults + { + host: '127.0.0.1', + port: 9000, + auth: { + username: 'mikeymike', + password: 'rapunz3l' + } + } */, + auth: { + user: 'theuser', // or username + pass: 'thepassword', // or password + }, + strictSSL: false, + followRedirect: true, + headers: { + 'x-custom': 'headers', + }, + validateStatus: function (status) { + return status >= 200 && status < 300; // default if not provided + }, +}; + +// Usage with callback function +waitOn(opts, function (err) { + if (err) { + return handleError(err); + } + // once here, all resources are available +}); + +// Usage with promises +waitOn(opts) + .then(function () { + // once here, all resources are available + }) + .catch(function (err) { + handleError(err); + }); + +// Usage with async await +try { + await waitOn(opts); + // once here, all resources are available +} catch (err) { + handleError(err); +} +``` + +waitOn(opts, [cb]) - function which triggers resource checks + +- opts.resources - array of string resources to wait for. prefix determines the type of resource with the default type of `file:` +- opts.delay - optional initial delay in ms, default 0 +- opts.interval - optional poll resource interval in ms, default 250ms +- opts.log - optional flag which outputs to stdout, remaining resources waited on and when complete or errored +- opts.reverse - optional flag to reverse operation so checks are for resources being NOT available, default false +- opts.simultaneous - optional count to limit concurrent connections per resource at a time, setting to 1 waits for previous connection to succeed, fail, or timeout before sending another, default infinity +- opts.timeout - optional timeout in ms, default Infinity. Aborts with error. +- opts.tcpTimeout - optional tcp timeout in ms, default 300ms +- opts.verbose - optional flag which outputs debug output, default false +- opts.window - optional stabilization time in ms, default 750ms. Waits this amount of time for file sizes to stabilize or other resource availability to remain unchanged. +- http(s) specific options, see https://nodejs.org/api/tls.html#tls_tls_connect_options_callback for specific details + + - opts.ca: [ /* strings or binaries */ ], + - opts.cert: [ /* strings or binaries */ ], + - opts.key: [ /* strings or binaries */ ], + - opts.passphrase: 'yourpassphrase', + - opts.proxy: undefined, false, or object as defined in axios. Default is undefined. If not set axios detects proxy from env vars http_proxy and https_proxy. https://github.com/axios/axios#config-defaults + +```js + // example proxy object + { + host: '127.0.0.1', + port: 9000, + auth: { + username: 'mikeymike', + password: 'rapunz3l' + } + } +``` + +- opts.auth: { user, pass } +- opts.strictSSL: false, +- opts.followRedirect: false, // defaults to true +- opts.headers: { 'x-custom': 'headers' }, + +- cb(err) - if err is provided then, resource checks did not succeed + +## Goals + +- simple command line utility and Node.js API for waiting for resources +- wait for files to stabilize +- wait for http(s) resources to return 2XX in response to HEAD request +- wait for http(s) resources to return 2XX in response to GET request +- wait for services to be listening on tcp ports +- wait for services to be listening on unix domain sockets +- configurable initial delay, poll interval, stabilization window, timeout +- command line utility returns success code (0) when resources are availble +- command line utility that can also wait for resources to not be available using reverse flag. This is useful for waiting for services to shutdown before continuing. +- cross platform - runs anywhere Node.js runs (linux, unix, mac OS X, windows) + +## Why + +I frequently need to wait on build tasks to complete or services to be available before starting next command, so this project makes that easier and is portable to everywhere Node.js runs. + +## Get involved + +If you have input or ideas or would like to get involved, you may: + +- contact me via twitter @jeffbski - +- open an issue on github to begin a discussion - +- fork the repo and send a pull request (ideally with tests) - + +## License + +- [MIT license](http://github.com/jeffbski/wait-on/raw/master/LICENSE) diff --git a/node_modules/wait-on/bin/usage.txt b/node_modules/wait-on/bin/usage.txt new file mode 100644 index 0000000..11fc76e --- /dev/null +++ b/node_modules/wait-on/bin/usage.txt @@ -0,0 +1,90 @@ +Usage: wait-on {OPTIONS} resource [...resource] + +Description: + + wait-on is a command line utility which will wait for files, ports, + sockets, and http(s) resources to become available (or not available + using reverse flag). Exits with success code (0) when all resources + are ready. Non-zero exit code if interrupted or timed out. + + Options may also be specified in a config file (js or json). For + example --config configFile.js would result in configFile.js being + required and the resulting object will be merged with any + command line options before wait-on is called. See exampleConfig.js + + In shell combine with && to conditionally run another command + once resources are available. ex: wait-on f1 && NEXT_CMD + + resources types are defined by their prefix, if no prefix is + present, the resource is assumed to be of type 'file' + + resource prefixes are: + + file: - regular file (also default type). ex: file:/path/to/file + http: - HTTP HEAD returns 2XX response. ex: http://m.com:90/foo + https: - HTTPS HEAD returns 2XX response. ex: https://my/bar + http-get: - HTTP GET returns 2XX response. ex: http-get://m.com:90/foo + https-get: - HTTPS GET returns 2XX response. ex: https-get://my/bar + tcp: - TCP port is listening. ex: tcp:1.2.3.4:9000 or tcp:foo.com:700 + socket: - Domain Socket is listening. ex: socket:/path/to/sock + For http over socket, use http://unix:SOCK_PATH:URL_PATH + like http://unix:/path/to/sock:/foo/bar or + http-get://unix:/path/to/sock:/foo/bar + +Standard Options: + + -c, --config + + js or json config file, useful for http(s) options + + -d, --delay + + Initial delay before checking for resources in ms, default 0 + + --httpTimeout + + Maximum time in ms to wait for an HTTP HEAD/GET request, default 0 + which results in using the OS default + + -i, --interval + + Interval to poll resources in ms, default 250ms + + -l, --log + + Log resources begin waited on and when complete or errored + + -r, --reverse + + Reverse operation, wait for resources to NOT be available + + -s, --simultaneous + + Simultaneous / Concurrent connections to a resource, default Infinity + Setting this to 1 would delay new requests until previous one has completed. + Used to limit the number of connections attempted to a resource at a time. + + -t, --timeout + + Maximum time in ms to wait before exiting with failure (1) code, + default Infinity + + --tcpTimeout + + Maximum time in ms for tcp connect, default 300ms + + -v, --verbose + + Enable debug output to stdout + + -w, --window + + Stability window, the time in ms defining the window of time that + resource needs to have not changed (file size/availability) before + signaling success, default 750ms. If less than interval, it will be + reset to the value of interval. This is only used for files, other + resources are considered available on first detection. + + -h, --help + + Show this message diff --git a/node_modules/wait-on/bin/wait-on b/node_modules/wait-on/bin/wait-on new file mode 100755 index 0000000..54d4758 --- /dev/null +++ b/node_modules/wait-on/bin/wait-on @@ -0,0 +1,83 @@ +#!/usr/bin/env node + +var fs = require('fs'); +var minimist = require('minimist'); +var path = require('path'); +var waitOn = require('../'); + +var minimistOpts = { + string: ['c', 'd', 'i', 's', 't', 'w', 'httpTimeout', 'tcpTimeout'], + boolean: ['h', 'l', 'r', 'v'], + alias: { + c: 'config', + d: 'delay', + i: 'interval', + l: 'log', + r: 'reverse', + s: 'simultaneous', + t: 'timeout', + v: 'verbose', + w: 'window', + h: 'help' + } +}; + +var argv = minimist(process.argv.slice(2), minimistOpts); + +if (argv.help || !argv._.length) { + // help + fs.createReadStream(path.join(__dirname, '/usage.txt')) + .pipe(process.stdout) + .on('close', function() { + process.exit(1); + }); +} else { + var opts = {}; + + // if a js/json configuration file is provided require it + var configFile = argv.config; + if (configFile) { + opts = require(path.resolve(configFile)); + } + + // add in the resources listed on the command line + opts.resources = argv._; + + // now check for specific options and set those + opts = [ + 'delay', + 'httpTimeout', + 'interval', + 'log', + 'reverse', + 'simultaneous', + 'timeout', + 'tcpTimeout', + 'verbose', + 'window' + ].reduce(function(accum, x) { + if (argv[x]) { + accum[x] = argv[x]; + } + return accum; + }, opts); + + waitOn(opts, function(err) { + if (err) { + return errorExit(err); + } + // success, could just let it exit on its own, however since + // rxjs window waits an extra loop before heeding the unsubscribe + // we can exit to speed things up + process.exit(0); + }); +} + +function errorExit(err) { + if (err.stack) { + console.error(err.stack); + } else { + console.error(String(err)); + } + process.exit(1); +} diff --git a/node_modules/wait-on/exampleConfig.js b/node_modules/wait-on/exampleConfig.js new file mode 100644 index 0000000..924d257 --- /dev/null +++ b/node_modules/wait-on/exampleConfig.js @@ -0,0 +1,23 @@ +module.exports = { + // specify additional options here, especially http(s) + // see https://nodejs.org/api/tls.html#tls_tls_connect_options_callback for specifics + ca: [ + /* strings or binaries */ + ], + cert: [ + /* strings or binaries */ + ], + key: [ + /* strings or binaries */ + ], + passphrase: 'yourpassphrase', + auth: { + user: 'yourusername', + pass: 'yourpassword', + }, + strictSSL: false, + followRedirect: false, + headers: { + 'x-custom': 'headers', + }, +}; diff --git a/node_modules/wait-on/lib/wait-on.js b/node_modules/wait-on/lib/wait-on.js new file mode 100644 index 0000000..14de64b --- /dev/null +++ b/node_modules/wait-on/lib/wait-on.js @@ -0,0 +1,397 @@ +'use strict'; + +const fs = require('fs'); +const { promisify } = require('util'); +const Joi = require('joi'); +const https = require('https'); +const net = require('net'); +const util = require('util'); +const axiosPkg = require('axios').default; +const axiosHttpAdapter = require('axios/lib/adapters/http'); +const { isBoolean, isEmpty, negate, noop, once, partial, pick, zip } = require('lodash/fp'); +const { NEVER, combineLatest, from, merge, throwError, timer } = require('rxjs'); +const { distinctUntilChanged, map, mergeMap, scan, startWith, take, takeWhile } = require('rxjs/operators'); + +// force http adapter for axios, otherwise if using jest/jsdom xhr might +// be used and it logs all errors polluting the logs +const axios = axiosPkg.create({ adapter: axiosHttpAdapter }); +const isNotABoolean = negate(isBoolean); +const isNotEmpty = negate(isEmpty); +const fstat = promisify(fs.stat); +const PREFIX_RE = /^((https?-get|https?|tcp|socket|file):)(.+)$/; +const HOST_PORT_RE = /^(([^:]*):)?(\d+)$/; +const HTTP_GET_RE = /^https?-get:/; +const HTTP_UNIX_RE = /^http:\/\/unix:([^:]+):([^:]+)$/; +const TIMEOUT_ERR_MSG = 'Timed out waiting for'; + +const WAIT_ON_SCHEMA = Joi.object({ + resources: Joi.array().items(Joi.string().required()).required(), + delay: Joi.number().integer().min(0).default(0), + httpTimeout: Joi.number().integer().min(0), + interval: Joi.number().integer().min(0).default(250), + log: Joi.boolean().default(false), + reverse: Joi.boolean().default(false), + simultaneous: Joi.number().integer().min(1).default(Infinity), + timeout: Joi.number().integer().min(0).default(Infinity), + validateStatus: Joi.function(), + verbose: Joi.boolean().default(false), + window: Joi.number().integer().min(0).default(750), + tcpTimeout: Joi.number().integer().min(0).default(300), + + // http/https options + ca: [Joi.string(), Joi.binary()], + cert: [Joi.string(), Joi.binary()], + key: [Joi.string(), Joi.binary(), Joi.object()], + passphrase: Joi.string(), + proxy: [Joi.boolean(), Joi.object()], + auth: Joi.object({ + username: Joi.string(), + password: Joi.string(), + }), + strictSSL: Joi.boolean().default(false), + followRedirect: Joi.boolean().default(true), // HTTP 3XX responses + headers: Joi.object(), +}); + +/** + Waits for resources to become available before calling callback + + Polls file, http(s), tcp ports, sockets for availability. + + Resource types are distinquished by their prefix with default being `file:` + - file:/path/to/file - waits for file to be available and size to stabilize + - http://foo.com:8000/bar verifies HTTP HEAD request returns 2XX + - https://my.bar.com/cat verifies HTTPS HEAD request returns 2XX + - http-get: - HTTP GET returns 2XX response. ex: http://m.com:90/foo + - https-get: - HTTPS GET returns 2XX response. ex: https://my/bar + - tcp:my.server.com:3000 verifies a service is listening on port + - socket:/path/sock verifies a service is listening on (UDS) socket + For http over socket, use http://unix:SOCK_PATH:URL_PATH + like http://unix:/path/to/sock:/foo/bar or + http-get://unix:/path/to/sock:/foo/bar + + @param opts object configuring waitOn + @param opts.resources array of string resources to wait for. prefix determines the type of resource with the default type of `file:` + @param opts.delay integer - optional initial delay in ms, default 0 + @param opts.httpTimeout integer - optional http HEAD/GET timeout to wait for request, default 0 + @param opts.interval integer - optional poll resource interval in ms, default 250ms + @param opts.log boolean - optional flag to turn on logging to stdout + @param opts.reverse boolean - optional flag which reverses the mode, succeeds when resources are not available + @param opts.simultaneous integer - optional limit of concurrent connections to a resource, default Infinity + @param opts.tcpTimeout - Maximum time in ms for tcp connect, default 300ms + @param opts.timeout integer - optional timeout in ms, default Infinity. Aborts with error. + @param opts.verbose boolean - optional flag to turn on debug log + @param opts.window integer - optional stabilization time in ms, default 750ms. Waits this amount of time for file sizes to stabilize or other resource availability to remain unchanged. If less than interval then will be reset to interval + @param cb optional callback function with signature cb(err) - if err is provided then, resource checks did not succeed + if not specified, wait-on will return a promise that will be rejected if resource checks did not succeed or resolved otherwise + */ +function waitOn(opts, cb) { + if (cb !== undefined) { + return waitOnImpl(opts, cb); + } else { + // promise API + return new Promise(function (resolve, reject) { + waitOnImpl(opts, function (err) { + if (err) { + reject(err); + } else { + resolve(); + } + }); + }); + } +} + +function waitOnImpl(opts, cbFunc) { + const cbOnce = once(cbFunc); + const validResult = WAIT_ON_SCHEMA.validate(opts); + if (validResult.error) { + return cbOnce(validResult.error); + } + const validatedOpts = { + ...validResult.value, // use defaults + // window needs to be at least interval + ...(validResult.value.window < validResult.value.interval ? { window: validResult.value.interval } : {}), + ...(validResult.value.verbose ? { log: true } : {}), // if debug logging then normal log is also enabled + }; + + const { resources, log: shouldLog, timeout, verbose, reverse } = validatedOpts; + + const output = verbose ? console.log.bind() : noop; + const log = shouldLog ? console.log.bind() : noop; + const logWaitingForWDeps = partial(logWaitingFor, [{ log, resources }]); + const createResourceWithDeps$ = partial(createResource$, [{ validatedOpts, output, log }]); + + let lastResourcesState = resources; // the last state we had recorded + + const timeoutError$ = + timeout !== Infinity ? timer(timeout).pipe(mergeMap(() => { + const resourcesWaitingFor = determineRemainingResources(resources, lastResourcesState).join(', ') + return throwError(Error(`${TIMEOUT_ERR_MSG}: ${resourcesWaitingFor}`)) + })) : NEVER; + + function cleanup(err) { + if (err) { + if (err.message.startsWith(TIMEOUT_ERR_MSG)) { + log('wait-on(%s) %s; exiting with error', process.pid, err.message); + } else { + log('wait-on(%s) exiting with error', process.pid, err); + } + } else { + // no error, we are complete + log('wait-on(%s) complete', process.pid); + } + cbOnce(err); + } + + if (reverse) { + log('wait-on reverse mode - waiting for resources to be unavailable'); + } + logWaitingForWDeps(resources); + + const resourcesCompleted$ = combineLatest(resources.map(createResourceWithDeps$)); + + merge(timeoutError$, resourcesCompleted$) + .pipe(takeWhile((resourceStates) => resourceStates.some((x) => !x))) + .subscribe({ + next: (resourceStates) => { + lastResourcesState = resourceStates; + logWaitingForWDeps(resourceStates); + }, + error: cleanup, + complete: cleanup, + }); +} + +function logWaitingFor({ log, resources }, resourceStates) { + const remainingResources = determineRemainingResources(resources, resourceStates); + if (isNotEmpty(remainingResources)) { + log(`waiting for ${remainingResources.length} resources: ${remainingResources.join(', ')}`); + } +} + +function determineRemainingResources(resources, resourceStates) { + // resourcesState is array of completed booleans + const resourceAndStateTuples = zip(resources, resourceStates); + return resourceAndStateTuples.filter(([, /* r */ s]) => !s).map(([r /*, s */]) => r); +} + +function createResource$(deps, resource) { + const prefix = extractPrefix(resource); + switch (prefix) { + case 'https-get:': + case 'http-get:': + case 'https:': + case 'http:': + return createHTTP$(deps, resource); + case 'tcp:': + return createTCP$(deps, resource); + case 'socket:': + return createSocket$(deps, resource); + default: + return createFileResource$(deps, resource); + } +} + +function createFileResource$( + { validatedOpts: { delay, interval, reverse, simultaneous, window: stabilityWindow }, output }, + resource +) { + const filePath = extractPath(resource); + const checkOperator = reverse + ? map((size) => size === -1) // check that file does not exist + : scan( + // check that file exists and the size is stable + (acc, x) => { + if (x > -1) { + const { size, t } = acc; + const now = Date.now(); + if (size !== -1 && x === size) { + if (now >= t + stabilityWindow) { + // file size has stabilized + output(` file stabilized at size:${size} file:${filePath}`); + return true; + } + output(` file exists, checking for size change during stability window, size:${size} file:${filePath}`); + return acc; // return acc unchanged, just waiting to pass stability window + } + output(` file exists, checking for size changes, size:${x} file:${filePath}`); + return { size: x, t: now }; // update acc with new value and timestamp + } + return acc; + }, + { size: -1, t: Date.now() } + ); + + return timer(delay, interval).pipe( + mergeMap(() => { + output(`checking file stat for file:${filePath} ...`); + return from(getFileSize(filePath)); + }, simultaneous), + checkOperator, + map((x) => (isNotABoolean(x) ? false : x)), + startWith(false), + distinctUntilChanged(), + take(2) + ); +} + +function extractPath(resource) { + const m = PREFIX_RE.exec(resource); + if (m) { + return m[3]; + } + return resource; +} + +function extractPrefix(resource) { + const m = PREFIX_RE.exec(resource); + if (m) { + return m[1]; + } + return ''; +} + +async function getFileSize(filePath) { + try { + const { size } = await fstat(filePath); + return size; + } catch (err) { + return -1; + } +} + +function createHTTP$({ validatedOpts, output }, resource) { + const { + delay, + followRedirect, + httpTimeout: timeout, + interval, + proxy, + reverse, + simultaneous, + strictSSL: rejectUnauthorized, + } = validatedOpts; + const method = HTTP_GET_RE.test(resource) ? 'get' : 'head'; + const url = resource.replace('-get:', ':'); + const matchHttpUnixSocket = HTTP_UNIX_RE.exec(url); // http://unix:/sock:/url + const urlSocketOptions = matchHttpUnixSocket + ? { socketPath: matchHttpUnixSocket[1], url: matchHttpUnixSocket[2] } + : { url }; + const socketPathDesc = urlSocketOptions.socketPath ? `socketPath:${urlSocketOptions.socketPath}` : ''; + const httpOptions = { + ...pick(['auth', 'headers', 'validateStatus'], validatedOpts), + httpsAgent: new https.Agent({ + rejectUnauthorized, + ...pick(['ca', 'cert', 'key', 'passphrase'], validatedOpts), + }), + ...(followRedirect ? {} : { maxRedirects: 0 }), // defaults to 5 (enabled) + proxy, // can be undefined, false, or object + ...(timeout && { timeout }), + ...urlSocketOptions, + method, + // by default it provides full response object + // validStatus is 2xx unless followRedirect is true (default) + }; + const checkFn = reverse ? negateAsync(httpCallSucceeds) : httpCallSucceeds; + return timer(delay, interval).pipe( + mergeMap(() => { + output(`making HTTP(S) ${method} request to ${socketPathDesc} url:${urlSocketOptions.url} ...`); + return from(checkFn(output, httpOptions)); + }, simultaneous), + startWith(false), + distinctUntilChanged(), + take(2) + ); +} + +async function httpCallSucceeds(output, httpOptions) { + try { + const result = await axios(httpOptions); + output( + ` HTTP(S) result for ${httpOptions.url}: ${util.inspect( + pick(['status', 'statusText', 'headers', 'data'], result) + )}` + ); + return true; + } catch (err) { + output(` HTTP(S) error for ${httpOptions.url} ${err.toString()}`); + return false; + } +} + +function createTCP$({ validatedOpts: { delay, interval, tcpTimeout, reverse, simultaneous }, output }, resource) { + const tcpPath = extractPath(resource); + const checkFn = reverse ? negateAsync(tcpExists) : tcpExists; + return timer(delay, interval).pipe( + mergeMap(() => { + output(`making TCP connection to ${tcpPath} ...`); + return from(checkFn(output, tcpPath, tcpTimeout)); + }, simultaneous), + startWith(false), + distinctUntilChanged(), + take(2) + ); +} + +async function tcpExists(output, tcpPath, tcpTimeout) { + const [, , /* full, hostWithColon */ hostMatched, port] = HOST_PORT_RE.exec(tcpPath); + const host = hostMatched || 'localhost'; + return new Promise((resolve) => { + const conn = net + .connect(port, host) + .on('error', (err) => { + output(` error connecting to TCP host:${host} port:${port} ${err.toString()}`); + resolve(false); + }) + .on('timeout', () => { + output(` timed out connecting to TCP host:${host} port:${port} tcpTimeout:${tcpTimeout}ms`); + conn.end(); + resolve(false); + }) + .on('connect', () => { + output(` TCP connection successful to host:${host} port:${port}`); + conn.end(); + resolve(true); + }); + conn.setTimeout(tcpTimeout); + }); +} + +function createSocket$({ validatedOpts: { delay, interval, reverse, simultaneous }, output }, resource) { + const socketPath = extractPath(resource); + const checkFn = reverse ? negateAsync(socketExists) : socketExists; + return timer(delay, interval).pipe( + mergeMap(() => { + output(`making socket connection to ${socketPath} ...`); + return from(checkFn(output, socketPath)); + }, simultaneous), + startWith(false), + distinctUntilChanged(), + take(2) + ); +} + +async function socketExists(output, socketPath) { + return new Promise((resolve) => { + const conn = net + .connect(socketPath) + .on('error', (err) => { + output(` error connecting to socket socket:${socketPath} ${err.toString()}`); + resolve(false); + }) + .on('connect', () => { + output(` connected to socket:${socketPath}`); + conn.end(); + resolve(true); + }); + }); +} + +function negateAsync(asyncFn) { + return async function (...args) { + return !(await asyncFn(...args)); + }; +} + +module.exports = waitOn; diff --git a/node_modules/wait-on/package.json b/node_modules/wait-on/package.json new file mode 100644 index 0000000..b75b914 --- /dev/null +++ b/node_modules/wait-on/package.json @@ -0,0 +1,97 @@ +{ + "_from": "wait-on", + "_id": "wait-on@5.2.0", + "_inBundle": false, + "_integrity": "sha512-U1D9PBgGw2XFc6iZqn45VBubw02VsLwnZWteQ1au4hUVHasTZuFSKRzlTB2dqgLhji16YVI8fgpEpwUdCr8B6g==", + "_location": "/wait-on", + "_phantomChildren": {}, + "_requested": { + "type": "tag", + "registry": true, + "raw": "wait-on", + "name": "wait-on", + "escapedName": "wait-on", + "rawSpec": "", + "saveSpec": null, + "fetchSpec": "latest" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmjs.org/wait-on/-/wait-on-5.2.0.tgz", + "_shasum": "6711e74422523279714a36d52cf49fb47c9d9597", + "_spec": "wait-on", + "_where": "/home/wyrihaximus/Projects/WyriHaximus/github-action-helm3", + "author": { + "name": "Jeff Barczewski", + "email": "info@codewinds.com" + }, + "bin": { + "wait-on": "bin/wait-on" + }, + "bugs": { + "url": "http://github.com/jeffbski/wait-on/issues" + }, + "bundleDependencies": false, + "dependencies": { + "axios": "^0.19.2", + "joi": "^17.1.1", + "lodash": "^4.17.19", + "minimist": "^1.2.5", + "rxjs": "^6.5.5" + }, + "deprecated": false, + "description": "wait-on is a cross platform command line utility and Node.js API which will wait for files, ports, sockets, and http(s) resources to become available", + "devDependencies": { + "eslint": "^6.8.0", + "eslint-config-prettier": "^6.10.1", + "eslint-config-standard": "^14.1.1", + "eslint-plugin-chai-friendly": "^0.5.0", + "eslint-plugin-import": "^2.20.2", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-promise": "^4.2.1", + "eslint-plugin-standard": "^4.0.1", + "expect-legacy": "^1.20.2", + "mkdirp": "^1.0.4", + "mocha": "^7.1.1", + "temp": "^0.9.1" + }, + "engines": { + "node": ">=8.9.0" + }, + "homepage": "https://github.com/jeffbski/wait-on#readme", + "keywords": [ + "wait", + "delay", + "cli", + "files", + "tcp", + "ports", + "sockets", + "http", + "exist", + "ready", + "available", + "portable", + "cross-platform", + "unix", + "linux", + "windows", + "win32", + "osx" + ], + "license": "MIT", + "main": "lib/wait-on", + "name": "wait-on", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/jeffbski/wait-on.git" + }, + "scripts": { + "lint": "eslint \"lib/**/*.js\" \"test/**/*.js\" \"bin/wait-on\"", + "publish:next": "npm publish --tag next && npm view", + "test": "mocha --exit 'test/**/*.mocha.js'" + }, + "version": "5.2.0" +} diff --git a/package-lock.json b/package-lock.json index e363605..7518e2d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2,6 +2,81 @@ "requires": true, "lockfileVersion": 1, "dependencies": { + "@hapi/address": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", + "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==" + }, + "@hapi/bourne": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", + "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==" + }, + "@hapi/hoek": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.0.tgz", + "integrity": "sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw==" + }, + "@hapi/joi": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", + "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", + "requires": { + "@hapi/address": "2.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/topo": "3.x.x" + }, + "dependencies": { + "@hapi/hoek": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", + "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==" + }, + "@hapi/topo": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", + "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", + "requires": { + "@hapi/hoek": "^8.3.0" + } + } + } + }, + "@hapi/topo": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", + "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@sideway/address": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.0.tgz", + "integrity": "sha512-wAH/JYRXeIFQRsxerIuLjgUu2Xszam+O5xKeatJ4oudShOOirfmsQ1D6LL54XOU2tizpCYku+s1wmU0SYdpoSA==", + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@sideway/formula": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", + "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" + }, + "@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + }, + "axios": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", + "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", + "requires": { + "follow-redirects": "1.5.10" + } + }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -21,6 +96,32 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "requires": { + "debug": "=3.1.0" + } + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -39,6 +140,11 @@ "path-is-absolute": "^1.0.0" } }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -53,6 +159,31 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, + "joi": { + "version": "17.3.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.3.0.tgz", + "integrity": "sha512-Qh5gdU6niuYbUIUV5ejbsMiiFmBdw8Kcp8Buj2JntszCkCfxJ9Cz76OtHxOZMPXrt5810iDIXs+n1nNVoquHgg==", + "requires": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.0", + "@sideway/formula": "^3.0.0", + "@sideway/pinpoint": "^2.0.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -61,6 +192,16 @@ "brace-expansion": "^1.1.7" } }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -82,6 +223,19 @@ "glob": "^7.1.3" } }, + "rx": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", + "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=" + }, + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "requires": { + "tslib": "^1.9.0" + } + }, "tmp": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", @@ -90,6 +244,38 @@ "rimraf": "^3.0.0" } }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "wait-file": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/wait-file/-/wait-file-1.0.5.tgz", + "integrity": "sha512-udLpJY/eOxlrMm3+XD1RLuF2oT9B7J7wiyR5/9xrvQymS6YR6trWvVhzOldHrVbLwyiRmLj9fcvsjzpSXeZHkw==", + "requires": { + "@hapi/joi": "^15.1.0", + "fs-extra": "^8.1.0", + "rx": "^4.1.0" + } + }, + "wait-on": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-5.2.0.tgz", + "integrity": "sha512-U1D9PBgGw2XFc6iZqn45VBubw02VsLwnZWteQ1au4hUVHasTZuFSKRzlTB2dqgLhji16YVI8fgpEpwUdCr8B6g==", + "requires": { + "axios": "^0.19.2", + "joi": "^17.1.1", + "lodash": "^4.17.19", + "minimist": "^1.2.5", + "rxjs": "^6.5.5" + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/package.json b/package.json index 676c2c7..41b0f09 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,7 @@ { "dependencies": { - "tmp": "^0.2.1" + "tmp": "^0.2.1", + "wait-file": "^1.0.5", + "wait-on": "^5.2.0" } }